Добрый день, делаю внешнюю печатную форму для документа Поступление из переработки
Создала внешнюю обработку, создала макет, прописала параметры, в модуле внешней обработки написала такой код, при загрузке в систему размещение не определено и нужный документ нельзя выбрать в списке
Создала внешнюю обработку, создала макет, прописала параметры, в модуле внешней обработки написала такой код, при загрузке в систему размещение не определено и нужный документ нельзя выбрать в списке
&НаСервере
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();
ПараметрыРегистрации.Версия = "1.1";
ПараметрыРегистрации.Назначение.Добавить("Документы.КДЛ_ПоступлениеИзПереработки");
ПараметрыРегистрации.Вставить("Команды", ПолучитьТаблицуКоманд());
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = НСтр("ru = 'Печатная форма'");
НоваяКоманда.Идентификатор = "ПечатнаяФорма";
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
НоваяКоманда.ПоказыватьОповещение = Истина;
НоваяКоманда.Модификатор = "ПечатьMXL";
Возврат ПараметрыРегистрации;
КонецФункции
&НаСервере
Функция ПолучитьТаблицуКоманд()
Команды = Новый ТаблицаЗначений;
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("ЗаменяемыеКоманды", Новый ОписаниеТипов("Строка"));
Возврат Команды;
КонецФункции
&НаСервере
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыПечати = Неопределено) Экспорт
УстановитьПривилегированныйРежим(Истина);
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПечатнаяФорма") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ПечатнаяФорма", НСтр("ru = 'Печатная форма'"),
ПечатьПСЦ(МассивОбъектов, ОбъектыПечати));
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ПечатьПСЦ(МассивОбъектов, ОбъектыПечати) Экспорт
ТабДок = новый ТабличныйДокумент;
Макет = ПолучитьМакет("Макет");
//ОбластьШапки = Макет.ПолучитьОбласть("Шапка");
//ОбластьДанные = Макет.ПолучитьОбласть("Данные");
//ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
Запрос = новый запрос;
Запрос.УстановитьПараметр("МассивОбъектов",МассивОбъектов);
Запрос.Текст = "ВЫБРАТЬ
| КДЛ_ПоступлениеИзПереработки.Дата КАК Дата,
| КДЛ_ПоступлениеИзПереработки.КДЛ_Контрагент КАК КДЛ_Контрагент,
| КДЛ_ПоступлениеИзПереработки.Продукция.(
| Номенклатура КАК Номенклатура,
| Количество КАК Количество,
| Партия КАК Партия
| ) КАК Продукция,
| КДЛ_ПоступлениеИзПереработки.ИспользованныеМатериалы.(
| Номенклатура КАК НоменклатураИМ,
| Характеристика КАК ХарактеристикаИМ,
| Количество КАК КоличествоИМ,
| Партия КАК ПартияИМ
| ) КАК ИспользованныеМатериалы
|ИЗ
| Документ.КДЛ_ПоступлениеИзПереработки КАК КДЛ_ПоступлениеИзПереработки
|ГДЕ
| КДЛ_ПоступлениеИзПереработки.Ссылка В(&МассивОбъектов)" ;
Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда
Возврат Новый ТабличныйДокумент;
КонецЕсли;
ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
ТабДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПоступлениеИзПереработки";
ТабДок.ПолеСверху = 0;
ТабДок.ПолеСлева = 0;
ТабДок.ПолеСнизу = 0;
ТабДок.ПолеСправа = 0;
ТабДок.РазмерКолонтитулаСверху = 0;
ТабДок.РазмерКолонтитулаСнизу = 0;
ТабДок.АвтоМасштаб = Истина;
Шапка = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока Шапка.Следующий() Цикл
Если ТабДок.ВысотаТаблицы > 0 Тогда
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
НомерСтрокиНачало = ТабДок.ВысотаТаблицы + 1;
Выборка = Шапка.Выбрать();
Пока Выборка.Следующий() Цикл
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("Шапка");
Если ЗначениеЗаполнено(Выборка.Дата) Тогда
ОбластьШапкаТаблицы.Параметры.период = Дата(Выборка.Дата);
КонецЕсли;
Если ЗначениеЗаполнено(Выборка.Завод) Тогда
ОбластьШапкаТаблицы.Параметры.ЗаводНаименование = Выборка.Завод;
КонецЕсли;
ТабДок.Вывести(ОбластьШапкаТаблицы);
ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Данные");
Если ЗначениеЗаполнено(Выборка.Продукция) Тогда
ОбластьДетальныхЗаписей.Параметры.НаименованиеСырье = Выборка.НоменклатураИМ;
ОбластьДетальныхЗаписей.Параметры.ХарактеристикаСырье = Выборка.ХарактеристикаИМ;
ОбластьДетальныхЗаписей.Параметры.КоличествоСырье = Выборка.КоличествоИМ;
ОбластьДетальныхЗаписей.Параметры.ПартияСырье = Выборка.ПартияИМ;
ОбластьДетальныхЗаписей.Параметры.ИтогоСырье = ОбластьДетальныхЗаписей.Параметры.ИтогоСырье + Выборка.КоличествоИМ;
КонецЕсли;
Если ЗначениеЗаполнено(Выборка.ИспользованныеМатериалы) Тогда
ОбластьДетальныхЗаписей.Параметры.НаименованиеНефтепродукты = Выборка.ИспользованныеМатериалы.Номенклатура;
ОбластьДетальныхЗаписей.Параметры.КоличествоНефтепродукты = Выборка.ИспользованныеМатериалы.Количество;
ОбластьДетальныхЗаписей.Параметры.ПартияНефтепродукты = Выборка.ИспользованныеМатериалы.Партия;
ОбластьДетальныхЗаписей.Параметры.ИтогоНефтепродукты = ОбластьДетальныхЗаписей.Параметры.ИтогоПолуфабрикаты + Выборка.ИспользованныеМатериалы.Количество;
КонецЕсли;
ТабДок.Вывести(ОбластьДетальныхЗаписей);
ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("Подвал");
ТабДок.Вывести(ОбластьПодвалТаблицы);
КонецЦикла;
УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабДок, НомерСтрокиНачало, ОбъектыПечати, Шапка.Ссылка);
КонецЦикла;
Возврат ТабДок;
КонецФункции
ПоказатьПрикрепленные файлы:
По теме из базы знаний
- Внешние печатные формы по кадровым документам и зарплате в БП 3.0
- Счет-фактура выданный (внешняя печатная форма) с выбором подписантов и с печатью с грузополучателем или без.
- [ШАБЛОН] Внешняя печатная форма с отладкой
- Комплект внешних печатных форм для 1С:Комплексная автоматизация 2.5: ТОРГ-12, Счет-фактура, счет на оплату, универсальный передаточный документ (УПД)
- Внешняя печатная форма в формате Word (.docx, .doc) с помощью средств БСП
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Конфигурация какая?
Смотрите общий модуль УправлениеПечатьюПереопределяемый.ПриОпределенииОбъектовСКомандамиПечати
В УТ - дальше идет УправлениеПечатьюУТСервер.ОпределитьОбъектыСКомандамиПечати
а там для всех документов к которым доступны внешние печатные формы
СписокОбъектов.Добавить(Справочники.Контрагенты);
Вот туда вам нужно свой документ добавить.
Смотрите общий модуль УправлениеПечатьюПереопределяемый.ПриОпределенииОбъектовСКомандамиПечати
В УТ - дальше идет УправлениеПечатьюУТСервер.ОпределитьОбъектыСКомандамиПечати
а там для всех документов к которым доступны внешние печатные формы
СписокОбъектов.Добавить(Справочники.Контрагенты);
Вот туда вам нужно свой документ добавить.
Судя по всему документ самописный. Есть ли у него в модуле формы код для регистрации внешних печатных форм? И если документ не из типовой конфигурации, почему бы не добавить печатную форму непосредственно в документ?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот