Имя: Пароль:
1C
 
Объединение Справочник.Номенклатура и РегистрСведений.ШтрихкодыНоменклатуры
,
0 Max57
 
19.10.23
10:00
Здравствуйте, уважаемые форумчане. Мне нужно в запросе объединить справочник Номенклатура с регистром сведений ШтрихкодыНоменклатуры. Подскажите, пожалуйста, как сделать так, чтобы в итоговой таблице было две колонки номенлатура и штрихкод, даже при условии того, что номенклатуры в регистре есть несколько ШК. Скрин прикладываю. https://disk.yandex.ru/i/WFMTMainamoDgw
1 Галахад
 
гуру
19.10.23
10:03
Условие выполнено. Две колонки.
2 Max57
 
19.10.23
10:04
(0) Чтобы номенклатура была одна, а все созданные ШК, были выведены в соседней коленке через запятую.
3 Max57
 
19.10.23
10:07
4 arsik
 
гуру
19.10.23
10:10
(2) Нет сынок. Это фантастика.
5 Жеглофф
 
19.10.23
10:14
СКД и СоединитьСтроки
6 yopQua
 
19.10.23
10:14
(2) через скд или вручную таблицу рисовать. программно то есть.
7 Kigo_Kigo
 
19.10.23
10:24
может быть В СКД в ресурсах есть функция СОЕДИНИТЬСТРОКИ() они и соединяет все строки по группированному полю!!!!
8 banco
 
19.10.23
10:53
(0) в скд можно СоединитьСтроки(Массив(Штрихкод), ",")
9 GANR
 
19.10.23
11:15
(0) Если номенклатура отсутствует в регистре сведений её нужно выводить?
10 Max57
 
19.10.23
11:38
Всем спасибо.
Я так сделал.
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ШтрихкодыНоменклатуры.Номенклатура КАК Номенклатура,
    |    ШтрихкодыНоменклатуры.Штрихкод КАК Штрихкод
    |ИЗ
    |    РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры";
    
    РезультатЗапроса = Запрос.Выполнить().Выгрузить();
    Отбор = Новый Структура;
    
    Для Индекс = 0 По РезультатЗапроса.Количество()- 2 Цикл
    Если РезультатЗапроса[Индекс].Номенклатура = РезультатЗапроса[Индекс+1].Номенклатура Тогда
    РезультатЗапроса[Индекс].Штрихкод = РезультатЗапроса[Индекс].Штрихкод + ", " + РезультатЗапроса[Индекс+1].Штрихкод;
    РезультатЗапроса.Удалить(РезультатЗапроса[Индекс+1]);
    //Сообщить(РезультатЗапроса[Индекс].Номенклатура);    
    
    КонецЕсли;    
    Сообщить(Строка(РезультатЗапроса[Индекс].Номенклатура) + Строка(РезультатЗапроса[Индекс].Штрихкод));
    КонецЦикла;
11 Max57
 
19.10.23
11:44
(10) Это же только для двух повторяющихся будет работать?
12 Галахад
 
гуру
19.10.23
12:49
(10) Этот код вообще не рабочий.
1. Количество штрихкодов у товара может быть больше двух.
2. Удаление строк из таблицы никак не проверяется.
13 arsik
 
гуру
19.10.23
12:55
(10) Если уж ты таким путем пошел, то сделай итоги по номенклатуре. Будет у тебя дерево:
Номенклатура 1
    | - ШК1
    | - ШК2
    | - ШК3
Номенклатура 2
    | - ШК4
14 ColonelAp4u
 
19.10.23
12:57
(12) добавлю так же что количество шк и может вообще быть равным 0.
(0) бери справочник номенклатуры, делай левое соединение с рс, и выводи шк, сделай итоги по ном и шк, а потом уже если тебе прям так хочется чтобы выдало их через "," обрабатывай результат запроса в цикле и соединяй свои строки
15 Max57
 
19.10.23
14:41
(14) Спасибо.

Запрос, примерно, такой должен быть?

ВЫБРАТЬ
    Номенклатура1.Ссылка КАК Ссылка,
    ШтрихкодыНоменклатуры.Штрихкод КАК Штрихкод
ИЗ
    Справочник.Номенклатура КАК Номенклатура1
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
        ПО (Номенклатура1.Ссылка = ШтрихкодыНоменклатуры.Номенклатура)
ГДЕ
    НЕ Номенклатура1.ЭтоГруппа

УПОРЯДОЧИТЬ ПО
    Ссылка
ИТОГИ ПО
    Ссылка
16 ColonelAp4u
 
19.10.23
15:25
(15) да
17 Kigo_Kigo
 
20.10.23
10:31
СКД



ВЫБРАТЬ
    Номенклатура.Ссылка КАК Ссылка,
    ШтрихкодыНоменклатуры.Штрихкод КАК Штрихкод
ИЗ
    Справочник.Номенклатура КАК Номенклатура1
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры

        ПО Номенклатура1.Ссылка = ШтрихкодыНоменклатуры.Номенклатура
СГРУППИРОВАТЬ ПО
    Номенклатура.Ссылка,
    ШтрихкодыНоменклатуры.Штрихкод
18 Kigo_Kigo
 
20.10.23
10:31
Вкладка ресурсы
19 Kigo_Kigo
 
20.10.23
10:31
Результат
20 Kigo_Kigo
 
20.10.23
10:33
Слепил на коленке
21 Max57
 
23.10.23
17:22
(20) Спасибо, но мне нужно выгрузить результат в ТЗ
22 mikecool
 
23.10.23
17:28
(8) Массив() и без СоединитьСтроки() нормально формирует строчки
23 nextssbt
 
23.10.23
17:41
(21) ССКД прекрасно выгружается в ТЗ
https://infostart.ru/1c/articles/658410/