Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
vino0s
9 / 9 / 8
Регистрация: 26.03.2014
Сообщений: 354
1

Печать во внешней обработке с формой

13.05.2016, 10:34. Просмотров 1792. Ответов 2
Метки нет (Все метки)

Как по кнопке выполнить сформировать "Табличный документ" типа на "Печать" отправить прикрепленный к обработке "Макет".

Как следует оформить "Модуль объекта" для "Регистрации внешней обработки".
То как умею регистрировать (печатные формы) печать удается, а вот если печатаю с формы, то макет не формируется.

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Функция СведенияОВнешнейОбработке() Экспорт //Регистрация компоненты
// Регистрация ВПФ
 
//Переменные
ПараметрыРегистрации = Новый Структура;
 
МассивНазначений = Новый Массив;
 
//Параметры регистрации
ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");//Вид формы
//МассивНазначений.Добавить("Документ.ОперацияБух");//Привязка к документу
//ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
ПараметрыРегистрации.Вставить("Наименование", "Карточка-справка пенсионеры");//название формы в справочнике внешних обработок
ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);//Безопасный режим включен
ПараметрыРегистрации.Вставить("Версия", "1.0");
ПараметрыРегистрации.Вставить("Информация", "Дополнительный отчет Карточка-справка для пенсионеров");
 
//Добавим команды к форме
ТаблицаКоманд = ПолучитьТаблицуКоманд();
 //ДобавитьКоманду(ТаблицаКоманд,"ВПФ Ф1_ЛНК","ВызовСерверногоМетода",Истина); //Вызывать надо серверный или клиентский метод?
 
ДобавитьКоманду(ТаблицаКоманд, "Счет-Договор","ВПФ_Ф1_ЛНК_Счет","ВызовСерверногоМетода",Истина, "ПечатьMXL");
ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
 
Возврат ПараметрыРегистрации;
 
КонецФункции
 
Функция ПолучитьТаблицуКоманд() //Получаю таблицы команд
    Команды = Новый ТаблицаЗначений;
    
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка")); 
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); 
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")); 
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево")); 
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка")); 
Возврат Команды; 
КонецФункции
 
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование,ПоказыватьОповещение = Ложь, Модификатор = "") //Добавляю команды
 
НоваяКоманда = ТаблицаКоманд.Добавить(); 
НоваяКоманда.Представление = Представление; 
НоваяКоманда.Идентификатор = Идентификатор; 
НоваяКоманда.Использование = Использование; 
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение; 
НоваяКоманда.Модификатор = Модификатор; 
 
КонецПроцедуры
Добавлено через 43 секунды
Модуль формы

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
Процедура КнопкаВыполнитьНажатие(Кнопка)
    Печать();
КонецПроцедуры
 
Функция Печать() Экспорт
    ТабДокумент = Печать0315007();
    
    Возврат ТабДокумент;
КонецФункции
 
Функция Печать0315007()
    
    ТабДокумент = Новый ТабличныйДокумент;
    
    Запрос = Новый Запрос;
    
    Запрос.УстановитьПараметр("ФИО", ФИО.Ссылка);
    Запрос.УстановитьПараметр("НачПериод", НачПериода);
    Запрос.УстановитьПараметр("КонПериод", КонПериода);
    Запрос.Текст = "ВЫБРАТЬ
    |ФизическиеЛица.Ссылка КАК Ссылка,
    |ФизическиеЛица.Наименование КАК Имя,
    |ДополнительныеНачисленияРаботниковОрганизаций.Результат,
    |ДополнительныеНачисленияРаботниковОрганизаций.БазовыйПериодНачало
    |{ВЫБРАТЬ
    |Ссылка.*}
    |ИЗ
    |РегистрРасчета.ДополнительныеНачисленияРаботниковОрганизаций КАК ДополнительныеНачисленияРаботниковОрганизаций
    |   ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица
    |   ПО ДополнительныеНачисленияРаботниковОрганизаций.ФизЛицо = ФизическиеЛица.Ссылка
    |ГДЕ
    |ФизическиеЛица.Ссылка = &ФИО
    |И ДополнительныеНачисленияРаботниковОрганизаций.ФизЛицо.Ссылка = &ФИО
    |И ДополнительныеНачисленияРаботниковОрганизаций.БазовыйПериодНачало МЕЖДУ &НачПериод И &КонПериод";
    
    Выборка = Запрос.Выполнить().Выбрать();
    
    Макет = ПолучитьМакет("форма0504417");
        
    ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    ТабДокумент.ИмяПараметровПечати = "ПарметрыПечатиформа0504417";
    
    ОбластьМакетаШапкаКарточки     = Макет.ПолучитьОбласть("ШапкаКарточки");
    ОбластьМакетаСтрокаКадровыхДокументов    = Макет.ПолучитьОбласть("СтрокаКадровыхДокументов");
    ОбластьМакетаСтрокаКадровыхДокументовПустая    = Макет.ПолучитьОбласть("СтрокаКадровыхДокументовПустая");
    ОбластьМакетаШапкаОтпуска     = Макет.ПолучитьОбласть("ШапкаОтпуска");
    ОбластьМакетаСтрокаОтпуска     = Макет.ПолучитьОбласть("СтрокаОтпуска");
    ОбластьМакетаПодчеркивание     = Макет.ПолучитьОбласть("Подчеркивание");
    ОбластьМакетаШапкаНачислений     = Макет.ПолучитьОбласть("ШапкаНачислений");
    ОбластьМакетаДнейОтработано     = Макет.ПолучитьОбласть("ДнейОтработано");
    ОбластьМакетаНачисление     = Макет.ПолучитьОбласть("Начисление");
    ОбластьМакетаВсегоНачислений     = Макет.ПолучитьОбласть("ВсегоНачислений");
    ОбластьМакетаВсегоУдержано     = Макет.ПолучитьОбласть("ВсегоУдержано");
    ОбластьМакетаВтомЧисле     = Макет.ПолучитьОбласть("ВтомЧисле");    
    ОбластьМакетаИтого     = Макет.ПолучитьОбласть("Итого");
    ОбластьМакетаШапка3стр     = Макет.ПолучитьОбласть("Шапка3стр");
    ОбластьМакетаПодвал    = Макет.ПолучитьОбласть("Подвал");
    
    КолСтр = 0;
    //Колитог = 0;
    Пока Выборка.Следующий() Цикл
        ОбластьМакетаШапкаКарточки.Параметры.ФИО = Выборка.Имя;
    //  ОбластьМакетаШапка.Параметры.пНомер = Выборка.пНомер;
    //  ОбластьМакетаШапка.Параметры.пНаименованиеОрганизации = Выборка.пНаименованиеОрганизации;
    //  ОбластьМакетаШапка.Параметры.пДата = Выборка.пДата;
    //  ОбластьМакетаШапка.Параметры.пКодОКПО = Выборка.пКодОКПО;
    //  ОбластьМакетаШапка.Параметры.пДоговор = "договор №";
    //  ОбластьМакетаШапка.Параметры.пКонтрагент = "ГБУЗ РБ Клиническая больница №1";
    //  ТабДокумент.Вывести(ОбластьМакетаШапка);
    //  Наборы = РегистрыБухгалтерии.ЕПСБУ.ВыбратьПоРегистратору(СсылкаНаОбъект.Ссылка);
    //  Пока Наборы.Следующий() Цикл
    //  КолИтог = КолИтог + Наборы.Сумма;
    //  ОбластьМакетаСтрока.Параметры.пСуммаБезНДС = Наборы.Сумма;
    //  ОбластьМакетаСтрока.Параметры.пВсего = Наборы.Сумма;
    //  ОбластьМакетаСтрока.Параметры.пКоличество = Наборы.КоличествоКт;
    //  ОбластьМакетаСтрока.Параметры.пЦена = Строка(Число(Наборы.Сумма) / Число(Наборы.КоличествоКт) );
    //  
    //      Для Каждого Субконто ИЗ Наборы.СубконтоКт Цикл
    //          Если Строка(Субконто.ключ) = "Номенклатура" Тогда
    //              Номен = Субконто.Значение;
    //              ОбластьМакетаСтрока.Параметры.пНоменклатура = Номен;
    //              ЗапросНомен = Новый Запрос;
    //
    //              ЗапросНомен.УстановитьПараметр("Номен", Строка(Номен));
 
    //              ЗапросНомен.Текст = "ВЫБРАТЬ
    //              |Номенклатура.Наименование,
    //              |Номенклатура.ЕдиницаИзмерения.Наименование КАК пЕдиница
    //              |ИЗ
    //              |Справочник.Номенклатура КАК Номенклатура
    //              |ГДЕ 
    //              |Номенклатура.Наименование = &Номен";
    //              
    //              ВыборкаНомен = ЗапросНомен.Выполнить().Выбрать();
    //              Пока ВыборкаНомен.Следующий() Цикл
    //                  ОбластьМакетаСтрока.Параметры.пЕдиница = ВыборкаНомен.пЕдиница;
    //              КонецЦикла;
    //          КонецЕсли;
 
    //          Если Строка(Субконто.ключ) = "Центры материальной ответственности" Тогда
    //              МногострочнаяСтрока = СтрЗаменить(Субконто.Значение, "-",Символы.ПС);
    //              ОбластьМакетаПодвал.Параметры.пФИООтпустил = СтрПолучитьСтроку(МногострочнаяСтрока,1);
    //          КонецЕсли;
    //      КонецЦикла;
    //      
    //      Для Каждого СубконтоДт ИЗ Наборы.СубконтоДт Цикл
    //          Если Строка(СубконтоДт.ключ) = "КЭК" Тогда
    //              ИтоговаяСтрока = СтрЗаменить(Строка(Наборы.СчетДт), ".",Символы.ПС);
    //              ОбластьМакетаСтрока.Параметры.пСчетКредита = Строка(Наборы.КБКДт) + Строка(СубконтоДт.Значение) + Строка(СтрПолучитьСтроку(ИтоговаяСтрока,1)) + Строка(СтрПолучитьСтроку(ИтоговаяСтрока,2));
    //          КонецЕсли;
    //      КонецЦикла;
    //  КолСтр = КолСтр + 1;
    //  ТабДокумент.Вывести(ОбластьМакетаСтрока);
    //КонецЦикла;
    //
    //  ФормСтрокаКол = "Л = ru_RU; НД = Ложь";
    //  ФормСтрокаИтог = "Л = ru_RU; ДП = истина";
    //  
    //  ПарПредИтог = "руб.,руб.,руб.,м,коп.,коп.,коп.,ж,2";
    //  
    //  ОбластьМакетаПодвал.Параметры.пКоличествоНаименованийПрописью = ЧислоПрописью(КолСтр, ФормСтрокаКол ,",,,,,,,,0" );
    //  ОбластьМакетаПодвал.Параметры.пВсегоИтогоПрописью = ЧислоПрописью(КолИтог, ФормСтрокаИтог, ПарПредИтог);
    //  
    //  ОбластьМакетаитого.Параметры.пСуммаБезНДСИтого = КолИтог;
    //  ОбластьМакетаитого.Параметры.пВсегоИтого = КолИтог;
    //  
    //  ОбластьМакетаПодвал.Параметры.пФИОБухгалтер = "Л.С. Теренина";
    //  ОбластьМакетаПодвал.Параметры.пФИОРуководитель = "А.Е.Огарков";
    //  ОбластьМакетаПодвал.Параметры.пДолжностьРуководитель = "Гл.врач";
    КонецЦикла;
    
    
    ТабДокумент.Вывести(ОбластьМакетаШапкаКарточки);
    ТабДокумент.Вывести(ОбластьМакетаСтрокаКадровыхДокументов);
    ТабДокумент.Вывести(ОбластьМакетаСтрокаКадровыхДокументовПустая);
    ТабДокумент.Вывести(ОбластьМакетаШапкаОтпуска);
    ТабДокумент.Вывести(ОбластьМакетаСтрокаОтпуска);
    ТабДокумент.Вывести(ОбластьМакетаПодчеркивание);
    ТабДокумент.Вывести(ОбластьМакетаШапкаНачислений);
    ТабДокумент.Вывести(ОбластьМакетаДнейОтработано);
    ТабДокумент.Вывести(ОбластьМакетаНачисление);
    ТабДокумент.Вывести(ОбластьМакетаВсегоНачислений);
    ТабДокумент.Вывести(ОбластьМакетаВсегоУдержано);
    ТабДокумент.Вывести(ОбластьМакетаВтомЧисле);
    ТабДокумент.Вывести(ОбластьМакетаИтого);
    ТабДокумент.Вывести(ОбластьМакетаШапка3стр);
    ТабДокумент.Вывести(ОбластьМакетаПодвал);
    ТабДокумент.Вывести(ОбластьМакетаИтого);
    ТабДокумент.Вывести(ОбластьМакетаПодвал);
    Сообщить("Сотворил");
    Возврат ТабДокумент;    
    
