Печать склада из табличной части документа реализация товаров и услуг!

1. Antimyslitel 35 22.09.23 15:42 Сейчас в теме
Добрый день,
Возникла ситуация:
Необходимо в печатной форме реализация товаров и услуг в табличной части выводить склады которые также указаны в табличной части документа а не тот который основной, в табличной части могут быть сразу несколько разных складов и их надо выводить на печать!
Прикрепленные файлы:
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. homer_ 78 22.09.23 15:46 Сейчас в теме
И? Возмущен что пользователи посмели такое захотеть?
3. Antimyslitel 35 22.09.23 15:48 Сейчас в теме
4. homer_ 78 22.09.23 16:04 Сейчас в теме
(3) Телепаты сегодня отдыхают и нам не могут подсказать, что это за печатная форма, как она выводится и где не получается.
поэтому попробуй вот так:

Склад = АхалайМахалай.КриблиКраблиБумс(ТабличнаяЧасть,Номенклатура)
5. Antimyslitel 35 22.09.23 16:18 Сейчас в теме
(4)
Функция ПечатьДокумента(СуммыВРублях = Ложь)

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

	ТекстКурс = "";

	СтрокаВыборкиПоляСодержания = ОбработкаТабличныхЧастей.ПолучитьЧастьЗапросаДляВыбораСодержания("РеализацияТоваровУслуг");

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

	ЗапросТовары = Запрос.Выполнить().Выгрузить();
	флВыводитьМест = истина;
	Если ЗапросТовары.Итог("КоличествоМест")=0 Тогда
		флВыводитьМест = ложь;
	КонецЕсли;
	
	ТабДокумент = Новый ТабличныйДокумент;
	ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РеализацияТоваровУслуг_Накладная";
	
	Макет = ПолучитьМакет("Накладная1");

	// Выводим шапку накладной

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

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

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

	ЕстьСкидки = ЗапросТовары.Итог("Скидка") + ЗапросТовары.Итог("АвтоматическаяСкидка") <> 0;

	ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
	Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
		ВыводитьКоды = Истина;
		Колонка = "Артикул";
	ИначеЕсли ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Код Тогда
		ВыводитьКоды = Истина;
		Колонка = "Код";
	Иначе
		ВыводитьКоды = Ложь;
	КонецЕсли;

	ОбластьНомера = Макет.ПолучитьОбласть("ШапкаТаблицы|НомерСтроки");
	ОбластьКодов  = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкаКодов");
	ОбластьТовар   = Макет.ПолучитьОбласть("ШапкаТаблицы|Товар");
	ОбластьМест   = Макет.ПолучитьОбласть("ШапкаТаблицы|Мест");
	ОбластьДанных = Макет.ПолучитьОбласть("ШапкаТаблицы|КоличествоЦена");
	ОбластьСкидок = Макет.ПолучитьОбласть("ШапкаТаблицы|Скидка");
	ОбластьСуммы  = Макет.ПолучитьОбласть("ШапкаТаблицы|Сумма");
	ОбластьСклад	= Макет.ПолучитьОбласть("ШапкаТаблицы|Склад");

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

	ТабДокумент.Присоединить(ОбластьДанных);
	Если ЕстьСкидки Тогда
		ТабДокумент.Присоединить(ОбластьСкидок);
	КонецЕсли;
	ТабДокумент.Присоединить(ОбластьСуммы);
	ТабДокумент.Присоединить(ОбластьСклад);
	ОбластьКолонкаТовар = Макет.Область("Товар");
	Если Не ВыводитьКоды Тогда
		ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки + 
		Макет.Область("КолонкаКодов").ШиринаКолонки;
	КонецЕсли;
	Если НЕ ЕстьСкидки Тогда
		ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки + 
		Макет.Область("СуммаБезСкидки").ШиринаКолонки +
		Макет.Область("СуммаСкидки").ШиринаКолонки;
	КонецЕсли;
	
	Если не флВыводитьМест Тогда
		ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки + 
		ФормированиеПечатныхФорм.РасчетШириныОбластиМакета("Мест", Макет);
	КонецЕсли;

	ОбластьНомера	 = Макет.ПолучитьОбласть("Строка|НомерСтроки");
	ОбластьКодов 	 = Макет.ПолучитьОбласть("Строка|КолонкаКодов");
	ОбластьТовар 	 = Макет.ПолучитьОбласть("Строка|Товар");
	ОбластьМест 	 = Макет.ПолучитьОбласть("Строка|Мест");
	ОбластьДанных	 = Макет.ПолучитьОбласть("Строка|КоличествоЦена");
	ОбластьСкидок	 = Макет.ПолучитьОбласть("Строка|Скидка");
	ОбластьСуммы 	 = Макет.ПолучитьОбласть("Строка|Сумма");
	ОбластьСклад 	 = Макет.ПолучитьОбласть("Строка|Склад");
	Сумма    = 0;
	СуммаНДС = 0;
	ВсегоСкидок    = 0;
	ВсегоБезСкидок = 0;
	КоэфКурса = ?( СуммыВРублях, Шапка.КурсВзаиморасчетов / Шапка.КратностьВзаиморасчетов, 1);
	
	Для каждого ВыборкаСтрокТовары из ЗапросТовары Цикл 

		Если Не ЗначениеЗаполнено(ВыборкаСтрокТовары.Номенклатура) Тогда
			Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное);
			Продолжить;
		КонецЕсли;

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

		Если флВыводитьМест Тогда
			ОбластьМест.Параметры.Заполнить(ВыборкаСтрокТовары);
			ТабДокумент.Присоединить(ОбластьМест);
		КонецЕсли;

		СуммаРуб = Окр(ВыборкаСтрокТовары.Сумма * КоэфКурса, 2, 1);

		ОбластьДанных.Параметры.Заполнить(ВыборкаСтрокТовары);
		//ОбластьДанных.Параметры.Цена  = ?(ВыборкаСтрокТовары.Количество = 0, СуммаРуб, Окр( СуммаРуб / ВыборкаСтрокТовары.Количество, 2, 1));
		ОбластьДанных.Параметры.Цена  = Окр(ВыборкаСтрокТовары.Цена * КоэфКурса, 2, 1);

		ТабДокумент.Присоединить(ОбластьДанных);

		// Скидка может быть NULL
		ПроцентСкидки = ?(ЗначениеЗаполнено(ВыборкаСтрокТовары.Скидка),ВыборкаСтрокТовары.Скидка,0) 
		+ ?(ЗначениеЗаполнено(ВыборкаСтрокТовары.АвтоматическаяСкидка),ВыборкаСтрокТовары.АвтоматическаяСкидка,0);

		Скидка = Ценообразование.ПолучитьСуммуСкидки(СуммаРуб, ПроцентСкидки);

		Если ЕстьСкидки Тогда
			ОбластьСкидок.Параметры.Скидка         = Скидка;
			ОбластьСкидок.Параметры.СуммаБезСкидки = ?(СуммыВРублях, СуммаРуб, ВыборкаСтрокТовары.Сумма) + Скидка;
			ТабДокумент.Присоединить(ОбластьСкидок);
		КонецЕсли;

		ОбластьСуммы.Параметры.Заполнить(ВыборкаСтрокТовары);
		Если СуммыВРублях Тогда
			ОбластьСуммы.Параметры.Сумма = СуммаРуб;
		КонецЕсли;

		ОбластьСуммы.Параметры.НомерГТДСтранаПроисхождения = ?(ЗначениеЗаполнено(ВыборкаСтрокТовары.НомерГТД),
		СокрЛП(ВыборкаСтрокТовары.НомерГТД.Код)+",", "") + Символы.ПС + ВыборкаСтрокТовары.СтранаПроисхождения;		
		
		ТабДокумент.Присоединить(ОбластьСуммы);
		Если СуммыВРублях Тогда
			Сумма          = Сумма       + СуммаРуб;
			СуммаНДС       = СуммаНДС    + Окр( ВыборкаСтрокТовары.СуммаНДС * КоэфКурса, 2, 1);
		Иначе
			Сумма          = Сумма       + ВыборкаСтрокТовары.Сумма;
			СуммаНДС       = СуммаНДС    + ВыборкаСтрокТовары.СуммаНДС;
		КонецЕсли;
		ВсегоСкидок    = ВсегоСкидок + Скидка;
		ВсегоБезСкидок = Сумма       + ВсегоСкидок;
		
		
		//Склад	=	Макет.ПолучитьОбласть(Склад);
		//Склад.Параметры.Заполнить(Склад);
		//Склад.Параметры.Склад			=	ВыборкаСтрокТовары.Склад;
		//ТабДокумент.Присоеденить(ОбластьСклад);
		//
		
		
	//	ОбластьСклад	=	Макет.ПолучитьОбласть("Склад");
		ОбластьСклад.Параметры.Заполнить(ВыборкаСтрокТовары);
		ОбластьСклад.Параметры.СКЛ = ВыборкаСтрокТовары.Склад;
		
		ТабДокумент.Присоединить(ОбластьСклад);
		
	КонецЦикла;

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

	// Вывести ИтогоНДС
	Если Шапка.УчитыватьНДС Тогда
		ОбластьНомера = Макет.ПолучитьОбласть("ИтогоНДС|НомерСтроки");
		ОбластьКодов  = Макет.ПолучитьОбласть("ИтогоНДС|КолонкаКодов");
		ОбластьТовар  = Макет.ПолучитьОбласть("ИтогоНДС|Товар");
		ОбластьМест  = Макет.ПолучитьОбласть("ИтогоНДС|Мест");
		ОбластьДанных = Макет.ПолучитьОбласть("ИтогоНДС|КоличествоЦена");
		ОбластьСкидок = Макет.ПолучитьОбласть("ИтогоНДС|Скидка");
		ОбластьСуммы  = Макет.ПолучитьОбласть("ИтогоНДС|Сумма");

		ТабДокумент.Вывести(ОбластьНомера);
		Если ВыводитьКоды Тогда
			ТабДокумент.Присоединить(ОбластьКодов);
		КонецЕсли;
		ТабДокумент.Присоединить(ОбластьТовар);
		Если флВыводитьМест Тогда
			ТабДокумент.Присоединить(ОбластьМест);
		КонецЕсли;

		ОбластьДанных.Параметры.НДС = ?(Шапка.СуммаВключаетНДС, "В том числе НДС:", "Сумма НДС:");
		ТабДокумент.Присоединить(ОбластьДанных);
		Если ЕстьСкидки Тогда
			ТабДокумент.Присоединить(ОбластьСкидок);
		КонецЕсли;
		ОбластьСуммы.Параметры.ВсегоНДС = ОбщегоНазначения.ФорматСумм(СуммаНДС);
		ТабДокумент.Присоединить(ОбластьСуммы);
	КонецЕсли;

	// Вывести Сумму прописью
	ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью");
	СуммаКПрописи = Сумма + ?(Шапка.СуммаВключаетНДС, 0, СуммаНДС);

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

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

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

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

КонецФункции // ПечатьДокумента()
Показать
8. Antimyslitel 35 22.09.23 16:43 Сейчас в теме
9. homer_ 78 22.09.23 16:45 Сейчас в теме
Вот говонокод без проверки
заменить строку
ОбластьСклад.Параметры.СКЛ = ВыборкаСтрокТовары.Склад
НА
ОбластьСклад.Параметры.СКЛ = ЯНеХочуУчится(ЭтотОбъект.Товары, ВыборкаСтрокТовары.Номенклатура);


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

КонецЦикла;
мСклад = мСклад + "@@";
мСклад = СтрЗаменить(мСклад,", @@",""0;
Возврат мСклад

КонецФункции
(8)
10. Antimyslitel 35 22.09.23 17:22 Сейчас в теме
(9)
ОбластьСклад.Параметры.СКЛ = ЯНеХочуУчится(ЭтотОбъект.Товары, ВыборкаСтрокТовары.Номенклатура);

Что означает я нехочуучится? в плане что подставить? слово Склад?
11. homer_ 78 22.09.23 17:27 Сейчас в теме
(10) задача на 5 минут, но человек с 12 летнем опытом не может оформить нормально тему, выкладывает портянки кода. Не пытается решить сам задачу.
Все это для меня признак лени. Жить на всем готовом и ничего не делать.
12. Antimyslitel 35 22.09.23 17:30 Сейчас в теме
(11) Друг я не кодил очень давно,
все забыл, ничего не помню после аварии, вот сейчас проблема с твоим кодом
{Документ.РеализацияТоваровУслуг(34)}: Метод объекта не обнаружен (СкопироватьКолонки)
мТаб = Таб.СкопироватьКолонки("Номенклатура, Склад");
6. Antimyslitel 35 22.09.23 16:20 Сейчас в теме
А это как выглядит макет!
Прикрепленные файлы:
7. Antimyslitel 35 22.09.23 16:21 Сейчас в теме
Форма обычной расходной накладной!
13. homer_ 78 22.09.23 17:36 Сейчас в теме
(12)
СкопироватьКолонки

Ну приложи усилие и поправь.
все забыл, ничего не помню после аварии

История твоих сообщений говорит обратное.
14. taramaz 63 22.09.23 19:02 Сейчас в теме
Раскоменть в запросе
// | ВложенныйЗапросПоТоварам.Склад,
и
во вложенном запросе
// | РеализацияТоваровУслуг.Склад КАК Склад,

и подгони поля у таблиц при объединении.
15. Antimyslitel 35 04.10.23 10:41 Сейчас в теме
(14)а как подогнать поля? Он ругается на то что упорядочить и итоги должны находится в списке выбора
Оставьте свое сообщение

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