Внешняя печатная форма 1С КА2 не подключается документ
Добрый день. Делаю внешнюю обработку, в которой на печать должна выводиться информация из нескольких документов в одну тч. Не могу понять как это реализовать. Реквизиты со ссылкой на объекты добавил, параметры авторегистрации установил, что дальше нужно? Подскажите пожалуйста.
Код модуля объекта:
Код модуля объекта:
Функция ПолучитьНазначениеОбработки()
Назначение = Новый Массив;
Назначение.Добавить("Документ.ЗаказПереработчику2_5");
Возврат Назначение;
КонецФункции
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = Новый Структура; ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); //может быть - ПечатнаяФорма, ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов...
ПараметрыРегистрации.Вставить("Назначение", ПолучитьНазначениеОбработки());
ПараметрыРегистрации.Вставить("Наименование", "Отчет переработчика"); //имя под которым обработка будет зарегестрирована в справочнике внешних обработок
ПараметрыРегистрации.Вставить("БезопасныйРежим", ИСТИНА);
ПараметрыРегистрации.Вставить("Версия", "1.0");
ПараметрыРегистрации.Вставить("Информация", "Заказ-Переработчику");
ТаблицаКоманд = ПолучитьТаблицуКоманд();
ДобавитьКоманду(ТаблицаКоманд, "Заказ-Переработчику", "ЗаказПереработчику", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
Возврат ПараметрыРегистрации;
КонецФункции
Функция ПолучитьТаблицуКоманд()
Команды = Новый ТаблицаЗначений;
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));//как будет выглядеть описание печ.формы для пользователя
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); //имя макета печ.формы
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")); //ВызовСерверногоМетода
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
Возврат Команды;
КонецФункции
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление;
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
Для каждого ЭлементМассива из МассивОбъектов Цикл
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ЗаказПереработчику", "Заказ-Переработчику", СформироватьПечатнуюФорму(ЭлементМассива, ОбъектыПечати));
КонецЦикла;
КонецПроцедуры // Печать()
Функция СформироватьПечатнуюФорму(СсылкаНаОбъект, ОбъектыПечати) Экспорт
ТабДок = Новый ТабличныйДокумент;
ТабДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЗаказПереработчику";
Макет = ПолучитьМакет("Макет");
ОбластьШапки = Макет.ПолучитьОбласть("Шапка");
ОбластьДанные = Макет.ПолучитьОбласть("Данные");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
ОбластьШапки.Параметры.ТекстЗаголовка = "Отчет об использовании материалов, переданных заказчиком";
ОбластьШапки.Параметры.ТекстЗаголовка1 = "по счету №" + ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(СсылкаНаОбъект.Договор.Номер, Истина, Ложь) + " от " + Формат(СсылкаНаОбъект.Договор.Дата,"ДФ=dd.MM.yyyy");
ОбластьШапки.Параметры.ТекстЗаголовка2 = " Подрядчиком были получены от Заказчика и использованы на выполнение работ по изготовлению изделий материалы в следующем объеме" + Символы.ПС +
"(количестве):";
ТабДок.Вывести(ОбластьШапки);
// ПУНКТ 1 и 3
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ЗаказПереработчику2_5Услуги.Номенклатура.НаименованиеПолное КАК ВидРабот,
| ЗаказПереработчику2_5ВыходныеИзделия.Номенклатура.НаименованиеПолное КАК Номер,
| ЗаказПереработчику2_5ОбеспечениеМатериаламиИРаботами.Номенклатура.НаименованиеПолное КАК Номенклатура
|ИЗ
| Документ.ЗаказПереработчику2_5.ОбеспечениеМатериаламиИРаботами КАК ЗаказПереработчику2_5ОбеспечениеМатериаламиИРаботами
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказПереработчику2_5 КАК ЗаказПереработчику2_5
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказПереработчику2_5.ВыходныеИзделия КАК ЗаказПереработчику2_5ВыходныеИзделия
| ПО (ЗаказПереработчику2_5ВыходныеИзделия.Ссылка = ЗаказПереработчику2_5.Ссылка)
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказПереработчику2_5.Услуги КАК ЗаказПереработчику2_5Услуги
| ПО (ЗаказПереработчику2_5Услуги.Ссылка = ЗаказПереработчику2_5.Ссылка)
| ПО ЗаказПереработчику2_5ОбеспечениеМатериаламиИРаботами.Ссылка = ЗаказПереработчику2_5.Ссылка
|ГДЕ
| ЗаказПереработчику2_5.Ссылка = &Ссылка";
// Запрос.УстановитьПараметр("Ссылка",СсылкаНаОбъект);
//
// Выборка = Запрос.Выполнить().Выбрать();
//
//
//
//Пока Выборка.Следующий() Цикл
//
// ЗаполнитьЗначенияСвойств(ОбластьДанные.Параметры,Выборка);
//
// КонецЦикла;
//
//ПУНКТ 2
ОбластьДанные.Параметры.НомерДата = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(СсылкаОбъект.Номер, Истина, Ложь) + " от " + Формат(СсылкаОбъект.Объект.Дата,"ДФ=dd.MM.yyyy");
//ОбластьДанные.Параметры.НомерДата = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(СсылкаОбъект.Номер, Истина, Ложь) + " от " + Формат(СсылкаОбъект.Дата,"ДФ=dd.MM.yyyy");
// ПУНКТ 4
ЗапросБ = Новый Запрос;
ЗапросБ.Текст = "ВЫБРАТЬ
| ПередачаСырьяПереработчикуТовары.Цена КАК ЦенаНоменклатура
|ИЗ
| Документ.ПередачаСырьяПереработчику.Товары КАК ПередачаСырьяПереработчикуТовары
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПередачаСырьяПереработчику КАК ПередачаСырьяПереработчику
| ПО ПередачаСырьяПереработчикуТовары.Ссылка = ПередачаСырьяПереработчику.Ссылка
|ГДЕ
| ПередачаСырьяПереработчикуТовары.ЗаказПереработчику = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ЗапросБ.УстановитьПараметр("Ссылка",СсылкаОбъект);
ВыборкаБ = ЗапросБ.Выполнить().Выбрать();
Пока ВыборкаБ.Следующий() Цикл
ЦенаН = ВыборкаБ.ЦенаНоменклатура;
ЗаполнитьЗначенияСвойств(ОбластьДанные.Параметры,ВыборкаБ);
КонецЦикла;
ЗаполнитьЗначенияСвойств(ОбластьДанные.Параметры,Выборка);
КонецЦикла;
// ПУНКТ 5
ЗапросГ = Новый Запрос;
ЗапросГ.Текст = "ВЫБРАТЬ
| ПередачаСырьяПереработчикуТовары.Количество КАК ПолученоКоличество
|ИЗ
| Документ.ЗаказПереработчику2_5.ОбеспечениеМатериаламиИРаботами КАК ЗаказПереработчику2_5ОбеспечениеМатериаламиИРаботами
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПередачаСырьяПереработчику.Товары КАК ПередачаСырьяПереработчикуТовары
| ПО ПередачаСырьяПереработчикуТовары.Ссылка = ЗаказПереработчику2_5ОбеспечениеМатериаламиИРаботами.Номенклатура.НаименованиеПолное,
| Документ.ЗаказПереработчику2_5 КАК ЗаказПереработчику2_5,
| Документ.ПередачаСырьяПереработчику КАК ПередачаСырьяПереработчику
|ГДЕ
| ПередачаСырьяПереработчику.ЗаказПереработчику = &Ссылка";
ЗапросГ.УстановитьПараметр("Ссылка",СсылкаОбъект);
ВыборкаГ = ЗапросГ.Выполнить().Выбрать();
Пока ВыборкаГ.Следующий() Цикл
ЗаполнитьЗначенияСвойств(ОбластьДанные.Параметры,ВыборкаГ);
КонецЦикла;
ТабДок.Вывести(ОбластьДанные);
// ПУНКТ 7
ЗапросВ = Новый Запрос;
ЗапросВ.Текст = "ВЫБРАТЬ
| ЗаказПереработчику2_5.Контрагент.НаименованиеПолное КАК Подрядчик
|ИЗ
| Документ.ЗаказПереработчику2_5 КАК ЗаказПереработчику2_5
|ГДЕ
| ЗаказПереработчику2_5.Ссылка = &Ссылка";
ЗапросВ.УстановитьПараметр("Ссылка",СсылкаНаОбъект);
ВыборкаВ = ЗапросВ.Выполнить().Выбрать();
Пока ВыборкаВ.Следующий() Цикл
ЗаполнитьЗначенияСвойств(ОбластьПодвал.Параметры,ВыборкаВ);
КонецЦикла;
ТабДок.Вывести(ОбластьПодвал);
Возврат ТабДок;
КонецФункции
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
КонецПроцедуры
ПоказатьПо теме из базы знаний
- Заполнение контрагента по ИНН или наименованию реквизитов по данным сайта ФНС в 1С: 8.3
- Спецификация к договору поставки из документа "Заказ клиента" (ERP 2.4, ERP 2.5, КА 2.4, КА 2.5, УТ 11.4, УТ 11.5)
- Новый взгляд на старое. Внешняя печатная форма – НАСТРАИВАЕМАЯ
- УПД в редакции постановления 1096 от 16 августа 2024 г. для БП 3.0, УТ11, УТ10.3, КА2, КА1.1, УТ10.3
- Новый УПД, УКД и Счет фактура 1096 с 1 октября 2024 г. для Управление торговлей 10.3, 11.1, 11.2, 11.3, 11.4, 11.5; Комплексная автоматизация 1.1, 2.4, 2.5; ЕРП 2.4, 2.5; Бухгалтерия предприятия 2.0, 3.0, УНФ, Розница 2.3, 3.0
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
В сведения о внешней обработке в:
Функция СведенияОВнешнейОбработке() Экспорт
РегистрационныеДанные = Новый Структура;
РегистрационныеДанные.Вставить("Вид", "ПечатнаяФорма");
МассивНазначений = Новый Массив;
МассивНазначений.Добавить("Документ.ЗаказПереработчику2_5");
МассивНазначений.Добавить("Документ.ВозвратТоваровПоставщику");
Появилась такая строчка "1.01.0001 0:00:00 от "
При этом я прошу так:
При этом я прошу так:
ОбластьДанные.Параметры.НомерДата = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(СсылкаОбъект.Договор.Дата, Ложь, Ложь) + " от " + Формат(СсылкаОбъект.Договор.Дата,"ДФ=dd.MM.yyyy");
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот