Расходная накладная внешняя печатная форма УТ 11.4.13.103
Доброго дня! Подскажите, пожалуйста по внешней печатной форме - расходная накладная. Я(новичок в 1с) ее сделал из встроенной, только присоединил цены и скидки. Но проблема заключается в следующем:
Если реализация с нескольких складов, то сумма в накладных просчитывается (складывается по всем складам), как сделать чтобы, так чтобы каждая накладная была со своей суммой.
Накладную прикрепил.
Код:
Если реализация с нескольких складов, то сумма в накладных просчитывается (складывается по всем складам), как сделать чтобы, так чтобы каждая накладная была со своей суммой.
Накладную прикрепил.
Код:
Функция СформироватьПечатнуюФормуРасходнаяНакладнаяСРазбивкойПоСкладам(МассивОбъектов, ОбъектыПечати)
УстановитьПривилегированныйРежим(Истина);
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РеализацияТоваровУслуг_РасходнаяНакладнаяСРазбивкойПоСкладам";
КолонкаКодов = ФормированиеПечатныхФорм.ИмяДополнительнойКолонки();
ВыводитьКоды = ЗначениеЗаполнено(КолонкаКодов);
ИспользоватьРучныеСкидки = ПолучитьФункциональнуюОпцию("ИспользоватьРучныеСкидкиВПродажах");
ИспользоватьАвтоматическиеСкидки = ПолучитьФункциональнуюОпцию("ИспользоватьАвтоматическиеСкидкиВПродажах");
ИспользоватьУпаковки = ПолучитьФункциональнуюОпцию("ИспользоватьУпаковкиНоменклатуры");
ЗапросПоСкладам = Новый Запрос;
ЗапросПоСкладам.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ
| РеализацияТоваровУслугТовары.Ссылка КАК Ссылка,
| РеализацияТоваровУслугТовары.Склад КАК Склад,
| РеализацияТоваровУслугТовары.Склад.ИспользоватьСерииНоменклатуры КАК ИспользоватьСерииНоменклатуры
|ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
|ГДЕ
| РеализацияТоваровУслугТовары.Ссылка В(&МассивОбъектов)
| И РеализацияТоваровУслугТовары.Номенклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
|ИТОГИ ПО
| ИспользоватьСерииНоменклатуры";
ЗапросПоСкладам.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
// Создание массива для проверки: какие из докуметов не попали в выборку
МассивПроверки = Новый Массив;
Для Каждого Ссылка Из МассивОбъектов Цикл
МассивПроверки.Добавить(Ссылка);
КонецЦикла;
ДеревоОбъектов = ЗапросПоСкладам.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам);
Для Каждого ИспользованиеСерий Из ДеревоОбъектов.Строки Цикл
ЗапросПоТоварам = Новый Запрос;
ЗапросПоТоварам.УстановитьПараметр("МассивОбъектов", ИспользованиеСерий.Строки.ВыгрузитьКолонку("Ссылка"));
ЗапросПоТоварам.УстановитьПараметр("МассивСкладов", ИспользованиеСерий.Строки.ВыгрузитьКолонку("Склад"));
Если ИспользованиеСерий.ИспользоватьСерииНоменклатуры Тогда
ТекстЗапросаПоТоварам =
"ВЫБРАТЬ
| РеализацияТоваровУслугТовары.Ссылка КАК Ссылка,
| РеализацияТоваровУслугТовары.Склад КАК Склад,
| РеализацияТоваровУслугТовары.КоличествоУпаковок КАК КоличествоУпаковок,
| РеализацияТоваровУслугТовары.Количество КАК Количество,
| РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
| РеализацияТоваровУслугТовары.Характеристика КАК Характеристика,
| РеализацияТоваровУслугТовары.Упаковка КАК Упаковка,
| """" КАК Серия
|ПОМЕСТИТЬ ТаблицаТоваров
|ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
|ГДЕ
| РеализацияТоваровУслугТовары.Ссылка В(&МассивОбъектов)
| И РеализацияТоваровУслугТовары.Склад В(&МассивСкладов)
| И НЕ(РеализацияТоваровУслугТовары.Номенклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
| И РеализацияТоваровУслугТовары.СтатусУказанияСерий В (2, 4, 6, 8))
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| РеализацияТоваровУслугСерии.Ссылка,
| РеализацияТоваровУслугСерии.Склад,
| РеализацияТоваровУслугСерии.Количество,
| РеализацияТоваровУслугСерии.Количество,
| РеализацияТоваровУслугСерии.Номенклатура,
| РеализацияТоваровУслугСерии.Характеристика,
| ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка),
| РеализацияТоваровУслугСерии.Серия
|ИЗ
| Документ.РеализацияТоваровУслуг.Серии КАК РеализацияТоваровУслугСерии
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК ТаблицаТовары
| ПО РеализацияТоваровУслугСерии.Ссылка = ТаблицаТовары.Ссылка
| И РеализацияТоваровУслугСерии.Номенклатура = ТаблицаТовары.Номенклатура
| И РеализацияТоваровУслугСерии.Характеристика = ТаблицаТовары.Характеристика
| И РеализацияТоваровУслугСерии.Склад = ТаблицаТовары.Склад
|ГДЕ
| РеализацияТоваровУслугСерии.Ссылка В(&МассивОбъектов)
| И РеализацияТоваровУслугСерии.Склад В(&МассивСкладов)
| И РеализацияТоваровУслугСерии.Номенклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
|
|СГРУППИРОВАТЬ ПО
| РеализацияТоваровУслугСерии.Ссылка,
| РеализацияТоваровУслугСерии.Склад,
| РеализацияТоваровУслугСерии.Номенклатура,
| РеализацияТоваровУслугСерии.Характеристика,
| РеализацияТоваровУслугСерии.Серия,
| РеализацияТоваровУслугСерии.Количество,
| РеализацияТоваровУслугСерии.Количество
|
|ИМЕЮЩИЕ
| МАКСИМУМ(ТаблицаТовары.СтатусУказанияСерий) В (2, 4, 6, 8, 10)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТаблицаТоваров.Ссылка,
| ТаблицаТоваров.Склад,
| СУММА(ТаблицаТоваров.КоличествоУпаковок) КАК КоличествоУпаковок,
| СУММА(ТаблицаТоваров.Количество) КАК Количество,
| ТаблицаТоваров.Номенклатура,
| ТаблицаТоваров.Характеристика,
| ТаблицаТоваров.Упаковка,
| ВЫБОР
| КОГДА ТаблицаТоваров.Номенклатура.ВидНоменклатуры.НастройкаИспользованияСерий = ЗНАЧЕНИЕ(Перечисление.НастройкиИспользованияСерийНоменклатуры.ЭкземплярТовара)
| ТОГДА NULL
| ИНАЧЕ ТаблицаТоваров.Серия
| КОНЕЦ КАК Серия
|ПОМЕСТИТЬ СуммированнаяТаблицаТоваров
|ИЗ
| ТаблицаТоваров КАК ТаблицаТоваров
|
|СГРУППИРОВАТЬ ПО
| ТаблицаТоваров.Ссылка,
| ТаблицаТоваров.Склад,
| ТаблицаТоваров.Номенклатура,
| ТаблицаТоваров.Характеристика,
| ТаблицаТоваров.Упаковка,
| ВЫБОР
| КОГДА ТаблицаТоваров.Номенклатура.ВидНоменклатуры.НастройкаИспользованияСерий = ЗНАЧЕНИЕ(Перечисление.НастройкиИспользованияСерийНоменклатуры.ЭкземплярТовара)
| ТОГДА NULL
| ИНАЧЕ ТаблицаТоваров.Серия
| КОНЕЦ
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТаблицаТоваров.Ссылка КАК Ссылка,
| ТаблицаТоваров.Ссылка.Организация КАК Организация,
| ТаблицаТоваров.Ссылка.Контрагент КАК Контрагент,
| ТаблицаТоваров.Ссылка.Номер КАК Номер,
| ТаблицаТоваров.Ссылка.Дата КАК Дата,
| ТаблицаТоваров.Ссылка.Организация.Префикс КАК Префикс,
| ТаблицаТоваров.Склад КАК Склад,
| &ТекстЗапросаНаименованиеЕдиницыИзмерения КАК ПредставлениеЕдининицыИзмеренияУпаковки,
| ПРЕДСТАВЛЕНИЕ(ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения) КАК ПредставлениеБазовойЕдиницыИзмерения,
| ТаблицаТоваров.КоличествоУпаковок КАК КоличествоУпаковок,
| ТаблицаТоваров.Количество КАК Количество,
| ТаблицаТоваров.Номенклатура.ВидНоменклатуры.НастройкаИспользованияСерий КАК НастройкаИспользованияСерий,
| ТаблицаТоваров.Номенклатура.Код КАК Код,
| ТаблицаТоваров.Номенклатура.Артикул КАК Артикул,
| ТаблицаТоваров.Номенклатура.НаименованиеПолное КАК ПредставлениеНоменклатуры,
| ТаблицаТоваров.Характеристика.НаименованиеПолное КАК ПредставлениеХарактеристики,
| ТаблицаТоваров.Номенклатура КАК Номенклатура,
| ТаблицаТоваров.Характеристика КАК Характеристика,
| ВЫБОР
| КОГДА ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки, 1) = 1
| ТОГДА НЕОПРЕДЕЛЕНО
| ИНАЧЕ ТаблицаТоваров.Упаковка.Наименование
| КОНЕЦ КАК Упаковка,
| ТаблицаТоваров.Серия.Наименование КАК ПредставлениеСерии,
| ВЫБОР
| КОГДА ТаблицаТоваров.Ссылка.ВернутьМногооборотнуюТару
| И ТаблицаТоваров.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ЭтоВозвратнаяТара
|ИЗ
| СуммированнаяТаблицаТоваров КАК ТаблицаТоваров
|
|ИТОГИ ПО
| Ссылка,
| Склад,
| Номенклатура,
| Характеристика
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТаблицаТоваров.Ссылка КАК Ссылка,
| ТаблицаТоваров.Склад КАК Склад,
| ТаблицаТоваров.Номенклатура КАК Номенклатура,
| ТаблицаТоваров.Характеристика КАК Характеристика,
| ТаблицаТоваров.Серия.Наименование КАК ПредставлениеСерии
|ИЗ
| ТаблицаТоваров КАК ТаблицаТоваров
|ГДЕ
| ТаблицаТоваров.Номенклатура.ВидНоменклатуры.НастройкаИспользованияСерий = ЗНАЧЕНИЕ(Перечисление.НастройкиИспользованияСерийНоменклатуры.ЭкземплярТовара)
| И НЕ ТаблицаТоваров.Серия ЕСТЬ NULL
|";
ТекстЗапросаПоТоварам = СтрЗаменить(ТекстЗапросаПоТоварам, "&ТекстЗапросаКоэффициентУпаковки",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
"ТаблицаТоваров.Упаковка",
"ТаблицаТоваров.Номенклатура"));
ТекстЗапросаПоТоварам = СтрЗаменить(ТекстЗапросаПоТоварам, "&ТекстЗапросаНаименованиеЕдиницыИзмерения",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаЗначениеРеквизитаЕдиницыИзмерения(
"Наименование",
"ТаблицаТоваров.Упаковка",
"ТаблицаТоваров.Номенклатура"));
ЗапросПоТоварам.Текст = ТекстЗапросаПоТоварам;
РезультатЗапроса = ЗапросПоТоварам.ВыполнитьПакет();
ДанныеПечати = РезультатЗапроса[2].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
ВыборкаПоСериям = РезультатЗапроса[3].Выбрать();
Иначе
ТекстЗапросаПоТоварам =
"ВЫБРАТЬ
| РеализацияТоваровУслугТовары.Ссылка КАК Ссылка,
| РеализацияТоваровУслугТовары.Ссылка.Организация КАК Организация,
| РеализацияТоваровУслугТовары.Ссылка.Контрагент КАК Контрагент,
| РеализацияТоваровУслугТовары.Ссылка.Номер КАК Номер,
| РеализацияТоваровУслугТовары.Ссылка.Дата КАК Дата,
| РеализацияТоваровУслугТовары.Ссылка.Организация.Префикс КАК Префикс,
| РеализацияТоваровУслугТовары.Склад КАК Склад,
| &ТекстЗапросаНаименованиеЕдиницыИзмерения КАК ПредставлениеЕдининицыИзмеренияУпаковки,
| ПРЕДСТАВЛЕНИЕ(РеализацияТоваровУслугТовары.Номенклатура.ЕдиницаИзмерения) КАК ПредставлениеБазовойЕдиницыИзмерения,
| РеализацияТоваровУслугТовары.КоличествоУпаковок КАК КоличествоУпаковок,
| РеализацияТоваровУслугТовары.Количество КАК Количество,
| РеализацияТоваровУслугТовары.Номенклатура.Код КАК Код,
| РеализацияТоваровУслугТовары.Номенклатура.Артикул КАК Артикул,
| РеализацияТоваровУслугТовары.Номенклатура.НаименованиеПолное КАК ПредставлениеНоменклатуры,
| РеализацияТоваровУслугТовары.Характеристика.НаименованиеПолное КАК ПредставлениеХарактеристики,
| """" КАК ПредставлениеСерии,
| ВЫБОР
| КОГДА ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки, 1) = 1
| ТОГДА НЕОПРЕДЕЛЕНО
| ИНАЧЕ РеализацияТоваровУслугТовары.Упаковка.Наименование
| КОНЕЦ КАК Упаковка,
| ВЫБОР
| КОГДА РеализацияТоваровУслугТовары.Ссылка.ВернутьМногооборотнуюТару
| И РеализацияТоваровУслугТовары.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ЭтоВозвратнаяТара,
| NULL КАК НастройкаИспользованияСерий,
| РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
| РеализацияТоваровУслугТовары.Характеристика КАК Характеристика,
| РеализацияТоваровУслугТовары.Цена КАК Цена,
| РеализацияТоваровУслугТовары.СуммаРучнойСкидки КАК СуммаРучнойСкидки,
| РеализацияТоваровУслугТовары.СуммаАвтоматическойСкидки КАК СуммаАвтоматическойСкидки,
| РеализацияТоваровУслугТовары.ПроцентРучнойСкидки КАК ПроцентРучнойСкидки,
| РеализацияТоваровУслугТовары.ПроцентАвтоматическойСкидки КАК ПроцентАвтоматическойСкидки,
| РеализацияТоваровУслугТовары.Сумма КАК Сумма
|ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
|ГДЕ
| РеализацияТоваровУслугТовары.Ссылка В(&МассивОбъектов)
| И РеализацияТоваровУслугТовары.Склад В(&МассивСкладов)
| И РеализацияТоваровУслугТовары.Номенклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
|ИТОГИ ПО
| Ссылка,
| Склад,
| Номенклатура,
| Характеристика";
ТекстЗапросаПоТоварам = СтрЗаменить(ТекстЗапросаПоТоварам, "&ТекстЗапросаКоэффициентУпаковки",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
"РеализацияТоваровУслугТовары.Упаковка",
"РеализацияТоваровУслугТовары.Номенклатура"));
ТекстЗапросаПоТоварам = СтрЗаменить(ТекстЗапросаПоТоварам, "&ТекстЗапросаНаименованиеЕдиницыИзмерения",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаЗначениеРеквизитаЕдиницыИзмерения(
"Наименование",
"РеализацияТоваровУслугТовары.Упаковка",
"РеализацияТоваровУслугТовары.Номенклатура"));
ЗапросПоТоварам.Текст = ТекстЗапросаПоТоварам;
ДанныеПечати = ЗапросПоТоварам.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
КонецЕсли;
ПервыйДокумент = Истина;
Макет = ПолучитьМакет("ПФ_MXL_РасходнаяНакладнаяСРазбивкойПоСкладам");
ИтогБезСкидки = 0;
ИтогСкидка = 0;
ИтогСумма = 0;
ШиринаОтсутствующихОбластей = 0;
Если НЕ ВыводитьКоды Тогда
ШиринаОтсутствующихОбластей = Макет.Область("КолонкаКодов").ШиринаКолонки;
КонецЕсли;
Если Не ИспользоватьУпаковки Тогда
ШиринаОтсутствующихОбластей = ШиринаОтсутствующихОбластей + Макет.Область("КолонкаКоличестваУпаковок").ШиринаКолонки;
ШиринаОтсутствующихОбластей = ШиринаОтсутствующихОбластей + Макет.Область("КолонкаПредставленияУпаковок").ШиринаКолонки;
КонецЕсли;
// Раздвинуть колонку "КолонкаТоваров" на ширину отсутствующих областей
Макет.Область("КолонкаТоваров").ШиринаКолонки = Макет.Область("КолонкаТоваров").ШиринаКолонки + ШиринаОтсутствующихОбластей;
РеквизитыДокумента = Новый Структура("Номер, Дата, Префикс, Представление");
Пока ДанныеПечати.Следующий() Цикл
ИндексМассиваПроверки = МассивПроверки.Найти(ДанныеПечати.Ссылка);
Если ИндексМассиваПроверки <> Неопределено Тогда
МассивПроверки.Удалить(ИндексМассиваПроверки);
КонецЕсли;
НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
ЗаполнитьЗначенияСвойств(РеквизитыДокумента, ДанныеПечати);
ВыборкаПоСкладам = ДанныеПечати.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаПоСкладам.Следующий() Цикл
Если Не ПервыйДокумент Тогда
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ПервыйДокумент = Ложь;
СтруктураДанныхЗаголовок = Новый Структура;
Область = Макет.ПолучитьОбласть("Заголовок");
СтруктураДанныхЗаголовок.Вставить("ТекстЗаголовка", ОбщегоНазначенияУТКлиентСервер.СформироватьЗаголовокДокумента(РеквизитыДокумента, НСтр("ru = 'Накладная';
|en = 'Goods sales'")));
Область.Параметры.Заполнить(СтруктураДанныхЗаголовок);
ТабличныйДокумент.Вывести(Область);
Область = Макет.ПолучитьОбласть("Шапка");
СтруктураДанныхШапка = Новый Структура;
СтруктураДанныхШапка.Вставить("ПредставлениеСклада", ВыборкаПоСкладам.Склад);
СтруктураДанныхШапка.Вставить("Склад", ВыборкаПоСкладам.Склад);
Область.Параметры.Заполнить(СтруктураДанныхШапка);
ТабличныйДокумент.Вывести(Область);
Область = Макет.ПолучитьОбласть("Поставщик");
СтруктураДанныхПоставщик = Новый Структура;
Область.Параметры.Заполнить(СтруктураДанныхПоставщик);
ТабличныйДокумент.Вывести(Область);
Область = Макет.ПолучитьОбласть("Покупатель");
СтруктураДанныхПокупатель = Новый Структура;
СтруктураДанныхПоставщик.Вставить("ПредставлениеПартнера",
ФормированиеПечатныхФорм.ОписаниеОрганизации(ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ВыборкаПоСкладам.Контрагент, ВыборкаПоСкладам.Дата),
"ПолноеНаименование"));
СтруктураДанныхПоставщик.Вставить("Контрагент", ВыборкаПоСкладам.Контрагент);
Область.Параметры.Заполнить(СтруктураДанныхПоставщик);
ТабличныйДокумент.Вывести(Область);
Область = Макет.ПолучитьОбласть("ШапкаТаблицы|НачалоСтроки");
ТабличныйДокумент.Вывести(Область);
Если ВыводитьКоды Тогда
Область = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкаКодов");
СтруктураДанныхКоды = Новый Структура("ИмяКолонкиКодов", КолонкаКодов);
Область.Параметры.Заполнить(СтруктураДанныхКоды);
ТабличныйДокумент.Присоединить(Область);
КонецЕсли;
Область = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкаТоваров");
ТабличныйДокумент.Присоединить(Область);
Область = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкиКоличества");
ТабличныйДокумент.Присоединить(Область);
ОбластьЦены = Макет.ПолучитьОбласть("ШапкаТаблицы|Цена");
ТабличныйДокумент.Присоединить(ОбластьЦены);
Область = Макет.ПолучитьОбласть("ШапкаТаблицы|СуммаБезСкидки");
ТабличныйДокумент.Присоединить(Область);
Область = Макет.ПолучитьОбласть("ШапкаТаблицы|Скидка");
ТабличныйДокумент.Присоединить(Область);
Область = Макет.ПолучитьОбласть("ШапкаТаблицы|Процент");
ТабличныйДокумент.Присоединить(Область);
Область = Макет.ПолучитьОбласть("ШапкаТаблицы|Сумма");
ТабличныйДокумент.Присоединить(Область);
ОбластьНачалоСтроки = Макет.ПолучитьОбласть("СтрокаТаблицы|НачалоСтроки");
ОбластьКолонкаКодов = Макет.ПолучитьОбласть("СтрокаТаблицы|КолонкаКодов");
ОбластьКолонкаТоваров = Макет.ПолучитьОбласть("СтрокаТаблицы|КолонкаТоваров");
ОбластьКолонкаКоличества = Макет.ПолучитьОбласть("СтрокаТаблицы|КолонкиКоличества");
ОбластьЦена = Макет.ПолучитьОбласть("СтрокаТаблицы|Цена");
ОбластьСуммаБезСкидки = Макет.ПолучитьОбласть("СтрокаТаблицы|СуммаБезСкидки");
ОбластьСкидка = Макет.ПолучитьОбласть("СтрокаТаблицы|Скидка");
ОбластьПроцент = Макет.ПолучитьОбласть("СтрокаТаблицы|Процент");
ОбластьСумма = Макет.ПолучитьОбласть("СтрокаТаблицы|Сумма");
СчетСтрок = 1;
ВыборкаПоСсылкамТЧ = ВыборкаПоСкладам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаПоСсылкамТЧ.Следующий() Цикл
ВыборкаПоНоменклатуреТЧ = ВыборкаПоСсылкамТЧ.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаПоНоменклатуреТЧ.Следующий() Цикл
ВыборкаПоСтрокамТЧ = ВыборкаПоНоменклатуреТЧ.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
ПерваяСтрока = Истина;
СтрокаУпаковок = "";
СтрокаКоличесткаУпаковок = "";
СтрокаЕдиницИзмерений = "";
СтрокаКоличества = "";
Пока ВыборкаПоСтрокамТЧ.Следующий() Цикл
Если ВыборкаПоСтрокамТЧ.НастройкаИспользованияСерий = Перечисления.НастройкиИспользованияСерийНоменклатуры.ЭкземплярТовара Тогда
Если ПерваяСтрока Тогда
СтруктураДанныхНомерСтроки = Новый Структура("НомерСтроки", СчетСтрок);
ОбластьНачалоСтроки.Параметры.Заполнить(СтруктураДанныхНомерСтроки);
СчетСтрок = СчетСтрок + 1;
ТабличныйДокумент.Вывести(ОбластьНачалоСтроки);
Если ВыводитьКоды Тогда
СтруктураДанныхКоды = Новый Структура("ЗначениеКода", ВыборкаПоСтрокамТЧ[КолонкаКодов]);
ОбластьКолонкаКодов.Параметры.Заполнить(СтруктураДанныхКоды);
ТабличныйДокумент.Присоединить(ОбластьКолонкаКодов);
КонецЕсли;
СтруктураПоиска = Новый Структура;
СтруктураПоиска.Вставить("Ссылка", ВыборкаПоСтрокамТЧ.Ссылка);
СтруктураПоиска.Вставить("Склад", ВыборкаПоСтрокамТЧ.Склад);
СтруктураПоиска.Вставить("Номенклатура", ВыборкаПоСтрокамТЧ.Номенклатура);
СтруктураПоиска.Вставить("Характеристика", ВыборкаПоСтрокамТЧ.Характеристика);
СтрокаСерий = "";
Пока ВыборкаПоСериям.НайтиСледующий(СтруктураПоиска) Цикл
СтрокаСерий = СтрокаСерий + ВыборкаПоСериям.ПредставлениеСерии + ", ";
КонецЦикла;
Если СтрДлина(СтрокаСерий) <> 0 Тогда
СтрокаСерий = Лев(СтрокаСерий, СтрДлина(СтрокаСерий) - 2);
КонецЕсли;
ДополнительныеПараметрыПолученияНаименованияДляПечати = НоменклатураКлиентСервер.ДополнительныеПараметрыПредставлениеНоменклатурыДляПечати();
ДополнительныеПараметрыПолученияНаименованияДляПечати.ВозвратнаяТара = ВыборкаПоСтрокамТЧ.ЭтоВозвратнаяТара;
Товар = НоменклатураКлиентСервер.ПредставлениеНоменклатурыДляПечати(
ВыборкаПоСтрокамТЧ.ПредставлениеНоменклатуры,
ВыборкаПоСтрокамТЧ.ПредставлениеХарактеристики,
,
СтрокаСерий,
ДополнительныеПараметрыПолученияНаименованияДляПечати);
СтруктураДанныхТовар = Новый Структура("Товар", Товар);
ОбластьКолонкаТоваров.Параметры.Заполнить(СтруктураДанныхТовар);
ТабличныйДокумент.Присоединить(ОбластьКолонкаТоваров);
ПерваяСтрока = Ложь;
КонецЕсли;
Если ИспользоватьУпаковки Тогда
СтрокаУпаковок = СтрокаУпаковок + ВыборкаПоСтрокамТЧ.ПредставлениеЕдининицыИзмеренияУпаковки + Символы.ПС;
СтрокаКоличесткаУпаковок = СтрокаКоличесткаУпаковок + ВыборкаПоСтрокамТЧ.КоличествоУпаковок + Символы.ПС;
КонецЕсли;
СтрокаЕдиницИзмерений = СтрокаЕдиницИзмерений + ВыборкаПоСтрокамТЧ.ПредставлениеБазовойЕдиницыИзмерения + Символы.ПС;
СтрокаКоличества = СтрокаКоличества + ВыборкаПоСтрокамТЧ.Количество + Символы.ПС;
ТоварССериейЭкземпляром = Истина;
Иначе
СтруктураДанныхНомерСтроки = Новый Структура("НомерСтроки", СчетСтрок);
ОбластьНачалоСтроки.Параметры.Заполнить(СтруктураДанныхНомерСтроки);
СчетСтрок = СчетСтрок + 1;
ТабличныйДокумент.Вывести(ОбластьНачалоСтроки);
Если ВыводитьКоды Тогда
СтруктураДанныхКоды = Новый Структура("ЗначениеКода", ВыборкаПоСтрокамТЧ[КолонкаКодов]);
ОбластьКолонкаКодов.Параметры.Заполнить(СтруктураДанныхКоды);
ТабличныйДокумент.Присоединить(ОбластьКолонкаКодов);
КонецЕсли;
ДополнительныеПараметрыПолученияНаименованияДляПечати = НоменклатураКлиентСервер.ДополнительныеПараметрыПредставлениеНоменклатурыДляПечати();
ДополнительныеПараметрыПолученияНаименованияДляПечати.ВозвратнаяТара = ВыборкаПоСтрокамТЧ.ЭтоВозвратнаяТара;
Товар = НоменклатураКлиентСервер.ПредставлениеНоменклатурыДляПечати(
ВыборкаПоСтрокамТЧ.ПредставлениеНоменклатуры,
ВыборкаПоСтрокамТЧ.ПредставлениеХарактеристики,
,
ВыборкаПоСтрокамТЧ.ПредставлениеСерии,
ДополнительныеПараметрыПолученияНаименованияДляПечати);
СтруктураДанныхТовар = Новый Структура("Товар", Товар);
ОбластьКолонкаТоваров.Параметры.Заполнить(СтруктураДанныхТовар);
ТабличныйДокумент.Присоединить(ОбластьКолонкаТоваров);
ОбластьКолонкаКоличества.Параметры.Заполнить(ВыборкаПоСтрокамТЧ);
ТабличныйДокумент.Присоединить(ОбластьКолонкаКоличества);
ОбластьЦена.Параметры.Заполнить(ВыборкаПоСтрокамТЧ);
ТабличныйДокумент.Присоединить(ОбластьЦена);
СуммаБезСкидки = ВыборкаПоСтрокамТЧ.Цена * ВыборкаПоСтрокамТЧ.Количество;
ОбластьСуммаБезСкидки.Параметры.СуммаБезСкидки = Формат(СуммаБезСкидки,"ЧДЦ=2;ЧРД=,");;
ТабличныйДокумент.Присоединить(ОбластьСуммаБезСкидки);
Скидка = ВыборкаПоСтрокамТЧ.СуммаАвтоматическойСкидки + ВыборкаПоСтрокамТЧ.СуммаРучнойСкидки;
ОбластьСкидка.Параметры.Скидка = Формат(Скидка,"ЧДЦ=2;ЧРД=,");;
ТабличныйДокумент.Присоединить(ОбластьСкидка);
Процент = ВыборкаПоСтрокамТЧ.ПроцентАвтоматическойСкидки + ВыборкаПоСтрокамТЧ.ПроцентРучнойСкидки;
ОбластьПроцент.Параметры.Процент = Формат(Процент,"ЧДЦ=2;ЧРД=,");;
ТабличныйДокумент.Присоединить(ОбластьПроцент);
ОбластьСумма.Параметры.Заполнить(ВыборкаПоСтрокамТЧ);
ТабличныйДокумент.Присоединить(ОбластьСумма);
ИтогБезСкидки = ИтогБезСкидки + СуммаБезСкидки;
ИтогСкидка = ИтогСкидка + Скидка;
ИтогСумма = ИтогСумма + ВыборкаПоСтрокамТЧ.Сумма;
ТоварССериейЭкземпляром = Ложь;
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецЦикла;
Область = Макет.ПолучитьОбласть("ПодвалТаблицы|НачалоСтроки");
ТабличныйДокумент.Вывести(Область);
Если ВыводитьКоды Тогда
Область = Макет.ПолучитьОбласть("ПодвалТаблицы|КолонкаКодов");
ТабличныйДокумент.Присоединить(Область);
КонецЕсли;
Область = Макет.ПолучитьОбласть("ПодвалТаблицы|КолонкаТоваров");
ТабличныйДокумент.Присоединить(Область);
Область = Макет.ПолучитьОбласть("ПодвалТаблицы|КолонкиКоличества");
ТабличныйДокумент.Присоединить(Область);
Область = Макет.ПолучитьОбласть("ПодвалТаблицы|Цена");
ТабличныйДокумент.Присоединить(Область);
Область = Макет.ПолучитьОбласть("ПодвалТаблицы|СуммаБезСкидки");
Область.Параметры.ИтогБезСкидки = Формат(ИтогБезСкидки,"ЧДЦ=2;ЧРД=,");
ТабличныйДокумент.Присоединить(Область);
Область = Макет.ПолучитьОбласть("ПодвалТаблицы|Скидка");
Область.Параметры.ИтогСкидка = Формат(ИтогСкидка,"ЧДЦ=2;ЧРД=,");
ТабличныйДокумент.Присоединить(Область);
Область = Макет.ПолучитьОбласть("ПодвалТаблицы|Процент");
ТабличныйДокумент.Присоединить(Область);
Область = Макет.ПолучитьОбласть("ПодвалТаблицы|Сумма");
Область.Параметры.ИтогСумма = Формат(ИтогСумма,"ЧДЦ=2;ЧРД=,");
ТабличныйДокумент.Присоединить(Область);
Область = Макет.ПолучитьОбласть("Подписи");
ТекстИтоговойСтроки = НСтр("ru = 'Всего наименований %ВсегоНаименований%';
|en = 'Total items %ВсегоНаименований%'");
ТекстИтоговойСтроки = СтрЗаменить(ТекстИтоговойСтроки,"%ВсегоНаименований%", СчетСтрок-1);
СтруктураДанныхИтоговаяСтрока = Новый Структура;
СтруктураДанныхЗаголовок.Вставить("ИтоговаяСтрока", ТекстИтоговойСтроки);
Область.Параметры.Заполнить(СтруктураДанныхЗаголовок);
ТабличныйДокумент.Вывести(Область);
КонецЦикла;
УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, ДанныеПечати.Ссылка);
КонецЦикла;
КонецЦикла;
Для Каждого Ссылка Из МассивПроверки Цикл
Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'В документе %1 отсутствуют товары. Печать расходной накладной не требуется.';
|en = 'Goods are missing in document %1. Printing of a sales invoice is not required.'"),
Ссылка);
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
Текст,
Ссылка);
КонецЦикла;
ТабличныйДокумент.АвтоМасштаб = Истина;
Если ПривилегированныйРежим() Тогда
УстановитьПривилегированныйРежим(Ложь);
КонецЕсли;
Возврат ТабличныйДокумент;
КонецФункции
ПоказатьПрикрепленные файлы:
РасходнаяНакладнаяСРазбивкойПоСкладам № ЦБ-501 от 27.01.2021.pdf
По теме из базы знаний
- Транспортная накладная (Приложение №4) Постановление от 21.12.2020 №2200 для БП 3.0, БП 2.0, УТ 10.3, УТ 11, КА 2, УНФ. Применяется с 01.01.2021
- Универсальная печатная форма для справочника и документа по своему шаблону, сделанному в ms word: Кадровые, Торговые, Делопроизводственные, Бухгалтерские, Управляющие
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2)Цены уже взяты с накладной. Проблема не в этом. В печатной форме идет разбивка по складам, т.е если реализация товаров проходит по нескольким складам. Цены проставляются, но итого в подвале считается со всей реализации, а нужно чтобы расчет шел конкретно по складу.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот