Внешняя печатная форма 1С КА2 не подключается документ

1. unreces 19.06.23 10:13 Сейчас в теме
Добрый день. Делаю внешнюю обработку, в которой на печать должна выводиться информация из нескольких документов в одну тч. Не могу понять как это реализовать. Реквизиты со ссылкой на объекты добавил, параметры авторегистрации установил, что дальше нужно? Подскажите пожалуйста.

Код модуля объекта:

Функция ПолучитьНазначениеОбработки()
	
	Назначение = Новый Массив;
	
	Назначение.Добавить("Документ.ЗаказПереработчику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.Ссылка = &Ссылка";
	
	ЗапросВ.УстановитьПараметр("Ссылка",СсылкаНаОбъект);
	
	ВыборкаВ = ЗапросВ.Выполнить().Выбрать();
    
   Пока ВыборкаВ.Следующий() Цикл
     	ЗаполнитьЗначенияСвойств(ОбластьПодвал.Параметры,ВыборкаВ);
    	
	КонецЦикла; 
	
    

	
    ТабДок.Вывести(ОбластьПодвал);
    
    Возврат ТабДок;

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

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


КонецПроцедуры
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. stash_84 19.06.23 11:54 Сейчас в теме
В сведения о внешней обработке в:

Функция СведенияОВнешнейОбработке() Экспорт    
    РегистрационныеДанные = Новый Структура;
    РегистрационныеДанные.Вставить("Вид", "ПечатнаяФорма");
    
    МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Документ.ЗаказПереработчику2_5");
    МассивНазначений.Добавить("Документ.ВозвратТоваровПоставщику");
3. unreces 19.06.23 14:02 Сейчас в теме
(2)
МассивНазначений = Новый Массив;
МассивНазначений.Добавить("Документ.ЗаказПереработчику2_5");
МассивНазначений.Добавить("Документ.ВозвратТоваровП


Не понял, но я вставил эти строчки в функцию - не помогло
4. stash_84 19.06.23 14:34 Сейчас в теме
(3) В интерфейсе предприятия при добавлении галочку не пробовали добавить у второго документа?
5. unreces 19.06.23 14:43 Сейчас в теме
(4) Конечно, все документы проведены
6. unreces 19.06.23 14:45 Сейчас в теме
Появилась такая строчка "1.01.0001 0:00:00 от "

При этом я прошу так:
ОбластьДанные.Параметры.НомерДата       = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(СсылкаОбъект.Договор.Дата, Ложь, Ложь) + " от " + Формат(СсылкаОбъект.Договор.Дата,"ДФ=dd.MM.yyyy");
7. stash_84 19.06.23 15:16 Сейчас в теме
(5) при добавлении обработки на вкладке "Дополнительные отчёты и обработки"
8. unreces 20.06.23 10:38 Сейчас в теме
(7) Не понял все равно) Извините
9. stash_84 20.06.23 11:15 Сейчас в теме
Возможно, некорректно изъяснился:
Прикрепленные файлы:
10. unreces 20.06.23 11:36 Сейчас в теме
(9)

В лоб объясните пожалуйста порядок моих действий
Прикрепленные файлы:
11. unreces 20.06.23 12:08 Сейчас в теме
(9) Нашел, выбрал оба документа. Не помогло
12. stash_84 20.06.23 13:25 Сейчас в теме
(11) совсем плохой вариант - две обработки, под каждый документ. Думаю, вы в курсе были.
13. unreces 20.06.23 13:34 Сейчас в теме
(12) Так не пойдет. Нужна одна, чтоб таблица на печати собирала данные нескольких док-ов
Оставьте свое сообщение

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