Что нужно передать во внешнюю печатную форму, помимо ТабДокумента?

1. I_train 21.09.21 18:15 Сейчас в теме
Создаю внешнюю печатную форму со штрикодом, большую часть кода взял из стандартной процедуры печати, но при сохранении своей формы вылетает куча ошибок, может в процедуру нужно еще что то предать, кроме табличного документа?
Функция КомпонентаПечатиШтрихКодовУстановлена() Экспорт
	Попытка
		БарКодПроверка=Новый COMОбъект("V8.Barcod.1");
		Возврат Истина;
	Исключение
		Возврат Ложь;
	КонецПопытки;
КонецФункции

Функция ПечатьФормыСШтрихкодомЗаказВнутр (ТабДокумент) Экспорт
	// Зададим параметры макета
	ТабДокумент.ПолеСверху = 0;
	ТабДокумент.ПолеСлева  = 0;
	ТабДокумент.ПолеСнизу  = 0;
	ТабДокумент.ПолеСправа = 0;
	ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;

	
	Макет = ПолучитьМакет("МакетСШтрихкодом");
	
	НомерСтраницы	= 2;
	НомерСтраницыПред = НомерСтраницы;
	
ОбластьМакета = Макет.ПолучитьОбласть("Заголовок1");
		ОбластьМакета.Параметры.ТекстЗаголовка = ЭтотОбъект;
		Если НЕ КомпонентаПечатиШтрихКодовУстановлена() Тогда
			Сообщить("Не установлена компонента печати этикеток '1C-Barcode'!",СтатусСообщения.Важное);
		Иначе
			// попытаемся напечатать ШК
			Попытка
				ОбластьМакета.Рисунки.D1.Объект.ТипКода=10;
				ОбластьМакета.Рисунки.D1.Объект.Сообщение=СокрЛП(ИДДокументаОтгрузки);
			Исключение
			КонецПопытки;
		КонецЕсли;

	ТабДокумент.Вывести(ОбластьМакета);
	
	ОбластьМакета = Макет.ПолучитьОбласть("Поставщик");
	ОбластьМакета.Параметры.ПредставлениеПоставщика = спПолучитьПредставление(ЭтотОбъект.Организация);
	ОбластьМакета.Параметры.ПодразделениеПоставщик = СокрЛП(ПодразделениеПоставщик);
	ТабДокумент.Вывести(ОбластьМакета);
	
	ОбластьМакета = Макет.ПолучитьОбласть("Покупатель");
	ОбластьМакета.Параметры.ПредставлениеПолучателя = ПодразделениеПолучатель;
	ТабДокумент.Вывести(ОбластьМакета);

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

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


Ошибки:
{ВнешняяОбработка.ПечФормЗаказВнутр.МодульОбъекта(32,54)}: Переменная не определена (ИДДокументаОтгрузки)
ОбластьМакета.Рисунки.D1.Объект.Сообщение=СокрЛП(<<?>>ИДДокументаОтгрузки); (Проверка: Толстый клиент (обычное приложение))
{ВнешняяОбработка.ПечФормЗаказВнутр.МодульОбъекта(41,58)}: Переменная не определена (ПодразделениеПоставщик)
ОбластьМакета.Параметры.ПодразделениеПоставщик = СокрЛП(<<?>>ПодразделениеПоставщик); (Проверка: Толстый клиент (обычное приложение))
{ВнешняяОбработка.ПечФормЗаказВнутр.МодульОбъекта(45,52)}: Переменная не определена (ПодразделениеПолучатель)
ОбластьМакета.Параметры.ПредставлениеПолучателя = <<?>>ПодразделениеПолучатель; (Проверка: Толстый клиент (обычное приложение))
{ВнешняяОбработка.ПечФормЗаказВнутр.МодульОбъекта(52,87)}: Переменная не определена (Права)
ОбластьШапкаТаблицы.Параметры.ИмяКолонкиКодов = обПраво("РежимВыводаКодаВДокументах",<<?>>Права); (Проверка: Толстый клиент (обычное приложение))
{ВнешняяОбработка.ПечФормЗаказВнутр.МодульОбъекта(60,86)}: Переменная не определена (Права)
СтруктураСтроки = дкПолучитьПредставлениеДанныхТоварнойСтроки(СтрокаТабличнойЧасти,<<?>>Права); (Проверка: Толстый клиент (обычное приложение))
{ВнешняяОбработка.ПечФормЗаказВнутр.МодульОбъекта(99,22)}: Переменная не определена (Права)
НомерСтраницы, , <<?>>Права, мсвДопОбластиПодвала); (Проверка: Толстый клиент (обычное приложение))
{ВнешняяОбработка.ПечФормЗаказВнутр.МодульОбъекта(110,96)}: Переменная не определена (Права)
НомерСтраницы = дкВывестиГоризонтальнуюОбласть(ТабДокумент, ОбластьПодвал, , , НомерСтраницы,,<<?>>Права); (Проверка: Толстый клиент (обычное приложение))
{ВнешняяОбработка.ПечФормЗаказВнутр.МодульОбъекта(108,37)}: Переменная не определена (Товары)
ОбластьПодвал.Параметры.СуммаВсего=<<?>>Товары.Итог("СуммаВсего"); (Проверка: Толстый клиент (обычное приложение))
Найденные решения
4. Yulia_Bird 22.09.21 09:44 Сейчас в теме
Если исходить из перечисленных ошибок, то вы пытаетесь отобразить значения ИДДокументаОтгрузки, ПодразделениеПоставщик, ПодразделениеПолучатель, Права, Товары, но "не указываете" обработке, где их брать. Если с обьекта, то так и обращайтесь к ним через точку СсылкаНаОбъект.ИДДокументаОтгрузки, СсылкаНаОбъект.ПодразделениеПоставщик и т.д.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. RustamZz 21.09.21 18:33 Сейчас в теме
(1) На стандартную процедуру совсем не похоже. Не управляемые формы - обычные?

Внешняя печатная форма.

Внешняя обработка, содержащая:

Необязательный реквизит «ДополнительныеПараметры» произвольного типа, которому будут передаваться дополнительные параметры примитивного типа в виде структуры.
Реквизит «СсылкаНаОбъект», в который при вызове будет передана ссылка на объект, для которого необходимо выполнить печать.
Функция «Печать()» - без параметров, возвращающая табличный документ.
3. G_112708749323588293243 21.09.21 18:43 Сейчас в теме
4. Yulia_Bird 22.09.21 09:44 Сейчас в теме
Если исходить из перечисленных ошибок, то вы пытаетесь отобразить значения ИДДокументаОтгрузки, ПодразделениеПоставщик, ПодразделениеПолучатель, Права, Товары, но "не указываете" обработке, где их брать. Если с обьекта, то так и обращайтесь к ним через точку СсылкаНаОбъект.ИДДокументаОтгрузки, СсылкаНаОбъект.ПодразделениеПоставщик и т.д.
Оставьте свое сообщение

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