Вывод сирии товаров в расходной накладной
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(3) в тех запросах что формирует 1с есть строки что выбирается серия, но на выходе серия = Null
Проверяю счас на конфе с демо данными 1с
Вот вся функция целиком, уже пробовал меня разные политики учета серий и индификатор серии эффекта ноль.
Проверяю счас на конфе с демо данными 1с
Вот вся функция целиком, уже пробовал меня разные политики учета серий и индификатор серии эффекта ноль.
УстановитьПривилегированныйРежим(Истина);
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РеализацияТоваровУслуг_РасходнаяНакладная";
КолонкаКодов = ФормированиеПечатныхФорм.ИмяДополнительнойКолонки();
ВыводитьКоды = ЗначениеЗаполнено(КолонкаКодов);
ИспользоватьРучныеСкидки = ПолучитьФункциональнуюОпцию("ИспользоватьРучныеСкидкиВПродажах");
ИспользоватьАвтоматическиеСкидки = ПолучитьФункциональнуюОпцию("ИспользоватьАвтоматическиеСкидкиВПродажах");
ИспользоватьУпаковки = ПолучитьФункциональнуюОпцию("ИспользоватьУпаковкиНоменклатуры");
ЗапросПоСкладам = Новый Запрос;
ЗапросПоСкладам.Текст = "
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| РеализацияТоваровУслугТовары.Ссылка КАК Ссылка,
| РеализацияТоваровУслугТовары.Склад КАК Склад,
| РеализацияТоваровУслугТовары.Склад.ИспользоватьСерииНоменклатуры КАК ИспользоватьСерииНоменклатуры
|ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
|ГДЕ
| РеализацияТоваровУслугТовары.Ссылка В(&МассивОбъектов)
| И РеализацияТоваровУслугТовары.Номенклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар),ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
|
|ИТОГИ ПО
| ИспользоватьСерииНоменклатуры";
ЗапросПоСкладам.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
// Создание массива для проверки: какие из докуметов не попали в выборку
МассивПроверки = Новый Массив;
Для Каждого Ссылка Из МассивОбъектов Цикл
МассивПроверки.Добавить(Ссылка);
КонецЦикла;
ДеревоОбъектов = ЗапросПоСкладам.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам);
Для Каждого ИспользованиеСерий Из ДеревоОбъектов.Строки Цикл
ЗапросПоТоварам = Новый Запрос;
ЗапросПоТоварам.УстановитьПараметр("МассивОбъектов", ИспользованиеСерий.Строки.ВыгрузитьКолонку("Ссылка"));
ЗапросПоТоварам.УстановитьПараметр("МассивСкладов", ИспользованиеСерий.Строки.ВыгрузитьКолонку("Склад"));
Если ИспользованиеСерий.ИспользоватьСерииНоменклатуры Тогда
ТекстЗапросаПоТоварам =
"ВЫБРАТЬ
| РеализацияТоваровУслугТовары.Ссылка КАК Ссылка,
| РеализацияТоваровУслугТовары.Склад КАК Склад,
| РеализацияТоваровУслугТовары.КоличествоУпаковок КАК КоличествоУпаковок,
| РеализацияТоваровУслугТовары.Количество КАК Количество,
| РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
| РеализацияТоваровУслугТовары.Характеристика КАК Характеристика,
| РеализацияТоваровУслугТовары.Упаковка КАК Упаковка,
| """" КАК Серия
|ПОМЕСТИТЬ ТаблицаТоваров
|ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
|ГДЕ
| РеализацияТоваровУслугТовары.Ссылка В(&МассивОбъектов)
| И РеализацияТоваровУслугТовары.Склад В(&МассивСкладов)
| И НЕ(РеализацияТоваровУслугТовары.Номенклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
| И РеализацияТоваровУслугТовары.СтатусУказанияСерий В (2, 4, 6, 8))
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| РеализацияТоваровУслугСерии.Ссылка,
| РеализацияТоваровУслугСерии.Склад,
| РеализацияТоваровУслугСерии.Количество,
| РеализацияТоваровУслугСерии.Количество,
| РеализацияТоваровУслугСерии.Номенклатура,
| РеализацияТоваровУслугСерии.Характеристика,
| ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка),
| РеализацияТоваровУслугСерии.Серия
|ИЗ
| Документ.РеализацияТоваровУслуг.Серии КАК РеализацияТоваровУслугСерии
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК ТаблицаТовары
| ПО РеализацияТоваровУслугСерии.Ссылка = ТаблицаТовары.Ссылка
| И РеализацияТоваровУслугСерии.Номенклатура = ТаблицаТовары.Номенклатура
| И РеализацияТоваровУслугСерии.Характеристика = ТаблицаТовары.Характеристика
| И РеализацияТоваровУслугСерии.Склад = ТаблицаТовары.Склад
|ГДЕ
| РеализацияТоваровУслугСерии.Ссылка В(&МассивОбъектов)
| И РеализацияТоваровУслугСерии.Склад В(&МассивСкладов)
| И РеализацияТоваровУслугСерии.Номенклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
|
|СГРУППИРОВАТЬ ПО
| РеализацияТоваровУслугСерии.Ссылка,
| РеализацияТоваровУслугСерии.Склад,
| РеализацияТоваровУслугСерии.Номенклатура,
| РеализацияТоваровУслугСерии.Характеристика,
| РеализацияТоваровУслугСерии.Серия,
| РеализацияТоваровУслугСерии.Количество,
| РеализацияТоваровУслугСерии.Количество
|
|ИМЕЮЩИЕ
| МАКСИМУМ(ТаблицаТовары.СтатусУказанияСерий) В (2, 4, 6, 8, 10)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТаблицаТоваров.Ссылка,
| ТаблицаТоваров.Склад,
| СУММА(ТаблицаТоваров.КоличествоУпаковок) КАК КоличествоУпаковок,
| СУММА(ТаблицаТоваров.Количество) КАК Количество,
| ТаблицаТоваров.Номенклатура,
| ТаблицаТоваров.Характеристика,
| ТаблицаТоваров.Упаковка,
| ВЫБОР
| КОГДА ТаблицаТоваров.Номенклатура.ВидНоменклатуры.НастройкаИспользованияСерий = ЗНАЧЕНИЕ(Перечисление.НастройкиИспользованияСерийНоменклатуры.ЭкземплярТовара)
| ТОГДА NULL
| ИНАЧЕ ТаблицаТоваров.Серия
| КОНЕЦ КАК Серия
|ПОМЕСТИТЬ СуммированнаяТаблицаТоваров
|ИЗ
| ТаблицаТоваров КАК ТаблицаТоваров
|
|СГРУППИРОВАТЬ ПО
| ТаблицаТоваров.Ссылка,
| ТаблицаТоваров.Склад,
| ТаблицаТоваров.Номенклатура,
| ТаблицаТоваров.Характеристика,
| ТаблицаТоваров.Упаковка,
| ВЫБОР
| КОГДА ТаблицаТоваров.Номенклатура.ВидНоменклатуры.НастройкаИспользованияСерий = ЗНАЧЕНИЕ(Перечисление.НастройкиИспользованияСерийНоменклатуры.ЭкземплярТовара)
| ТОГДА NULL
| ИНАЧЕ ТаблицаТоваров.Серия
| КОНЕЦ
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТаблицаТоваров.Ссылка КАК Ссылка,
| ТаблицаТоваров.Ссылка.Организация КАК Организация,
| ТаблицаТоваров.Ссылка.Контрагент КАК Контрагент,
| ТаблицаТоваров.Ссылка.Номер КАК Номер,
| ТаблицаТоваров.Ссылка.Дата КАК Дата,
| ТаблицаТоваров.Ссылка.Организация.Префикс КАК Префикс,
| ТаблицаТоваров.Склад КАК Склад,
| &ТекстЗапросаНаименованиеЕдиницыИзмерения КАК ПредставлениеЕдининицыИзмеренияУпаковки,
| ПРЕДСТАВЛЕНИЕ(ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения) КАК ПредставлениеБазовойЕдиницыИзмерения,
| ТаблицаТоваров.КоличествоУпаковок КАК КоличествоУпаковок,
| ТаблицаТоваров.Количество КАК Количество,
| ТаблицаТоваров.Номенклатура.ВидНоменклатуры.НастройкаИспользованияСерий КАК НастройкаИспользованияСерий,
| ТаблицаТоваров.Номенклатура.Код КАК Код,
| ТаблицаТоваров.Номенклатура.Артикул КАК Артикул,
| ТаблицаТоваров.Номенклатура.НаименованиеПолное КАК ПредставлениеНоменклатуры,
| ТаблицаТоваров.Характеристика.НаименованиеПолное КАК ПредставлениеХарактеристики,
| ТаблицаТоваров.Номенклатура КАК Номенклатура,
| ТаблицаТоваров.Характеристика КАК Характеристика,
| ВЫБОР
| КОГДА ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки, 1) = 1
| ТОГДА НЕОПРЕДЕЛЕНО
| ИНАЧЕ ТаблицаТоваров.Упаковка.Наименование
| КОНЕЦ КАК Упаковка,
| ТаблицаТоваров.Серия.Наименование КАК ПредставлениеСерии,
| ВЫБОР
| КОГДА ТаблицаТоваров.Ссылка.ВернутьМногооборотнуюТару
| И ТаблицаТоваров.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ЭтоВозвратнаяТара
|ИЗ
| СуммированнаяТаблицаТоваров КАК ТаблицаТоваров
|
|ИТОГИ ПО
| Ссылка,
| Склад,
| Номенклатура,
| Характеристика
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТаблицаТоваров.Ссылка КАК Ссылка,
| ТаблицаТоваров.Склад КАК Склад,
| ТаблицаТоваров.Номенклатура КАК Номенклатура,
| ТаблицаТоваров.Характеристика КАК Характеристика,
| ТаблицаТоваров.Серия.Наименование КАК ПредставлениеСерии
|ИЗ
| ТаблицаТоваров КАК ТаблицаТоваров
|ГДЕ
| ТаблицаТоваров.Номенклатура.ВидНоменклатуры.НастройкаИспользованияСерий = ЗНАЧЕНИЕ(Перечисление.НастройкиИспользованияСерийНоменклатуры.ЭкземплярТовара)
| И НЕ ТаблицаТоваров.Серия ЕСТЬ NULL
|";
ТекстЗапросаПоТоварам = СтрЗаменить(ТекстЗапросаПоТоварам, "&ТекстЗапросаКоэффициентУпаковки",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
"ТаблицаТоваров.Упаковка",
"ТаблицаТоваров.Номенклатура"));
ТекстЗапросаПоТоварам = СтрЗаменить(ТекстЗапросаПоТоварам, "&ТекстЗапросаНаименованиеЕдиницыИзмерения",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаЗначениеРеквизитаЕдиницыИзмерения(
"Наименование",
"ТаблицаТоваров.Упаковка",
"ТаблицаТоваров.Номенклатура"));
ЗапросПоТоварам.Текст = ТекстЗапросаПоТоварам;
РезультатЗапроса = ЗапросПоТоварам.ВыполнитьПакет();
ДанныеПечати = РезультатЗапроса[2].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
ВыборкаПоСериям = РезультатЗапроса[3].Выбрать();
Иначе
ТекстЗапросаПоТоварам =
"ВЫБРАТЬ
| РеализацияТоваровУслугТовары.Ссылка КАК Ссылка,
| РеализацияТоваровУслугТовары.Ссылка.Организация КАК Организация,
| РеализацияТоваровУслугТовары.Ссылка.Контрагент КАК Контрагент,
| РеализацияТоваровУслугТовары.Ссылка.Номер КАК Номер,
| РеализацияТоваровУслугТовары.Ссылка.Дата КАК Дата,
| РеализацияТоваровУслугТовары.Ссылка.Организация.Префикс КАК Префикс,
| РеализацияТоваровУслугТовары.Склад КАК Склад,
| &ТекстЗапросаНаименованиеЕдиницыИзмерения КАК ПредставлениеЕдининицыИзмеренияУпаковки,
| ПРЕДСТАВЛЕНИЕ(РеализацияТоваровУслугТовары.Номенклатура.ЕдиницаИзмерения) КАК ПредставлениеБазовойЕдиницыИзмерения,
| РеализацияТоваровУслугТовары.КоличествоУпаковок КАК КоличествоУпаковок,
| РеализацияТоваровУслугТовары.Количество КАК Количество,
| РеализацияТоваровУслугТовары.Номенклатура.Код КАК Код,
| РеализацияТоваровУслугТовары.Номенклатура.Артикул КАК Артикул,
| РеализацияТоваровУслугТовары.Номенклатура.НаименованиеПолное КАК ПредставлениеНоменклатуры,
| РеализацияТоваровУслугТовары.Характеристика.НаименованиеПолное КАК ПредставлениеХарактеристики,
| """" КАК ПредставлениеСерии,
| ВЫБОР
| КОГДА ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки, 1) = 1
| ТОГДА НЕОПРЕДЕЛЕНО
| ИНАЧЕ РеализацияТоваровУслугТовары.Упаковка.Наименование
| КОНЕЦ КАК Упаковка,
| ВЫБОР
| КОГДА РеализацияТоваровУслугТовары.Ссылка.ВернутьМногооборотнуюТару
| И РеализацияТоваровУслугТовары.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ЭтоВозвратнаяТара,
| NULL КАК НастройкаИспользованияСерий,
| РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
| РеализацияТоваровУслугТовары.Характеристика КАК Характеристика
|ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
|ГДЕ
| РеализацияТоваровУслугТовары.Ссылка В(&МассивОбъектов)
| И РеализацияТоваровУслугТовары.Склад В(&МассивСкладов)
| И РеализацияТоваровУслугТовары.Номенклатура.ТипНоменклатуры В (ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар), ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара))
|
|ИТОГИ ПО
| Ссылка,
| Склад,
| Номенклатура,
| Характеристика";
ТекстЗапросаПоТоварам = СтрЗаменить(ТекстЗапросаПоТоварам, "&ТекстЗапросаКоэффициентУпаковки",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
"РеализацияТоваровУслугТовары.Упаковка",
"РеализацияТоваровУслугТовары.Номенклатура"));
ТекстЗапросаПоТоварам = СтрЗаменить(ТекстЗапросаПоТоварам, "&ТекстЗапросаНаименованиеЕдиницыИзмерения",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаЗначениеРеквизитаЕдиницыИзмерения(
"Наименование",
"РеализацияТоваровУслугТовары.Упаковка",
"РеализацияТоваровУслугТовары.Номенклатура"));
ЗапросПоТоварам.Текст = ТекстЗапросаПоТоварам;
ДанныеПечати = ЗапросПоТоварам.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
КонецЕсли;
ПервыйДокумент = Истина;
Макет = УправлениеПечатью.МакетПечатнойФормы("Документ.РеализацияТоваровУслуг.ПФ_MXL_РасходнаяНакладная");
ШиринаОтсутствующихОбластей = 0;
Если НЕ ВыводитьКоды Тогда
ШиринаОтсутствующихОбластей = Макет.Область("КолонкаКодов").ШиринаКолонки;
КонецЕсли;
Если Не ИспользоватьУпаковки Тогда
ШиринаОтсутствующихОбластей = ШиринаОтсутствующихОбластей + Макет.Область("КолонкаКоличестваУпаковок").ШиринаКолонки;
ШиринаОтсутствующихОбластей = ШиринаОтсутствующихОбластей + Макет.Область("КолонкаПредставленияУпаковок").ШиринаКолонки;
КонецЕсли;
// Раздвинуть колонку "КолонкаТоваров" на ширину отсутствующих областей
Макет.Область("КолонкаТоваров").ШиринаКолонки = Макет.Область("КолонкаТоваров").ШиринаКолонки + ШиринаОтсутствующихОбластей;
РеквизитыДокумента = Новый Структура("Номер, Дата, Префикс, Представление");
Пока ДанныеПечати.Следующий() Цикл
ИндексМассиваПроверки = МассивПроверки.Найти(ДанныеПечати.Ссылка);
Если ИндексМассиваПроверки <> Неопределено Тогда
МассивПроверки.Удалить(ИндексМассиваПроверки);
КонецЕсли;
НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
ЗаполнитьЗначенияСвойств(РеквизитыДокумента, ДанныеПечати);
ВыборкаПоСкладам = ДанныеПечати.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаПоСкладам.Следующий() Цикл
Если Не ПервыйДокумент Тогда
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ПервыйДокумент = Ложь;
Область = Макет.ПолучитьОбласть("Заголовок");
СтруктураДанныхЗаголовок = Новый Структура;
СтруктураДанныхЗаголовок.Вставить("ТекстЗаголовка", НСтр("ru='Расходная накладная'"));
ШтрихкодированиеПечатныхФорм.ВывестиШтрихкодВТабличныйДокумент(ТабличныйДокумент, Макет, Область, ДанныеПечати.Ссылка);
Область.Параметры.Заполнить(СтруктураДанныхЗаголовок);
ТабличныйДокумент.Вывести(Область);
Область = Макет.ПолучитьОбласть("Шапка");
СтруктураДанныхШапка = Новый Структура;
СтруктураДанныхШапка.Вставить("ПредставлениеРаспоряжения", ОбщегоНазначенияУТКлиентСервер.СформироватьЗаголовокДокумента(РеквизитыДокумента, НСтр("ru='Реализация товаров'")));
СтруктураДанныхШапка.Вставить("ПредставлениеСклада", ВыборкаПоСкладам.Склад);
СтруктураДанныхШапка.Вставить("Склад", ВыборкаПоСкладам.Склад);
Область.Параметры.Заполнить(СтруктураДанныхШапка);
ТабличныйДокумент.Вывести(Область);
Область = Макет.ПолучитьОбласть("Поставщик");
СтруктураДанныхПоставщик = Новый Структура;
СтруктураДанныхПоставщик.Вставить("ПредставлениеОрганизации",
ФормированиеПечатныхФорм.ОписаниеОрганизации(ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ВыборкаПоСкладам.Организация, ВыборкаПоСкладам.Дата),
"ПолноеНаименование"));
СтруктураДанныхПоставщик.Вставить("Организация", ВыборкаПоСкладам.Организация);
Область.Параметры.Заполнить(СтруктураДанныхПоставщик);
ТабличныйДокумент.Вывести(Область);
Область = Макет.ПолучитьОбласть("Покупатель");
СтруктураДанныхПокупатель = Новый Структура;
СтруктураДанныхПоставщик.Вставить("ПредставлениеПартнера",
ФормированиеПечатныхФорм.ОписаниеОрганизации(ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ВыборкаПоСкладам.Контрагент, ВыборкаПоСкладам.Дата),
"ПолноеНаименование"));
СтруктураДанныхПоставщик.Вставить("Контрагент", ВыборкаПоСкладам.Контрагент);
Область.Параметры.Заполнить(СтруктураДанныхПоставщик);
ТабличныйДокумент.Вывести(Область);
Область = Макет.ПолучитьОбласть("ШапкаТаблицы|НачалоСтроки");
ТабличныйДокумент.Вывести(Область);
Если ВыводитьКоды Тогда
Область = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкаКодов");
СтруктураДанныхКоды = Новый Структура("ИмяКолонкиКодов", КолонкаКодов);
Область.Параметры.Заполнить(СтруктураДанныхКоды);
ТабличныйДокумент.Присоединить(Область);
КонецЕсли;
Область = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкаТоваров");
ТабличныйДокумент.Присоединить(Область);
Если ИспользоватьУпаковки Тогда
Область = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкиУпаковок");
ТабличныйДокумент.Присоединить(Область);
КонецЕсли;
Область = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкиКоличества");
ТабличныйДокумент.Присоединить(Область);
ОбластьНачалоСтроки = Макет.ПолучитьОбласть("СтрокаТаблицы|НачалоСтроки");
ОбластьКолонкаКодов = Макет.ПолучитьОбласть("СтрокаТаблицы|КолонкаКодов");
ОбластьКолонкаТоваров = Макет.ПолучитьОбласть("СтрокаТаблицы|КолонкаТоваров");
ОбластьКолонкаУпаковок = Макет.ПолучитьОбласть("СтрокаТаблицы|КолонкиУпаковок");
ОбластьКолонкаКоличества = Макет.ПолучитьОбласть("СтрокаТаблицы|КолонкиКоличества");
СчетСтрок = 1;
ВыборкаПоСсылкамТЧ = ВыборкаПоСкладам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаПоСсылкамТЧ.Следующий() Цикл
ВыборкаПоНоменклатуреТЧ = ВыборкаПоСсылкамТЧ.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаПоНоменклатуреТЧ.Следующий() Цикл
ВыборкаПоСтрокамТЧ = ВыборкаПоНоменклатуреТЧ.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
ПерваяСтрока = Истина;
СтрокаУпаковок = "";
СтрокаКоличесткаУпаковок = "";
СтрокаЕдиницИзмерений = "";
СтрокаКоличества = "";
Пока ВыборкаПоСтрокамТЧ.Следующий() Цикл
Если ВыборкаПоСтрокамТЧ.НастройкаИспользованияСерий = Перечисления.НастройкиИспользованияСерийНоменклатуры.ЭкземплярТовара Тогда
Если ПерваяСтрока Тогда
СтруктураДанныхНомерСтроки = Новый Структура("НомерСтроки", СчетСтрок);
ОбластьНачалоСтроки.Параметры.Заполнить(СтруктураДанныхНомерСтроки);
СчетСтрок = СчетСтрок + 1;
ТабличныйДокумент.Вывести(ОбластьНачалоСтроки);
Если ВыводитьКоды Тогда
СтруктураДанныхКоды = Новый Структура("ЗначениеКода", ВыборкаПоСтрокамТЧ[КолонкаКодов]);
ОбластьКолонкаКодов.Параметры.Заполнить(СтруктураДанныхКоды);
ТабличныйДокумент.Присоединить(ОбластьКолонкаКодов);
КонецЕсли;
СтруктураПоиска = Новый Структура;
СтруктураПоиска.Вставить("Ссылка", ВыборкаПоСтрокамТЧ.Ссылка);
СтруктураПоиска.Вставить("Склад", ВыборкаПоСтрокамТЧ.Склад);
СтруктураПоиска.Вставить("Номенклатура", ВыборкаПоСтрокамТЧ.Номенклатура);
СтруктураПоиска.Вставить("Характеристика", ВыборкаПоСтрокамТЧ.Характеристика);
СтрокаСерий = "";
Пока ВыборкаПоСериям.НайтиСледующий(СтруктураПоиска) Цикл
СтрокаСерий = СтрокаСерий + ВыборкаПоСериям.ПредставлениеСерии + ", ";
КонецЦикла;
Если СтрДлина(СтрокаСерий) <> 0 Тогда
СтрокаСерий = Лев(СтрокаСерий, СтрДлина(СтрокаСерий) - 2);
КонецЕсли;
ДополнительныеПараметрыПолученияНаименованияДляПечати = НоменклатураКлиентСервер.ДополнительныеПараметрыПредставлениеНоменклатурыДляПечати();
ДополнительныеПараметрыПолученияНаименованияДляПечати.ВозвратнаяТара = ВыборкаПоСтрокамТЧ.ЭтоВозвратнаяТара;
Товар = НоменклатураКлиентСервер.ПредставлениеНоменклатурыДляПечати(
ВыборкаПоСтрокамТЧ.ПредставлениеНоменклатуры,
ВыборкаПоСтрокамТЧ.ПредставлениеХарактеристики,
,
СтрокаСерий,
ДополнительныеПараметрыПолученияНаименованияДляПечати);
СтруктураДанныхТовар = Новый Структура("Товар", Товар);
ОбластьКолонкаТоваров.Параметры.Заполнить(СтруктураДанныхТовар);
ТабличныйДокумент.Присоединить(ОбластьКолонкаТоваров);
ПерваяСтрока = Ложь;
КонецЕсли;
Если ИспользоватьУпаковки Тогда
СтрокаУпаковок = СтрокаУпаковок + ВыборкаПоСтрокамТЧ.ПредставлениеЕдининицыИзмеренияУпаковки + Символы.ПС;
СтрокаКоличесткаУпаковок = СтрокаКоличесткаУпаковок + ВыборкаПоСтрокамТЧ.КоличествоУпаковок + Символы.ПС;
КонецЕсли;
СтрокаЕдиницИзмерений = СтрокаЕдиницИзмерений + ВыборкаПоСтрокамТЧ.ПредставлениеБазовойЕдиницыИзмерения + Символы.ПС;
СтрокаКоличества = СтрокаКоличества + ВыборкаПоСтрокамТЧ.Количество + Символы.ПС;
ТоварССериейЭкземпляром = Истина;
Иначе
СтруктураДанныхНомерСтроки = Новый Структура("НомерСтроки", СчетСтрок);
ОбластьНачалоСтроки.Параметры.Заполнить(СтруктураДанныхНомерСтроки);
СчетСтрок = СчетСтрок + 1;
ТабличныйДокумент.Вывести(ОбластьНачалоСтроки);
Если ВыводитьКоды Тогда
СтруктураДанныхКоды = Новый Структура("ЗначениеКода", ВыборкаПоСтрокамТЧ[КолонкаКодов]);
ОбластьКолонкаКодов.Параметры.Заполнить(СтруктураДанныхКоды);
ТабличныйДокумент.Присоединить(ОбластьКолонкаКодов);
КонецЕсли;
ДополнительныеПараметрыПолученияНаименованияДляПечати = НоменклатураКлиентСервер.ДополнительныеПараметрыПредставлениеНоменклатурыДляПечати();
ДополнительныеПараметрыПолученияНаименованияДляПечати.ВозвратнаяТара = ВыборкаПоСтрокамТЧ.ЭтоВозвратнаяТара;
Товар = НоменклатураКлиентСервер.ПредставлениеНоменклатурыДляПечати(
ВыборкаПоСтрокамТЧ.ПредставлениеНоменклатуры,
ВыборкаПоСтрокамТЧ.ПредставлениеХарактеристики,
,
ВыборкаПоСтрокамТЧ.ПредставлениеСерии,
ДополнительныеПараметрыПолученияНаименованияДляПечати);
СтруктураДанныхТовар = Новый Структура("Товар", Товар);
ОбластьКолонкаТоваров.Параметры.Заполнить(СтруктураДанныхТовар);
ТабличныйДокумент.Присоединить(ОбластьКолонкаТоваров);
Если ИспользоватьУпаковки Тогда
ОбластьКолонкаУпаковок.Параметры.Заполнить(ВыборкаПоСтрокамТЧ);
ТабличныйДокумент.Присоединить(ОбластьКолонкаУпаковок);
КонецЕсли;
ОбластьКолонкаКоличества.Параметры.Заполнить(ВыборкаПоСтрокамТЧ);
ТабличныйДокумент.Присоединить(ОбластьКолонкаКоличества);
ТоварССериейЭкземпляром = Ложь;
КонецЕсли;
КонецЦикла;
Если ТоварССериейЭкземпляром Тогда
Если ИспользоватьУпаковки Тогда
СтруктураДанныхКолонкаУпаковок = Новый Структура;
СтруктураДанныхКолонкаУпаковок.Вставить("КоличествоУпаковок", СтрокаКоличесткаУпаковок);
СтруктураДанныхКолонкаУпаковок.Вставить("ПредставлениеЕдининицыИзмеренияУпаковки", СтрокаУпаковок);
ОбластьКолонкаУпаковок.Параметры.Заполнить(СтруктураДанныхКолонкаУпаковок);
ТабличныйДокумент.Присоединить(ОбластьКолонкаУпаковок);
КонецЕсли;
СтруктураДанныхКолонкаКоличества = Новый Структура;
СтруктураДанныхКолонкаКоличества.Вставить("Количество", СтрокаКоличества);
СтруктураДанныхКолонкаКоличества.Вставить("ПредставлениеБазовойЕдиницыИзмерения", СтрокаЕдиницИзмерений);
ОбластьКолонкаКоличества.Параметры.Заполнить(СтруктураДанныхКолонкаКоличества);
ТабличныйДокумент.Присоединить(ОбластьКолонкаКоличества);
КонецЕсли;
КонецЦикла;
КонецЦикла;
Область = Макет.ПолучитьОбласть("ПодвалТаблицы|НачалоСтроки");
ТабличныйДокумент.Вывести(Область);
Если ВыводитьКоды Тогда
Область = Макет.ПолучитьОбласть("ПодвалТаблицы|КолонкаКодов");
ТабличныйДокумент.Присоединить(Область);
КонецЕсли;
Область = Макет.ПолучитьОбласть("ПодвалТаблицы|КолонкаТоваров");
ТабличныйДокумент.Присоединить(Область);
Если ИспользоватьУпаковки Тогда
Область = Макет.ПолучитьОбласть("ПодвалТаблицы|КолонкиУпаковок");
ТабличныйДокумент.Присоединить(Область);
КонецЕсли;
Область = Макет.ПолучитьОбласть("ПодвалТаблицы|КолонкиКоличества");
ТабличныйДокумент.Присоединить(Область);
Область = Макет.ПолучитьОбласть("Подписи");
ТекстИтоговойСтроки = НСтр("ru = 'Всего наименований %ВсегоНаименований%'");
ТекстИтоговойСтроки = СтрЗаменить(ТекстИтоговойСтроки,"%ВсегоНаименований%", СчетСтрок-1);
СтруктураДанныхИтоговаяСтрока = Новый Структура;
СтруктураДанныхЗаголовок.Вставить("ИтоговаяСтрока", ТекстИтоговойСтроки);
Область.Параметры.Заполнить(СтруктураДанныхЗаголовок);
ТабличныйДокумент.Вывести(Область);
КонецЦикла;
УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, ДанныеПечати.Ссылка);
КонецЦикла;
КонецЦикла;
Для Каждого Ссылка Из МассивПроверки Цикл
Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'В документе %1 отсутствуют товары. Печать расходной накладной не требуется.'"),
Ссылка);
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
Текст,
Ссылка);
КонецЦикла;
ТабличныйДокумент.АвтоМасштаб = Истина;
Если ПривилегированныйРежим() Тогда
УстановитьПривилегированныйРежим(Ложь);
КонецЕсли;
Возврат ТабличныйДокумент;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот