Всем привет. Учусь работать с печатными формами в 1С КА2.
Создал внешнюю обработку, все процедуры и функции прописал, вроде печатает в режиме предприятия, но при печати из документа - данные не выводятся в области параметров макета.
Собственно прошу помочь решить мою проблему.
Код модуля объекта печатной формы:
Прошу не кидаться камнями, я не специалист
Создал внешнюю обработку, все процедуры и функции прописал, вроде печатает в режиме предприятия, но при печати из документа - данные не выводятся в области параметров макета.
Собственно прошу помочь решить мою проблему.
Код модуля объекта печатной формы:
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = Новый Структура;
МассивНазначений = Новый Массив;
МассивНазначений.Добавить("Документ.ПриобретениеТоваровУслуг"); //Указываем документ к которому делаем внешнюю печ. форму
ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); //может быть - ПечатнаяФорма, ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов...
ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
ПараметрыРегистрации.Вставить("Наименование", "Требование-накладная"); //имя под которым обработка будет зарегестрирована в справочнике внешних обработок
ПараметрыРегистрации.Вставить("БезопасныйРежим", ИСТИНА);
ПараметрыРегистрации.Вставить("Версия", "1.0");
ПараметрыРегистрации.Вставить("Информация", "Требование-накладная");
ТаблицаКоманд = ПолучитьТаблицуКоманд();
ДобавитьКоманду(ТаблицаКоманд, "Требование-накладная", "ТребованиеНакладная", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
Возврат ПараметрыРегистрации;
КонецФункции
Функция ПолучитьТаблицуКоманд()
Команды = Новый ТаблицаЗначений;
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));//как будет выглядеть описание печ.формы для пользователя
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); //имя макета печ.формы
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")); //ВызовСерверногоМетода
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
Возврат Команды;
КонецФункции
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление;
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ТребованиеНакладная", "Требование-накладная", СформироватьПечатнуюФорму(МассивОбъектов[0], ОбъектыПечати));
КонецПроцедуры // Печать()
Функция СформироватьПечатнуюФорму(Флаг = Истина, Флаг2= Ложь) Экспорт
ТабДок = Новый ТабличныйДокумент;
ТабДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ТребованиеНакладная";
Макет = ПолучитьМакет("Макет");
ОбластьШапки = Макет.ПолучитьОбласть("Шапка");
ОбластьДанные = Макет.ПолучитьОбласть("Данные");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
ОбластьШапки.Параметры.ТекстЗаголовка = "Требование-Накладная № " + СсылкаНаОбъект.Номер+СсылкаНаОбъект.Дата;//дата договора;
ОбластьШапки.Параметры.Организация = СсылкаНаОбъект.Организация;
ОбластьШапки.Параметры.Склад = СсылкаНаОбъект.Склад;
ОбластьШапки.Параметры.СтатьяРасходов = СсылкаНаОбъект.Товары;
ОбластьШапки.Параметры.Партнер = СсылкаНаОбъект.Партнер;
ОбластьШапки.Параметры.Договор = СсылкаНаОбъект.Договор;
ТабДок.Вывести(ОбластьШапки);
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ПриобретениеТоваровУслугТовары.НомерСтроки КАК НомерСтроки,
| ПриобретениеТоваровУслугТовары.Номенклатура.Наименование КАК Материал,
| ПриобретениеТоваровУслугТовары.Сумма КАК Сумма
|ИЗ
|
| Документ.ПриобретениеТоваровУслуг.Товары КАК ПриобретениеТоваровУслугТовары
|ГДЕ
| ПриобретениеТоваровУслугТовары.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка",СсылкаНаОбъект);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ИтогоСумма = 0;
ЗаполнитьЗначенияСвойств(ОбластьДанные.Параметры,Выборка);
ИтогоСумма = ИтогоСумма + Выборка.Сумма;
ТабДок.Вывести(ОбластьДанные);
КонецЦикла;
ОбластьПодвал.Параметры.ИтогоСумма = ИтогоСумма;
ТабДок.Вывести(ОбластьПодвал);
Возврат ТабДок;
КонецФункции
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
КонецПроцедуры
ПоказатьПрошу не кидаться камнями, я не специалист
По теме из базы знаний
- 1С:Полиграфия 2. Модуль для 1С:ERP, 1С:КА и 1С:УТ
- Загрузка данных из ОФД в 1С:Бухгалтерию 3.0, 1С:КА 2.4, 2.5, УНФ 1.6/3.0 о денежных поступлениях (чеках)
- Программа "Мобильный ТСД для 1С" - приложение для телефона для инвентаризации и сбора штрихкодов для iOS и Android
- Универсальная печать по шаблонам Word (Печать договоров из 1С БП 3, УНФ 1.6, ЗУП 3, УТ 11, КА 2, ERP 2, ДО 3)
- Интеграция Честный Знак и 1C: обмен и синхронизация для УТ11, УНФ, КА2, ERP, Розница: Расширение для работы с СУЗ, ГИС МТ, ЦРПТ
Найденные решения
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ТребованиеНакладная", "Требование-накладная", СформироватьПечатнуюФорму(МассивОбъектов[0], ОбъектыПечати));
КонецПроцедуры // Печать()
Функция СформироватьПечатнуюФорму(СсылкаНаОбъект, ОбъектыПечати) Экспорт
ТабДок = Новый ТабличныйДокумент;
ТабДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ТребованиеНакладная";
Макет = ПолучитьМакет("Макет");
ОбластьШапки = Макет.ПолучитьОбласть("Шапка");
ОбластьДанные = Макет.ПолучитьОбласть("Данные");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
ОбластьШапки.Параметры.ТекстЗаголовка = "Требование-Накладная № " + СсылкаНаОбъект.Номер+СсылкаНаОбъект.Дата;//дата договора;
ОбластьШапки.Параметры.Организация = СсылкаНаОбъект.Организация;
ОбластьШапки.Параметры.Склад = СсылкаНаОбъект.Склад;
ОбластьШапки.Параметры.СтатьяРасходов = СсылкаНаОбъект.Товары;
ОбластьШапки.Параметры.Партнер = СсылкаНаОбъект.Партнер;
ОбластьШапки.Параметры.Договор = СсылкаНаОбъект.Договор;
ТабДок.Вывести(ОбластьШапки);
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ПриобретениеТоваровУслугТовары.НомерСтроки КАК НомерСтроки,
| ПриобретениеТоваровУслугТовары.Номенклатура.Наименование КАК Материал,
| ПриобретениеТоваровУслугТовары.Сумма КАК Сумма
|ИЗ
|
| Документ.ПриобретениеТоваровУслуг.Товары КАК ПриобретениеТоваровУслугТовары
|ГДЕ
| ПриобретениеТоваровУслугТовары.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка",СсылкаНаОбъект);
Выборка = Запрос.Выполнить().Выбрать();
ИтогоСумма = 0;
Пока Выборка.Следующий() Цикл
ЗаполнитьЗначенияСвойств(ОбластьДанные.Параметры,Выборка);
ИтогоСумма = ИтогоСумма + Выборка.Сумма;
ТабДок.Вывести(ОбластьДанные);
КонецЦикла;
ОбластьПодвал.Параметры.ИтогоСумма = ИтогоСумма;
ТабДок.Вывести(ОбластьПодвал);
Возврат ТабДок;
КонецФункции
ПоказатьДержите.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
СформироватьПечатнуюФорму(МассивОбъектов[0], ОбъектыПечати)); заменить на СформироватьПечатнуюФорму(МассивОбъектов[0])
Функция СформироватьПечатнуюФорму(Флаг = Истина, Флаг2= Ложь) Экспорт заменить на Функция СформироватьПечатнуюФорму(ТребованиеНакладная) Экспорт
Запрос.УстановитьПараметр("Ссылка",СсылкаНаОбъект); заменить на Запрос.УстановитьПараметр("Ссылка",ТребованиеНакладная);
(4)
Вы переменную сами с собой складываете? У вас одинаковое имя переменной до знака = и после. Плюс вы уже присвоили данной переменной значение =0
ИтогоСумма = 0;
ЗаполнитьЗначенияСвойств(ОбластьДанные.Параметры,Выборка);
ИтогоСумма = ИтогоСумма + Выборка.Сумма;
Вы переменную сами с собой складываете? У вас одинаковое имя переменной до знака = и после. Плюс вы уже присвоили данной переменной значение =0
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ТребованиеНакладная", "Требование-накладная", СформироватьПечатнуюФорму(МассивОбъектов[0], ОбъектыПечати));
КонецПроцедуры // Печать()
Функция СформироватьПечатнуюФорму(СсылкаНаОбъект, ОбъектыПечати) Экспорт
ТабДок = Новый ТабличныйДокумент;
ТабДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ТребованиеНакладная";
Макет = ПолучитьМакет("Макет");
ОбластьШапки = Макет.ПолучитьОбласть("Шапка");
ОбластьДанные = Макет.ПолучитьОбласть("Данные");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
ОбластьШапки.Параметры.ТекстЗаголовка = "Требование-Накладная № " + СсылкаНаОбъект.Номер+СсылкаНаОбъект.Дата;//дата договора;
ОбластьШапки.Параметры.Организация = СсылкаНаОбъект.Организация;
ОбластьШапки.Параметры.Склад = СсылкаНаОбъект.Склад;
ОбластьШапки.Параметры.СтатьяРасходов = СсылкаНаОбъект.Товары;
ОбластьШапки.Параметры.Партнер = СсылкаНаОбъект.Партнер;
ОбластьШапки.Параметры.Договор = СсылкаНаОбъект.Договор;
ТабДок.Вывести(ОбластьШапки);
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ПриобретениеТоваровУслугТовары.НомерСтроки КАК НомерСтроки,
| ПриобретениеТоваровУслугТовары.Номенклатура.Наименование КАК Материал,
| ПриобретениеТоваровУслугТовары.Сумма КАК Сумма
|ИЗ
|
| Документ.ПриобретениеТоваровУслуг.Товары КАК ПриобретениеТоваровУслугТовары
|ГДЕ
| ПриобретениеТоваровУслугТовары.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка",СсылкаНаОбъект);
Выборка = Запрос.Выполнить().Выбрать();
ИтогоСумма = 0;
Пока Выборка.Следующий() Цикл
ЗаполнитьЗначенияСвойств(ОбластьДанные.Параметры,Выборка);
ИтогоСумма = ИтогоСумма + Выборка.Сумма;
ТабДок.Вывести(ОбластьДанные);
КонецЦикла;
ОбластьПодвал.Параметры.ИтогоСумма = ИтогоСумма;
ТабДок.Вывести(ОбластьПодвал);
Возврат ТабДок;
КонецФункции
ПоказатьДержите.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот