Печатные формы 1С КА2 Нужна помощь

1. unreces 31.05.23 14:23 Сейчас в теме
Всем привет. Учусь работать с печатными формами в 1С КА2.

Создал внешнюю обработку, все процедуры и функции прописал, вроде печатает в режиме предприятия, но при печати из документа - данные не выводятся в области параметров макета.

Собственно прошу помочь решить мою проблему.

Код модуля объекта печатной формы:

Функция СведенияОВнешнейОбработке()  Экспорт
	
	ПараметрыРегистрации = Новый Структура;
	МассивНазначений = Новый Массив;
	МассивНазначений.Добавить("Документ.ПриобретениеТоваровУслуг"); //Указываем документ к которому делаем внешнюю печ. форму
	ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); //может быть - ПечатнаяФорма, ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов... 
	ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
	ПараметрыРегистрации.Вставить("Наименование", "Требование-накладная"); //имя под которым обработка будет зарегестрирована в справочнике внешних обработок
	ПараметрыРегистрации.Вставить("БезопасныйРежим", ИСТИНА);
	ПараметрыРегистрации.Вставить("Версия", "1.0"); 
	ПараметрыРегистрации.Вставить("Информация", "Требование-накладная"); 
	
	ТаблицаКоманд = ПолучитьТаблицуКоманд();
	
	ДобавитьКоманду(ТаблицаКоманд, "Требование-накладная", "ТребованиеНакладная", "ВызовСерверногоМетода",  Истина, "ПечатьMXL");
	ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);

	Возврат ПараметрыРегистрации;

КонецФункции

Функция ПолучитьТаблицуКоманд()
	
	Команды = Новый ТаблицаЗначений;
	Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));//как будет выглядеть описание печ.формы для пользователя
	Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); //имя макета печ.формы
	Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")); //ВызовСерверногоМетода
	Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
	Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
	
	Возврат Команды; 
	
КонецФункции

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")

	НоваяКоманда = ТаблицаКоманд.Добавить();
	НоваяКоманда.Представление = Представление; 
	НоваяКоманда.Идентификатор = Идентификатор;
	НоваяКоманда.Использование = Использование;
	НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
	НоваяКоманда.Модификатор = Модификатор;

КонецПроцедуры

 
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ТребованиеНакладная", "Требование-накладная", СформироватьПечатнуюФорму(МассивОбъектов[0], ОбъектыПечати));

КонецПроцедуры // Печать()

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

	ОбластьПодвал.Параметры.ИтогоСумма      = ИтогоСумма;
	
	
	ТабДок.Вывести(ОбластьПодвал);
	
	Возврат ТабДок;
КонецФункции     

Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт


КонецПроцедуры
Показать



Прошу не кидаться камнями, я не специалист
По теме из базы знаний
Найденные решения
6. lich666 01.06.23 08:40 Сейчас в теме
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ТребованиеНакладная", "Требование-накладная", СформироватьПечатнуюФорму(МассивОбъектов[0], ОбъектыПечати));

КонецПроцедуры // Печать()

 
Функция СформироватьПечатнуюФорму(СсылкаНаОбъект, ОбъектыПечати) Экспорт
    ТабДок = Новый ТабличныйДокумент;
    ТабДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ТребованиеНакладная";
    
    Макет = ПолучитьМакет("Макет");
    
    ОбластьШапки   = Макет.ПолучитьОбласть("Шапка");
    ОбластьДанные  = Макет.ПолучитьОбласть("Данные");
    ОбластьПодвал  = Макет.ПолучитьОбласть("Подвал");
    
    ОбластьШапки.Параметры.ТекстЗаголовка       = "Требование-Накладная № " + СсылкаНаОбъект.Номер+СсылкаНаОбъект.Дата;//дата договора;
    ОбластьШапки.Параметры.Организация        = СсылкаНаОбъект.Организация;
    ОбластьШапки.Параметры.Склад               = СсылкаНаОбъект.Склад;
    ОбластьШапки.Параметры.СтатьяРасходов     = СсылкаНаОбъект.Товары;
    ОбластьШапки.Параметры.Партнер               = СсылкаНаОбъект.Партнер;
    ОбластьШапки.Параметры.Договор            = СсылкаНаОбъект.Договор;
    
    ТабДок.Вывести(ОбластьШапки);
    
    Запрос = Новый Запрос;
    
    Запрос.Текст = "ВЫБРАТЬ
                   |    ПриобретениеТоваровУслугТовары.НомерСтроки КАК НомерСтроки,
                   |    ПриобретениеТоваровУслугТовары.Номенклатура.Наименование КАК Материал,
                   |    ПриобретениеТоваровУслугТовары.Сумма КАК Сумма
                   |ИЗ
                   |
                   |    Документ.ПриобретениеТоваровУслуг.Товары КАК ПриобретениеТоваровУслугТовары
                   |ГДЕ
                   |    ПриобретениеТоваровУслугТовары.Ссылка = &Ссылка";
    
    Запрос.УстановитьПараметр("Ссылка",СсылкаНаОбъект);
    
    Выборка = Запрос.Выполнить().Выбрать();
	
	ИтогоСумма      = 0;
 
    Пока Выборка.Следующий() Цикл
    	ЗаполнитьЗначенияСвойств(ОбластьДанные.Параметры,Выборка);
    
    ИтогоСумма = ИтогоСумма + Выборка.Сумма;
    
    ТабДок.Вывести(ОбластьДанные);
    КонецЦикла;     

    ОбластьПодвал.Параметры.ИтогоСумма      = ИтогоСумма;
    
    
    ТабДок.Вывести(ОбластьПодвал);
    
    Возврат ТабДок;
КонецФункции     

Показать

Держите.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. dka80 20 31.05.23 16:19 Сейчас в теме
СформироватьПечатнуюФорму(МассивОбъектов[0], ОбъектыПечати)); заменить на СформироватьПечатнуюФорму(МассивОбъектов[0])

Функция СформироватьПечатнуюФорму(Флаг = Истина, Флаг2= Ложь) Экспорт  заменить на Функция СформироватьПечатнуюФорму(ТребованиеНакладная) Экспорт

Запрос.УстановитьПараметр("Ссылка",СсылкаНаОбъект); заменить на Запрос.УстановитьПараметр("Ссылка",ТребованиеНакладная);
3. unreces 31.05.23 17:07 Сейчас в теме
(2) Благодарю! В таблицу данные вывелись, но шапка всё так же пустая
4. unreces 31.05.23 17:10 Сейчас в теме
(2) И сумма документа выводится не общая, а по последнему товару.
Прикрепленные файлы:
5. Bukaska 140 31.05.23 20:39 Сейчас в теме
(4)
 ИтогоСумма      = 0;
    ЗаполнитьЗначенияСвойств(ОбластьДанные.Параметры,Выборка);
    
    ИтогоСумма = ИтогоСумма + Выборка.Сумма;

Вы переменную сами с собой складываете? У вас одинаковое имя переменной до знака = и после. Плюс вы уже присвоили данной переменной значение =0
6. lich666 01.06.23 08:40 Сейчас в теме
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ТребованиеНакладная", "Требование-накладная", СформироватьПечатнуюФорму(МассивОбъектов[0], ОбъектыПечати));

КонецПроцедуры // Печать()

 
Функция СформироватьПечатнуюФорму(СсылкаНаОбъект, ОбъектыПечати) Экспорт
    ТабДок = Новый ТабличныйДокумент;
    ТабДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ТребованиеНакладная";
    
    Макет = ПолучитьМакет("Макет");
    
    ОбластьШапки   = Макет.ПолучитьОбласть("Шапка");
    ОбластьДанные  = Макет.ПолучитьОбласть("Данные");
    ОбластьПодвал  = Макет.ПолучитьОбласть("Подвал");
    
    ОбластьШапки.Параметры.ТекстЗаголовка       = "Требование-Накладная № " + СсылкаНаОбъект.Номер+СсылкаНаОбъект.Дата;//дата договора;
    ОбластьШапки.Параметры.Организация        = СсылкаНаОбъект.Организация;
    ОбластьШапки.Параметры.Склад               = СсылкаНаОбъект.Склад;
    ОбластьШапки.Параметры.СтатьяРасходов     = СсылкаНаОбъект.Товары;
    ОбластьШапки.Параметры.Партнер               = СсылкаНаОбъект.Партнер;
    ОбластьШапки.Параметры.Договор            = СсылкаНаОбъект.Договор;
    
    ТабДок.Вывести(ОбластьШапки);
    
    Запрос = Новый Запрос;
    
    Запрос.Текст = "ВЫБРАТЬ
                   |    ПриобретениеТоваровУслугТовары.НомерСтроки КАК НомерСтроки,
                   |    ПриобретениеТоваровУслугТовары.Номенклатура.Наименование КАК Материал,
                   |    ПриобретениеТоваровУслугТовары.Сумма КАК Сумма
                   |ИЗ
                   |
                   |    Документ.ПриобретениеТоваровУслуг.Товары КАК ПриобретениеТоваровУслугТовары
                   |ГДЕ
                   |    ПриобретениеТоваровУслугТовары.Ссылка = &Ссылка";
    
    Запрос.УстановитьПараметр("Ссылка",СсылкаНаОбъект);
    
    Выборка = Запрос.Выполнить().Выбрать();
	
	ИтогоСумма      = 0;
 
    Пока Выборка.Следующий() Цикл
    	ЗаполнитьЗначенияСвойств(ОбластьДанные.Параметры,Выборка);
    
    ИтогоСумма = ИтогоСумма + Выборка.Сумма;
    
    ТабДок.Вывести(ОбластьДанные);
    КонецЦикла;     

    ОбластьПодвал.Параметры.ИтогоСумма      = ИтогоСумма;
    
    
    ТабДок.Вывести(ОбластьПодвал);
    
    Возврат ТабДок;
КонецФункции     

Показать

Держите.
7. unreces 01.06.23 09:17 Сейчас в теме
8. unreces 01.06.23 09:18 Сейчас в теме
(6) А как вывести в заголовок не номер договора, а порядковый номер документа?

Например №25 от ******
9. lich666 01.06.23 10:17 Сейчас в теме
В представленном примере в параметр ОбластьШапки.Параметры.ТекстЗаголовка передается строка: "Требование-Накладная № " + СсылкаНаОбъект.Номер(Номер документа)+СсылкаНаОбъект.Дата(ДатаДокумента).
Если в печатной форме выводится что-то другое смотрите макет печатной формы.
10. unreces 01.06.23 10:37 Сейчас в теме
(9)

В макете указан параметр "ТекстЗаголовка"
11. unreces 01.06.23 10:38 Сейчас в теме
(10) Мне нужен номер на печать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот