Ошибка {ВнешняяОбработка.ВПФ_СчетПокупателю.МодульОбъекта(74)}: Значение не является значением объектного типа (КодЯзыкаДляМногоязычныхПечатныхФорм) КодЯзыкаПечать = ПараметрыВывода.КодЯзыкаДляМногоязычныхПечатныхФорм;

1. alexa12236 10.12.21 22:05 Сейчас в теме
Делаю внешнюю печатную форму, выдает ошибку {ВнешняяОбработка.ВПФ_СчетПокупателю.МодульОбъекта(74)}: Значение не является значением объектного типа (КодЯзыкаДляМногоязычныхПечатныхФорм)
КодЯзыкаПечать = ПараметрыВывода.КодЯзыкаДляМногоязычныхПечатныхФорм;


Функция СведенияОВнешнейОбработке() Экспорт
	
	ПараметрыРегистрации = Новый Структура;
	МассивНазначений = Новый Массив;

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

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

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

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

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


Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
	
	Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "СчетПокупателюСпецЦена") Тогда
		СтруктураТипов = ОбщегоНазначенияУТ.СоответствиеМассивовПоТипамОбъектов(МассивОбъектов);
		УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
			КоллекцияПечатныхФорм,
			"СчетПокупателюСпецЦена",
			"Счет покупателю (спец цена)",
			ПечатьСчетаНаОплату_Счет(МассивОбъектов, ОбъектыПечати, Истина),
			,
			,
			,
			Истина // ЭтоМногоязычнаяПечатнаяФорма 
		);
	КонецЕсли;

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


Функция ПечатьСчетаНаОплату_Счет(МассивОбъектов, ОбъектыПечати, ПараметрыВывода) Экспорт
	Перем КомплектПечатиПоСсылке;
	
	КодЯзыкаПечать = ПараметрыВывода.КодЯзыкаДляМногоязычныхПечатныхФорм;
	
	ТабличныйДокумент = Новый ТабличныйДокумент;
	ТабличныйДокумент.АвтоМасштаб = Истина;
	ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_СЧЕТНАОПЛАТУ";

	Макет = ПолучитьМакет("Макет");	
	Макет.КодЯзыка = КодЯзыкаПечать;
	Макет.КодЯзыкаМакета = КодЯзыкаПечать;
	
	Запрос = Новый Запрос;
	Запрос.Текст = "ВЫБРАТЬ
	               |	etn_СчетНаОплатуТовары.Ссылка КАК Ссылка,
	               |	etn_СчетНаОплатуТовары.Номенклатура,
	               |	etn_СчетНаОплатуТовары.Количество,
	               |	etn_СчетНаОплатуТовары.Цена,
	               |	etn_СчетНаОплатуТовары.СтавкаНДС,
	               |	etn_СчетНаОплатуТовары.СуммаНДС,
	               |	etn_СчетНаОплатуТовары.СуммаСНДС,
	               |	etn_СчетНаОплатуТовары.Сумма,
	               |	etn_СчетНаОплатуТовары.Ссылка.СуммаДокумента,
	               |	etn_СчетНаОплатуТовары.Ссылка.ДокументОснование.Номер КАК Номер,
	               |	etn_СчетНаОплатуТовары.Ссылка.ДокументОснование.Дата КАК Дата,
	               |	etn_СчетНаОплатуТовары.Ссылка.ДокументОснование.Партнер КАК Партнер,
	               |	etn_СчетНаОплатуТовары.Ссылка.ДокументОснование.Контрагент КАК Контрагент,
	               |	etn_СчетНаОплатуТовары.Ссылка.ДокументОснование.Организация КАК Организация,
	               |	etn_СчетНаОплатуТовары.Ссылка.ДокументОснование.БанковскийСчет КАК БанковскийСчет,
	               |	etn_СчетНаОплатуТовары.Ссылка.ДокументОснование.БанковскийСчетКонтрагента КАК БанковскийСчетКонтрагента,
	               |	etn_СчетНаОплатуТовары.Ссылка.ДокументОснование.Договор КАК Договор,
	               |	etn_СчетНаОплатуТовары.Ссылка.ДокументОснование.Автор КАК Автор,
	               |	etn_СчетНаОплатуТовары.Ссылка.ДокументОснование.Валюта КАК Валюта,
	               |	etn_СчетНаОплатуТовары.Ссылка.ДокументОснование.Грузоотправитель КАК Грузоотправитель,
	               |	etn_СчетНаОплатуТовары.Ссылка.ДокументОснование.Грузополучатель КАК Грузополучатель,
	               |	etn_СчетНаОплатуТовары.Ссылка.ДокументОснование.ГлавныйБухгалтер КАК ГлавныйБухгалтер,
	               |	etn_СчетНаОплатуТовары.Ссылка.ДокументОснование.ДокументОснование КАК ДокументОснование,
	               |	"""" КАК ДолжностьРуководителя,
	               |	"""" КАК ДополнительнаяИнформация,
	               |	etn_СчетНаОплатуТовары.Ссылка.ДокументОснование.Контрагент.ЮрФизЛицо КАК КонтрагентЮрФизЛицо,
	               |	etn_СчетНаОплатуТовары.Ссылка.ДокументОснование.Менеджер.ФизическоеЛицо.Наименование КАК Менеджер,
	               |	etn_СчетНаОплатуТовары.Ссылка.ДокументОснование.Организация КАК ОрганизацияПоставщик,
	               |	100 КАК ПроцентОплаты,
	               |	etn_СчетНаОплатуТовары.Ссылка.ДокументОснование.Руководитель КАК Руководитель,
	               |	ИСТИНА КАК УчитыватьНДС,
	               |	etn_СчетНаОплатуТовары.Ссылка.ДокументОснование.НазначениеПлатежа КАК НазначениеПлатежа,
	               |	etn_СчетНаОплатуТовары.Ссылка.ДокументОснование.ЦенаВключаетНДС КАК ЦенаВключаетНДС,
	               |	ЛОЖЬ КАК ЧастичнаяОплата,
	               |	etn_СчетНаОплатуТовары.Номенклатура.Наименование КАК Наименование,
	               |	etn_СчетНаОплатуТовары.Номенклатура.Артикул КАК Артикул,
	               |	etn_СчетНаОплатуТовары.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
	               |	etn_СчетНаОплатуТовары.НомерСтроки,
	               |	etn_СчетНаОплатуТовары.Упаковка,
	               |	etn_СчетНаОплатуТовары.Ссылка.НомерПП,
	               |	etn_СчетНаОплатуТовары.ЦенаБезРучнойСкидки,
	               |	etn_СчетНаОплатуТовары.ЦенаРучнойСкидки,
	               |	etn_СчетНаОплатуТовары.Номенклатура.НоменклатураГТД.КодУКТВЭД КАК КодУКТВЭД,
	               |	etn_СчетНаОплатуТовары.Сумма + etn_СчетНаОплатуТовары.СуммаРучнойСкидки + etn_СчетНаОплатуТовары.СуммаАвтоматическойСкидки КАК СуммаБезСкидки,
	               |	etn_СчетНаОплатуТовары.СуммаРучнойСкидки + etn_СчетНаОплатуТовары.СуммаАвтоматическойСкидки КАК СуммаСкидки,
	               |	etn_СчетНаОплатуТовары.Номенклатура.АртикулПК КАК АртикулPQ
	               |ИЗ
	               |	Документ.etn_СчетНаОплату.Товары КАК etn_СчетНаОплатуТовары
	               |ГДЕ
	               |	etn_СчетНаОплатуТовары.Ссылка В(&Ссылка)
	               |ИТОГИ
	               |	МАКСИМУМ(Номер),
	               |	МАКСИМУМ(Дата),
	               |	МИНИМУМ(Партнер),
	               |	МАКСИМУМ(Контрагент),
	               |	МАКСИМУМ(Организация),
	               |	МАКСИМУМ(БанковскийСчет),
	               |	МАКСИМУМ(БанковскийСчетКонтрагента),
	               |	МАКСИМУМ(Договор),
	               |	МАКСИМУМ(Автор),
	               |	МАКСИМУМ(Валюта),
	               |	МАКСИМУМ(Менеджер),
	               |	МАКСИМУМ(УчитыватьНДС),
	               |	МАКСИМУМ(ЦенаВключаетНДС)
	               |ПО
	               |	Ссылка";
	
	Запрос.УстановитьПараметр("Ссылка", МассивОбъектов);
	Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
	
	Пока Выборка.Следующий() Цикл
	
		Запрос2 = Новый Запрос;
		Запрос2.Текст = "ВЫБРАТЬ
		                |	etn_СчетНаОплатуТовары.Ссылка,
		                |	etn_СчетНаОплатуТовары.НомерСтроки,
		                |	etn_СчетНаОплатуТовары.Номенклатура,
		                |	etn_СчетНаОплатуТовары.Характеристика,
		                |	etn_СчетНаОплатуТовары.Упаковка,
		                |	etn_СчетНаОплатуТовары.КоличествоУпаковок,
		                |	etn_СчетНаОплатуТовары.Количество,
		                |	etn_СчетНаОплатуТовары.ВидЦены,
		                |	etn_СчетНаОплатуТовары.Цена,
		                |	etn_СчетНаОплатуТовары.ПроцентРучнойСкидки,
		                |	etn_СчетНаОплатуТовары.СуммаРучнойСкидки КАК СуммаСкидки,
		                |	etn_СчетНаОплатуТовары.ПроцентАвтоматическойСкидки,
		                |	etn_СчетНаОплатуТовары.СуммаАвтоматическойСкидки,
		                |	etn_СчетНаОплатуТовары.СтавкаНДС,
		                |	etn_СчетНаОплатуТовары.СуммаНДС,
		                |	etn_СчетНаОплатуТовары.СуммаСНДС,
		                |	etn_СчетНаОплатуТовары.Сумма,
		                |	etn_СчетНаОплатуТовары.Активность,
		                |	etn_СчетНаОплатуТовары.ТекстовоеОписание,
		                |	etn_СчетНаОплатуТовары.КлючСвязи,
		                |	etn_СчетНаОплатуТовары.НоменклатураНабора,
		                |	etn_СчетНаОплатуТовары.ХарактеристикаНабора,
		                |	etn_СчетНаОплатуТовары.ЦенаБезРучнойСкидки,
		                |	etn_СчетНаОплатуТовары.ЦенаРучнойСкидки,
		                |	ИСТИНА КАК УчитыватьНДС
		                |ИЗ
		                |	Документ.etn_СчетНаОплату.Товары КАК etn_СчетНаОплатуТовары
		                |ГДЕ
		                |	etn_СчетНаОплатуТовары.Ссылка = &Ссылка";
		
		Запрос2.УстановитьПараметр("Ссылка", Выборка.Ссылка);                
		ТаблицаТовары = Запрос2.Выполнить().Выгрузить();
	
	
		СведенияОПоставщике = ФормированиеПечатныхФорм.СведенияОЮрФизЛице(Выборка.Организация, Выборка.Дата,,Выборка.БанковскийСчет);
		СведенияОПокупателе = ФормированиеПечатныхФорм.СведенияОЮрФизЛице(Выборка.Контрагент, Выборка.Дата);
	
		ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
	
		//ТекстЗаголовка = ОбщегоНазначенияУТКлиентСервер.СформироватьЗаголовокДокумента(Выборка, НСтр("ru='Счет на оплату';uk='Рахунок на оплату'",КодЯзыкаПечать), КодЯзыкаПечать);
		НомерНаПечать = ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать(Выборка.Номер);
	
		ТекстЗаголовка =  СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
			НСтр("ru='%1 № %2 от %3';uk='%1 № %2 від %3'",КодЯзыкаПечать),
			НСтр("ru='Счет на оплату';uk='Рахунок на оплату'",КодЯзыкаПечать), 
			НомерНаПечать + "/" + Выборка.НомерПП, 
			Формат(Выборка.Дата, "ДЛФ=DD;Л="+Локализация.ОпределитьКодЯзыкаДляФормат(КодЯзыкаПечать)));
			
			
		СтруктураДанныхШапки = Новый Структура;
		СтруктураДанныхШапки.Вставить("ТекстЗаголовка", ТекстЗаголовка);
		ОбластьМакета.Параметры.Заполнить(СтруктураДанныхШапки);
		ТабличныйДокумент.Вывести(ОбластьМакета);
	
		ОбластьМакета = Макет.ПолучитьОбласть("Поставщик");
	
		СтруктураДанныхПоставщик = Новый Структура;
		СтруктураДанныхПоставщик.Вставить("ПредставлениеПоставщика", ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ПолноеНаименование,",,КодЯзыкаПечать));
		СтруктураДанныхПоставщик.Вставить("РеквизитыПоставщика", ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "НомерСчета,Банк,МФО,/,ЮридическийАдрес,Телефоны,/,КодПоЕДРПОУ,КодПоДРФО,ИНН,НомерСвидетельства,/,ИнформацияОСтатусеПлательщикаНалогов",,КодЯзыкаПечать));
	
		//Оксана...
		СтруктураДанныхПоставщик.Вставить("КодПоЕДРПОУ", 		СведенияОПоставщике.КодПоЕДРПОУ);
		СтруктураДанныхПоставщик.Вставить("Телефон", 			СведенияОПоставщике.Телефоны);
		СтруктураДанныхПоставщик.Вставить("РСчет", 				СведенияОПоставщике.НомерСчета);
		СтруктураДанныхПоставщик.Вставить("Банк", 				СведенияОПоставщике.Банк);
		СтруктураДанныхПоставщик.Вставить("МФО", 				СведенияОПоставщике.МФО);
		СтруктураДанныхПоставщик.Вставить("ИНН", 				СведенияОПоставщике.ИНН);
		СтруктураДанныхПоставщик.Вставить("НомерСвидетельства", СведенияОПоставщике.НомерСвидетельства);
		СтруктураДанныхПоставщик.Вставить("Адрес", 				СведенияОПоставщике.ЮридическийАдрес);
		//... Оксана
		
		ОбластьМакета.Параметры.Заполнить(СтруктураДанныхПоставщик);
		ТабличныйДокумент.Вывести(ОбластьМакета);
	
		ОбластьМакета = Макет.ПолучитьОбласть("Покупатель");
		СтруктураДанныхПокупатель = Новый Структура;
		СтруктураДанныхПокупатель.Вставить("ПредставлениеПолучателя", ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе, "ПолноеНаименование,",,КодЯзыкаПечать));
		СтруктураДанныхПокупатель.Вставить("РеквизитыПолучателя", ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе, "Телефоны,",,КодЯзыкаПечать));
		ОбластьМакета.Параметры.Заполнить(СтруктураДанныхПокупатель);
		
		ОбластьМакета.Параметры.Договор = Выборка.Договор.НаименованиеДляПечати; //Александра
		ОбластьМакета.Параметры.ДатаДоговора = Формат(Выборка.Договор.Дата, "ДФ=dd.MM.yyyy"); //Александра

		ТабличныйДокумент.Вывести(ОбластьМакета);

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

		//ЕстьСкидкаНаЦену = ЕстьСкидкаНаЦену(Выборка.Ссылка);
						
		ДанныеПечати = Выборка.Выбрать();
		
		ЕстьСодержание = Ложь;
	
		ПоказыватьНДС = Ложь; //Константы.ВыводитьДопКолонкиНДС.Получить();
		ПервыйДокумент = Истина;
	
		
		Если ПервыйДокумент Тогда
			ПервыйДокумент = Ложь;
		Иначе
			ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
		КонецЕсли;
			
		МассивПроверкиВывода = Новый Массив;
		
		Сумма = 0;
		СуммаНДС = 0;
		ВсегоСкидок = 0;
		ВсегоБезСкидок = 0;
		НомерСтроки = 0;
		СоответствиеСтавокНДС = Новый Соответствие;
		СуффиксОбласти = "";
		
		// Таблица "Товары"
		
			ОбластьШапкаТаблицы          = Макет.ПолучитьОбласть("ШапкаТаблицы");
			ОбластьСтрокаТаблицы		 = Макет.ПолучитьОбласть("СтрокаТаблицы");
			ОбластьПодвалТаблицы         = Макет.ПолучитьОбласть("ПодвалТаблицы");
			ОбластьПодвалНДС             = Макет.ПолучитьОбласть("ПодвалТаблицыНДС");
			
		
		ПустыеДанные = НаборыСервер.ПустыеДанные();
		ВыводШапки = 0;
		
		ОбластьПодвалСНДС = Макет.ПолучитьОбласть("ПодвалТаблицыВсегоСНДС");
		ЗаполнитьЗначенияСвойств(ОбластьШапкаТаблицы.Параметры, ФормированиеПечатныхФорм.СформироватьЗаголовкиДляСуммовыхПоказателей(Выборка, КодЯзыкаПечать));
		
		//Если НЕ ЕстьСкидкаНаЦену Тогда
		//
		//	Если ЕстьСкидки Тогда
		//		СтруктураЗаголовокСкидки = Новый Структура("Скидка, СуммаБезСкидки", 
		//			ЗаголовокСкидки.Скидка,
		//			ЗаголовокСкидки.СуммаСкидки);
		//		ОбластьШапкаТаблицы.Параметры.Заполнить(СтруктураЗаголовокСкидки);
		//	КонецЕсли;
		//КонецЕсли;
		
		ПустыеДанные = НаборыСервер.ПустыеДанные();
		ВыводШапки = 0;
		
		//СуффиксОбластиПодвал = "СНДС";
		//ОбластьПодвалСНДС = Макет.ПолучитьОбласть("ПодвалТаблицыВсего" + СуффиксОбластиПодвал);
		
		ЗаполнитьЗначенияСвойств(ОбластьШапкаТаблицы.Параметры, ФормированиеПечатныхФорм.СформироватьЗаголовкиДляСуммовыхПоказателей(Выборка, КодЯзыкаПечать));
		
		ОбластьШапкаТаблицы.Параметры.Заполнить(СтруктураИмяДопКолонки);
		ОбластьСуммаПрописью = Макет.ПолучитьОбласть("СуммаПрописью");
		
		Пока ДанныеПечати.Следующий() Цикл
		
			//ОбластьСтрокаТаблицы = ОбластьСтрокаТаблицыСтандарт;
			
			НомерСтроки = НомерСтроки + 1;
			НомерСтрокиПечать = НомерСтроки;
			
			Если НомерСтроки = 0 И ВыводШапки <> 2 Тогда
				ВыводШапки = 1;
			КонецЕсли;
				
			Товар = "" + НоменклатураКлиентСервер.ПредставлениеНоменклатурыДляПечати(
					ДанныеПечати.Номенклатура.НаименованиеПолное,
					,
					,
					, 
					,
					Ложь, КодЯзыкаПечать);
					
			СтруктураДанныхСтроки = Новый Структура;
			СтруктураДанныхСтроки.Вставить("Товар", Товар);
			СтруктураДанныхСтроки.Вставить("НомерСтроки", НомерСтрокиПечать);
			СтруктураДанныхСтроки.Вставить("Цена", 					Формат(ДанныеПечати.Цена, "ЧДЦ=2"));
			СтруктураДанныхСтроки.Вставить("Сумма", 				Формат(ДанныеПечати.Сумма, "ЧДЦ=2"));
			//СтруктураДанныхСтроки.Вставить("СуммаСкидки", 		Формат(ДанныеПечати.СуммаСкидки, "ЧДЦ=2"));
			СтруктураДанныхСтроки.Вставить("СуммаБезСкидки", 		Формат(ДанныеПечати.СуммаБезСкидки, "ЧДЦ=2"));
			СтруктураДанныхСтроки.Вставить("ЦенаРучнойСкидки", 		Формат(ДанныеПечати.ЦенаРучнойСкидки, "ЧДЦ=2"));
			СтруктураДанныхСтроки.Вставить("ЦенаБезРучнойСкидки", 	Формат(ДанныеПечати.ЦенаБезРучнойСкидки, "ЧДЦ=2"));
			ОбластьСтрокаТаблицы.Параметры.Заполнить(ДанныеПечати);
			
			Если ЗначениеЗаполнено(СтруктураИмяДопКолонки.ИмяКолонкиКодов) Тогда
				СтруктураДанныхСтроки.Вставить("Артикул", ДанныеПечати[СтруктураИмяДопКолонки.ИмяКолонкиКодов]);
			КонецЕсли;
			
			ОбластьСтрокаТаблицы.Параметры.Заполнить(СтруктураДанныхСтроки);
			
			МассивПроверкиВывода.Очистить();
			МассивПроверкиВывода.Добавить(ОбластьСтрокаТаблицы);
			Если НомерСтроки = ДанныеПечати.Количество() Тогда
				МассивПроверкиВывода.Добавить(ОбластьПодвалТаблицы);
				МассивПроверкиВывода.Добавить(ОбластьПодвалНДС);
				МассивПроверкиВывода.Добавить(ОбластьСуммаПрописью);
			КонецЕсли;
			
			Если ТабличныйДокумент.ПроверитьВывод(МассивПроверкиВывода) Тогда
				Если (НомерСтроки = 1 И ВыводШапки = 0) ИЛИ (НомерСтроки = 0 И ВыводШапки = 1) Тогда
					ВыводШапки = 2;
					ТабличныйДокумент.Вывести(ОбластьШапкаТаблицы);
				КонецЕсли;
			Иначе
				ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
				ТабличныйДокумент.Вывести(ОбластьШапкаТаблицы);
			КонецЕсли;
			
			ТабличныйДокумент.Вывести(ОбластьСтрокаТаблицы);
				
			Сумма = Сумма + ДанныеПечати.Сумма;
			СуммаНДС = СуммаНДС + ДанныеПечати.СуммаНДС;
				
			СуммаНДСПоСтавке = СоответствиеСтавокНДС[ДанныеПечати.СтавкаНДС];
			Если СуммаНДСПоСтавке = Неопределено Тогда
				СуммаНДСПоСтавке = 0;
			КонецЕсли;
			СоответствиеСтавокНДС.Вставить(ДанныеПечати.СтавкаНДС, СуммаНДСПоСтавке + ДанныеПечати.СуммаНДС);

		КонецЦикла; //ДанныеПечати.Следующий()
		
		
		СтруктураДанныхВсегоСкидки = Новый Структура;
			
		// Подвал таблицы "Товары"
		СтруктураДанныхВсегоСкидки.Вставить("Всего", ФормированиеПечатныхФорм.ФорматСумм(Сумма));
		ОбластьПодвалТаблицы.Параметры.Заполнить(СтруктураДанныхВсегоСкидки);
		ТабличныйДокумент.Вывести(ОбластьПодвалТаблицы);
			
		// Область "ПодвалТаблицыНДС"
			
		Для Каждого ТекСтавкаНДС Из СоответствиеСтавокНДС Цикл
			СтруктураДанныхПодвалНДС = Новый Структура;
			СтруктураДанныхПодвалНДС.Вставить("НДС", ФормированиеПечатныхФорм.ТекстНДСПоСтавке(ТекСтавкаНДС.Ключ, Выборка.ЦенаВключаетНДС, КодЯзыкаПечать));
			СтруктураДанныхПодвалНДС.Вставить("ВсегоНДС", Формат(ТекСтавкаНДС.Значение, "ЧДЦ=2"));
			ОбластьПодвалНДС.Параметры.Заполнить(СтруктураДанныхПодвалНДС);
			ТабличныйДокумент.Вывести(ОбластьПодвалНДС);
			
		КонецЦикла;
		СтруктураДанныхПодвалВсегоСНДС = Новый Структура;
		СтруктураДанныхПодвалНДС.Вставить("ВсегоСНДС", Формат(Сумма + ?(Выборка.ЦенаВключаетНДС, 0, СуммаНДС), "ЧДЦ=2"));
		ОбластьПодвалСНДС.Параметры.Заполнить(СтруктураДанныхПодвалНДС);
		ТабличныйДокумент.Вывести(ОбластьПодвалСНДС);
		
		
		// Вывести Сумму прописью
		СуммаКПрописи = Сумма + ?(Выборка.ЦенаВключаетНДС, 0, СуммаНДС);
		ИтоговаяСтрока = НСтр("ru='Всего наименований %Количество%, на сумму %Сумма%';uk='Всього найменувань %Количество%, на суму %Сумма%'",КодЯзыкаПечать);
		ИтоговаяСтрока = СтрЗаменить(ИтоговаяСтрока, "%Количество%", НомерСтроки);
		ИтоговаяСтрока = СтрЗаменить(ИтоговаяСтрока, "%Сумма%",      ФормированиеПечатныхФорм.ФорматСумм(СуммаКПрописи, Выборка.Валюта));
		
		СтруктураДанныхСуммаПрописью = Новый Структура;
		СтруктураДанныхСуммаПрописью.Вставить("СуммаПрописью", РаботаСКурсамиВалют.СформироватьСуммуПрописью(СуммаКПрописи, Выборка.Валюта, Ложь, КодЯзыкаПечать));
		
		СтруктураДанныхСуммаПрописью.Вставить("ИтоговаяСтрока", ИтоговаяСтрока);
		ОбластьСуммаПрописью.Параметры.Заполнить(СтруктураДанныхСуммаПрописью);
		ТабличныйДокумент.Вывести(ОбластьСуммаПрописью);

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

Показать
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. dehro 7 10.12.21 22:29 Сейчас в теме
Описание: Функция ПечатьСчетаНаОплату_Счет(МассивОбъектов, ОбъектыПечати, ПараметрыВывода) Экспорт

вызов: ПечатьСчетаНаОплату_Счет(МассивОбъектов, ОбъектыПечати, Истина),

У значения "истина" нет методов и свойств((
alexa12236; +1 Ответить
4. alexa12236 11.12.21 00:37 Сейчас в теме
(2) Да спасибо, больше этой ошибке нет
Теперь ошибка Печатная форма недоступна(((
3. a30v 10.12.21 23:05 Сейчас в теме
В процедуре Печать вместо ПечатьСчетаНаОплату_Счет(МассивОбъектов, ОбъектыПечати, Истина) нужно написать ПечатьСчетаНаОплату_Счет(МассивОбъектов, ОбъектыПечати, ПараметрыВывода)
alexa12236; +1 Ответить
5. alexa12236 11.12.21 00:37 Сейчас в теме
(3) Спасибо
Теперь ошибка Печатная форма недоступна(((
6. dehro 7 11.12.21 09:44 Сейчас в теме
Там много причин. Ты пытаешься переделать внешнюю печатную форму под другие задачи?

Неправильный путь. Первый раз нужно написать форму с нуля самой.
Оставьте свое сообщение

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