Объединение Справочник.Номенклатура и РегистрСведений.ШтрихкодыНоменклатуры
Здравствуйте, уважаемые форумчане. Как мне изменить обработку таблицы значений, полученной из результата запроса так, чтобы в колонке штрихкоды были все штрихкоды номенклатуры, а номенклатура с несколькими штрихкодами одна (как на скриншоте).
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура1.Ссылка КАК Номенклатура,
| ШтрихкодыНоменклатуры.Штрихкод КАК Штрихкод
|ИЗ
| Справочник.Номенклатура КАК Номенклатура1
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
| ПО (Номенклатура1.Ссылка = ШтрихкодыНоменклатуры.Номенклатура)
|ГДЕ
| НЕ Номенклатура1.ЭтоГруппа
|
|УПОРЯДОЧИТЬ ПО
| Номенклатура1.Ссылка
|ИТОГИ ПО
| Номенклатура";
ПоказатьРезультатЗапроса = Запрос.Выполнить().Выгрузить();
//общее количество строк
Строки = РезультатЗапроса.Количество();
//массив для проверки совпадаений
лкДанные = Новый Массив;
Пока Строки > 0 Цикл
Строки = Строки - 1;
лкКлюч = РезультатЗапроса[Строки].Номенклатура;
Если лкДанные.Найти(лкКлюч) = Неопределено Тогда
//таких данных еще не было, добавляем
лкДанные.Добавить(лкКлюч);
Иначе
//уже были такие данные, удаляем строку
РезультатЗапроса.Удалить(РезультатЗапроса[Строки]);
КонецЕсли;
КонецЦикла;
ПоказатьПрикрепленные файлы:

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