Как в итогах запроса не отбрасывать повторяющиеся позиции?
Здравствуйте.
Есть запрос:
Данные из которого заполняются в макет:
Есть 2 проблемы:
- Не заполнятся штрихкод.
- Отбрасываются повторяющиеся позиции номенклатуры с другой серией.
И не могу понять, где проблема. Смотрел результат запроса, позиции номенклатуры есть, штрихкоды есть. Но в макет часть данных уже не попадает.
Есть запрос:
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ПеремещениеТоваровТовары.Номенклатура КАК Номенклатура,
ПеремещениеТоваровТовары.Количество КАК Количество,
ПеремещениеТоваровТовары.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
ПеремещениеТоваровТовары.СерияНоменклатуры КАК СерияН,
МестаХраненияНоменклатуры.МестоХранения КАК МестоХранения,
ЕСТЬNULL(ЗначенияСвойствОбъектов.Значение, "0°С - 25°С") КАК ТемпРежим,
Штрихкоды.Штрихкод КАК Штрихкод
ИЗ
Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МестаХраненияНоменклатуры КАК МестаХраненияНоменклатуры
ПО ПеремещениеТоваровТовары.Номенклатура = МестаХраненияНоменклатуры.Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
ПО ПеремещениеТоваровТовары.Номенклатура = ЗначенияСвойствОбъектов.Объект
И (ЗначенияСвойствОбъектов.Свойство = &Свойство)
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Штрихкоды КАК Штрихкоды
ПО ПеремещениеТоваровТовары.Номенклатура = Штрихкоды.Владелец
И ПеремещениеТоваровТовары.ЕдиницаИзмерения = Штрихкоды.ЕдиницаИзмерения
ГДЕ
ПеремещениеТоваровТовары.Ссылка = &Ссылка
И МестаХраненияНоменклатуры.Склад = &Склад
И Штрихкоды.ТипШтрихкода В(&ТипШК)
ИТОГИ ПО
МестоХранения,
ТемпРежим
ПоказатьДанные из которого заполняются в макет:
Ном = 0; // Нумерация в таблице
// Выборка места хранения
ВыборкаМестоХранения = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаМестоХранения.Следующий() Цикл
// Выводим шапку
ТабДок.Вывести(ОблЗаголовок);
ТабДок.Вывести(ОблОтправитель);
ТабДок.Вывести(ОблПолучатель);
ОблМестоХран.Параметры.Заполнить(ВыборкаМестоХранения);
ТабДок.Вывести(ОблМестоХран,ВыборкаМестоХранения.Уровень());
// Выводим шапку таблицы
ТабДок.Вывести(ОблШапкаТабл);
// Заполняем таблицу товаров. Выборка температурного режима
ВыборкаТемпРежим = ВыборкаМестоХранения.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаТемпРежим.Следующий() Цикл
ОблТемпРежим.Параметры.Заполнить(ВыборкаТемпРежим);
ТабДок.Вывести(ОблТемпРежим,ВыборкаТемпРежим.Уровень());
// Выборка детальных записей
ВыборкаТовар = ВыборкаТемпРежим.Выбрать();
ТабДок.НачатьАвтогруппировкуСтрок();
Пока ВыборкаТовар.Следующий() Цикл
// Проверка на пустые строки в таблице товаров
Если Не ЗначениеЗаполнено(ВыборкаТовар.Номенклатура) Тогда
Сообщить("В одной из строк не заполнено значение номенклатуры.",СтатусСообщения.Важное);
Прервать;
КонецЕсли;
Ном = Ном + 1;
Штрихкод = ""; // Штрихкод
ОблСтрТаблицы.Параметры.НомерСтроки = Ном;
ОблСтрТаблицы.Параметры.Номенклатура = ВыборкаТовар.Номенклатура;
ОблСтрТаблицы.Параметры.НомерСерии = СокрЛП(ВыборкаТовар.СерияН.СерийныйНомер);
ОблСтрТаблицы.Параметры.СрокГодности = ВыборкаТовар.СерияН.СрокГодности;
ОблСтрТаблицы.Параметры.НомерСертификата = ВыборкаТовар.СерияН.Сертификат;
ОблСтрТаблицы.Параметры.СрокДействияСерт = ВыборкаТовар.СерияН.СрокДействияСертификата;
ОблСтрТаблицы.Параметры.Количество = ВыборкаТовар.Количество;
ОблСтрТаблицы.Параметры.ЕдиницаИзмерения = ВыборкаТовар.ЕдиницаИзмерения;
// Выборка штрихкода
ВыборкаШК = ВыборкаТовар.Выбрать();
Пока ВыборкаШК.Следующий() Цикл
Штрихкод = ""; // Штрихкод
Штрихкод = Штрихкод + ВыборкаШК.Штрихкод + РазделСтрок;
ОблСтрТаблицы.Параметры.Штрихкод = Штрихкод;
КонецЦикла;
ТабДок.Вывести(ОблСтрТаблицы);
ТабДок.ЗакончитьАвтогруппировкуСтрок();
КонецЦикла;
КонецЦикла;
ТабДок.Вывести(ОблПодвал);
// Вставляем разрыв страницы
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
КонецЦикла;
ПоказатьЕсть 2 проблемы:
- Не заполнятся штрихкод.
- Отбрасываются повторяющиеся позиции номенклатуры с другой серией.
И не могу понять, где проблема. Смотрел результат запроса, позиции номенклатуры есть, штрихкоды есть. Но в макет часть данных уже не попадает.
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Запрос забросить в СКД
в ней ресурс Штрихкод с выражением СоединитьСтроки(Штрихкод,";","")
остальные варики, в том числе вывод в табл. док. в цикле, конечно имеют право на реализацию, но они ...от лукавого
в ней ресурс Штрихкод с выражением СоединитьСтроки(Штрихкод,";","")
остальные варики, в том числе вывод в табл. док. в цикле, конечно имеют право на реализацию, но они ...от лукавого
А для чего вы делаете:
У вас же отсутствуют итоги по Номенклатуре. ВыборкаТовар у вас должна содержать детальные записи.
ВыборкаШК = ВыборкаТовар.Выбрать();
У вас же отсутствуют итоги по Номенклатуре. ВыборкаТовар у вас должна содержать детальные записи.
Внимание! Тема сдана в архив
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот