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