КонецФункции
 
Процедура ВыбПериодНажатие(Элемент)
    НастройкаПериода = Новый НастройкаПериода;
    НастройкаПериода.РедактироватьКакИнтервал = Истина;
    НастройкаПериода.РедактироватьКакПериод = Истина;
    НастройкаПериода.ВариантНастройки = ВариантНастройкиПериода.Период;
    НастройкаПериода.УстановитьПериод(НачПериода, ?(КонПериода='0001-01-01', КонПериода, КонецДня(КонПериода)));
    Если НастройкаПериода.Редактировать() Тогда
        НачПериода = НастройкаПериода.ПолучитьДатуНачала();
        КонПериода = НастройкаПериода.ПолучитьДатуОкончания();
    КонецЕсли;
КонецПроцедуры
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2016, 10:34
Ответы с готовыми решениями:

Движения по внешней обработке
написал внешнюю обработку.Теперь нужно чтоб она по регистру бухгалтерии создавала проводку Дт10.07...

Не получается запрос во внешней обработке
Привет Создала внешнюю обработку. На форме три поля: НачПериода (тип Дата), КонПериода (тип...

Неполадки с внешней печатной формой 1с 8.2
Всем привет! Возникла необходиомсть создания внеш печат формы. Начал с того что создал...

Как открыть форму документа во внешней обработке(8.1)?
Форма списка и форма документа скопированы во внешнюю обработку из конфигурации Из формы списка по...

Печать макета внешней печатной формы
добрый день, задача такая: имеетсявнешняя печатная форма схожая с обычной печатной формой, но...

2
GreenkA
Форумчанин
Эксперт 1С
3003 / 1923 / 520
Регистрация: 25.06.2009
Сообщений: 6,817
13.05.2016, 12:48 2
Лучший ответ Сообщение было отмечено vino0s как решение

Решение

vino0s,
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Процедура КнопкаВыполнитьНажатие(Кнопка)
    ТабДок= Печать();
    ТабДок.ОтображатьСетку = Ложь;
    ТабДок.Защита = Ложь;
    ТабДок.ТолькоПросмотр = Ложь;
    ТабДок.ОтображатьЗаголовки = Ложь;
    ТабДок.Показать();
    
КонецПроцедуры
 
Функция Печать() Экспорт
    ТабДокумент = Печать0315007();
    
    Возврат ТабДокумент;
КонецФункции
1
vino0s
9 / 9 / 8
Регистрация: 26.03.2014
Сообщений: 354
16.05.2016, 07:12  [ТС] 3
Цитата Сообщение от GreenkA Посмотреть сообщение
ТабДок.Показать();
Решение.
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.05.2016, 07:12

Печать своего отчета из внешней обработки
Добрый день. Необходимо написать обработку, из которой будет печататься отчет. Делаю первый раз и...

Как отследить выполнение кода, если выполняется печать внешней печатной формы?
Внешняя печатная форма закреплена за документом "ЗаказПокупателя". В конфигураторе устанавливаю...

Управление формой при обработке ввода.
Подскажите, как решить проблему. Форма ввода при регистрации находится в том же файле, что и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.