Имя: Пароль:
1C
1С v8
Простой запрос - две таблицы
0 ЖНЕЦ
 
21.11.24
12:14
Всем привет

Есть две таблицы (количество строк может быть любым)

первая возвращает сервис по API

№    product_id    exemplars_id    quantity    marka
1    1726678476    15248650268    1            ""
2    1726678476    15248650269    1            ""
3    1638630207    15248650270    1            ""
4    1638630207    15248650271    1            ""
        

и первую таблицу нужно заполнит маркой (есть вторая таблица уже из базы)

№    marka                                   product_id
1    0108000001235708215Y%LssjF7Dt8-           1638630207
2    0108000001235708215y)hpG=hnSq+6           1638630207

Как сделать итог ?

    
№    product_id    exemplars_id    quantity    marka
1    1726678476    15248650268    1            ""
2    1726678476    15248650269    1            ""
3    1638630207    15248650270    1            0108000001235708215Y%LssjF7Dt8-
4    1638630207    15248650271    1            0108000001235708215y)hpG=hnSq+6
1 okmail
 
21.11.24
12:21
Во второй таблице поля exemplars_id нет?
2 ЖНЕЦ
 
21.11.24
12:27
(1) в том то и дело , что нет
один товар (product_id)
может иметь сколько угодно марок (exemplars_id)
3 osa1C
 
21.11.24
12:27
(0) Если это все поля в таблицах, то никак. Во второй таблице явно не хватает колонки
4 okmail
 
21.11.24
12:29
(2) Тогда только программно. Обходить первую таблицу, искать по полю product_id во второй. Помечать(или удалять) марки, которые уже добавлены
5 Fedor-1971
 
21.11.24
12:31
(0) Любая марка к любому exemplars_id? Нужно ли чтобы при повторном выполнении запроса марки присваивались тому-же exemplars_id?
6 ЖНЕЦ
 
21.11.24
12:38
(4) так и делали, хочу узнать можно ли запросом
(5) Да , любая - так тоже правильно будет

3    1638630207    15248650270    1   0108000001235708215Y%LssjF7Dt8-
4    1638630207    15248650271    1   0108000001235708215y)hpG=hnSq+6

3    1638630207    15248650270    1   0108000001235708215y)hpG=hnSq+6
4    1638630207    15248650271    1   0108000001235708215Y%LssjF7Dt8-
7 Fedor-1971
 
21.11.24
12:46
(6) я другое имел в виду, к нам следующий раз пришли
3    1638630207    15248650272
4    1638630207    15248650273
Марок только 2 и получим кашу, например, для 15248650270 и 15248650273 будет присвоена одна марка

Как видится, нужно добавлять в таблицу 2 exemplars_id, для предотвращения такого развития событий и выдавать в распределение только свободные марки
А так, в (4) правильно говорит, разбираем кодом и блокируем использованные марки
8 Hmster
 
21.11.24
12:47
если запросом, то пронумеровать строки внутри product_id в первой и второй таблицах и соединить в том числи по этим полям
9 Fedor-1971
 
21.11.24
12:47
(7)+ Как я понимаю, могут прислать и старые коды, с уже выданными марками
10 ЖНЕЦ
 
21.11.24
12:52
(8) количество строк неизвестно изначально
(9) именно так
11 Fedor-1971
 
21.11.24
13:15
(10) Если сделать как в (7), то левым соединением указываем присвоенные марки (т.е. не будем повторно присваивать уже готовые), а для оставшихся строк с Null кодом забираем свободные марки
12 d4rkmesa
 
21.11.24
13:21
(8) Точно
(10) Даже если можно сделать распределение в запросе, если результат никак не фиксируется, то достоверность результата достаточно низкая. Все-таки, я бы лучше по-старинке с обработкой ТЗ сделал.