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

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)а как подогнать поля? Он ругается на то что упорядочить и итоги должны находится в списке выбора
Оставьте свое сообщение
Вакансии
1С-Программист (интегратор Битрикс24)
Санкт-Петербург
зарплата от 150 000 руб. до 250 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 100 000 руб.
Временный (на проект)

Разработчик 1С
Москва
зарплата от 150 000 руб.
Полный день

Программист
Санкт-Петербург
зарплата от 180 000 руб. до 240 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 150 000 руб. до 250 000 руб.
Полный день