Wiki source code of Выгрузка в TecDoc

Version 111.1 by Александр Молчин on 2025/06/24 12:44

Show last authors
1 = **Сборка таблиц для загрузки информации по списку артикулов одного бренда через DMM** =
2
3 DMM - личный кабинет TecDoc, через который происходит загрузка наших товаров. DMM - старая версия личного кабинета, с 2023 г. появился TecDoc ONE - новая версия личного кабинета. Основное различие - загрузка стала более удобной и легкой для пользователя, требования к уровню знаний Excel снизились плюс снижается время между загрузкой и отображением в каталоге (8 дней у DMM и 1 день у ONE). В настоящий момент DMM работает для Trialli, Luzar, Startvolt и Airline. ONE работает только для Carville Racing. В планах у TecDoc отправить все бренды на ONE во втором квартале 2025 г, но на 17.06.25 точной даты и алгоритмы сотрудники TecDoc не предоставили (вопрос задавал в июне). Надо уточнить, но возможен вариант не переезжать на ONE и остаться на DMM.
4
5 **Ссылки на DMM**
6
7 DMM по Luzar / Airline [[http:~~/~~/192.168.1.79:8181/>>url:http://192.168.1.79:8181/]]
8
9 DMM по Trialli / Startvolt [[http:~~/~~/192.168.1.76:8080/>>url:http://192.168.1.76:8080/]]
10
11 Официальная документация: [[attach:TecDoc-Data-Format_Version_2.7_EN_2.0.29.pdf||target="_blank"]]
12
13 **Файлы по сбору и подготовке информации**
14
15 Файл СБОР 2.0: [[attach:СБОР 2.0.xlsx||target="_blank"]]
16
17 Сбор таблиц в TecDoc: [[attach:Сборка таблиц TecDoc.xlsx||target="_blank"]]
18
19
20 == **ОБЩАЯ СХЕМА** ==
21
22 [[image:Алгоритм загрузки в TecDoc.png]]
23
24 **Что должно получиться в финале (итоговые файлы):**
25
26 [[attach:Таблицы для загрузки.rar||target="_blank"]] - пример из последней загрузки Airline
27
28 Название файла 200.4826 означает, что это таблица № 200 из документации для бренда номер 4826 (поле Supplier No. для Airline)
29
30 Содержание таблиц:
31
32 001 - условно "сопроводительное письмо" о загрузке. Информации об артикулах в нем нет. Я его не собираю, копирую из прошлых загрузок.
33
34 200 - Артикул и Бренд
35
36 203 - Cross / OEM
37
38 209 - Штрих-коды
39
40 210 - Характеристики и их значения
41
42 211 - Номер группы TecDoc
43
44 212 - Страна, статус
45
46 400 - Применяемость
47
48 Информация о содержании всех полей таблиц есть в документации.
49
50
51 == **Выбор артикулов для загрузки** ==
52
53 Берем для загрузки артикулы, удовлетворяющие условиям:
54
55 Cтатус = “Заказано / В пути”
56
57 ИЛИ Статус = “На складе”
58
59 И Категория ABC <> “OUT”
60
61 И Категория ABC <> “ZAK”
62
63 И Категория ABC <> “ARC”
64
65 И Категория ABC <> “RLZ”
66
67 И Категория ABC <> “D”
68
69 Это будет Список 1.
70
71
72 Берем отчет Articles из DMM (см.ниже как его найти). Это список уже загруженных артикулов. Это будет Список 2.
73
74 [[image:1748502438816-408.png||height="374" width="378"]]
75
76
77 Удаляем Список 2 из Списка 1 и получим список артикулов для загрузки.
78
79
80 === **Выбор номера группы TecDoc для загружаемых артикулов** ===
81
82 Есть два сценария выбора:
83
84 1) Группа ранее загружалась, поэтому ее номер известен
85
86 В этом случае нужно взять **Номер группы TecDoc **из справочников:
87
88 [[attach:AIRLINE Группы TECDOC.xlsx||target="_blank"]]
89
90 [[attach:LUZAR Группы TECDOC.xlsx||target="_blank"]]
91
92 [[attach:TRIALLI Группы TecDoc.xlsx||target="_blank"]]
93
94 Бывают случаи, где внутри нашей группы (например, Газовые упоры в Trialli) содержится несколько групп TecDoc. В таком случае требуется условие, по которому определяется принадлежность к группе TecDoc (вхождение текста). На примере Газовых упоров это выглядит так:
95
96 [[image:image-20250507153434-1.png||height="52" width="559"]]
97
98 2) Группа ранее не загружалась
99
100 Если группа новая (= не загружалась в TecDoc ранее), то нужно выбрать ее номер из справочника группы TecDoc - [[attach:Generic Articles 2024 2.0.xlsx||target="_blank"]]. В нем нас интересует поле GenArtNo. Также можно вбить OEM артикула новой группы авторитетного бренда в каталог TecDoc - [[https:~~/~~/web.tecalliance.net/tecdocru/ru/login>>url:https://web.tecalliance.net/tecdocru/ru/login]] - и подобрать группу из выпавших артикулов.
101
102 Выбор группы делаю сначала сам, потом привлекаю маркетологов.
103
104 Если группы нет в справочнике Generic Articles, то можно написать письмо в TecDoc со списком групп для добавления. Такое мы делали один раз для Airline - добавление групп произошло через 3 месяца с момента подачи заявки.
105
106
107 (% class="wikigeneratedid" %)
108 == ==
109
110 == **Привязка к бренду (табл. 200)** ==
111
112 Требования из инструкции по содержанию строки:
113
114 [[image:20 супп.png||height="462" width="521"]]
115
116 Поля, актуальные нам:
117
118 ArtNo - Артикул в NPR
119
120 BrandNo - Номер бренда Carville из справочника TecDoc
121
122 TableNo - Номер таблицы = 200
123
124 (% dir="ltr" style="height:30px; width:30px" %)
125 |(% style="width:115px" %)**Бренд**|(% style="width:48px" %)**Номер бренда Carville**
126 |(% style="width:115px" %)AIRLINE|(% style="width:48px" %)4826
127 |(% style="width:115px" %)LUZAR|(% style="width:48px" %)4707
128 |(% style="width:115px" %)TRIALLI|(% style="width:48px" %)4772
129 |(% style="width:115px" %)STARTVOLT|(% style="width:48px" %)4471
130
131 (% class="wikigeneratedid" %)
132 TableNo - номер загружаемой таблицы
133
134 **Итоговая таблица:**
135
136 [[image:21 супп.png]]
137
138 == **Cross и OEM (таблица 203)** ==
139
140 Из БД делаем два запроса - OEM и Cross (прилагаю) с объединением их в одну таблицу. В DMM OEM и Cross лежат в одной куче, в отличии от NPR.
141
142 **Обработка OEM / Cross**
143
144 1) Убрать OEM / Cross, в значениях которых есть кириллица
145
146 2) Почистить OEM / Cross от лишних пробелов, служебных символов (переносов строк и т.д.)
147
148 3) Для загрузки берутся только те OEM / Cross, бренды которых находятся в справочнике брендов TecDoc (в DMM он называется Brands) = надо удалить значения tecdocId, равные null. Признаком нахождения в справочнике брендов TecDoc является наличие заполненного поля Tecdocid в справочнике “Производители OEM/Cross” в NPR.
149
150 4) Заменить ошибочные названия брендов (VALEO_INDI, BOSCH_STAH и т.д.). [[attach:Замена ошибок в брендах.xlsx||target="_blank"]] - в нем **Tecdoc id** меняем на **Tecdoc id для замены бренда.**
151
152 В конце СБОР 2.0 таблица должна выглядеть так:
153
154 1. Артикул
155 1. Номер бренда Carville
156 1. Номер бренда производителя TecDoc
157 1. Cross/OEM
158
159 Номер бренда Carville определяется так:
160
161 (% dir="ltr" style="height:30px; width:30px" %)
162 |(% style="width:115px" %)**Бренд**|(% style="width:48px" %)**Номер бренда Carville**
163 |(% style="width:115px" %)AIRLINE|(% style="width:48px" %)4826
164 |(% style="width:115px" %)LUZAR|(% style="width:48px" %)4707
165 |(% style="width:115px" %)TRIALLI|(% style="width:48px" %)4772
166 |(% style="width:115px" %)STARTVOLT|(% style="width:48px" %)4471
167
168 ==== **Запрос SQL для выгрузки Cross** ====
169
170 ~-~- Статусы: "Заказано/В пути", "На складе"
171
172 **SELECT**
173
174 b.name **AS** 'Бренд'
175
176 ,p.name **AS** 'Наименование ADS'
177
178 ,p.code **AS** 'Артикул'
179
180 ,c.code **AS** 'Код аналога'
181
182 ,om.name **AS** 'Производитель аналога'
183
184 ,om.tecdocId **AS** 'tecdocId'
185
186 **FROM** products p
187
188 **LEFT JOIN** product_group pg
189
190 **~ ON** p.group_id = pg.id
191
192 **LEFT JOIN **brands b
193
194 **ON** pg.brand_id = b.id
195
196 **LEFT JOIN** product_codes pc
197
198 **~ ON** p.id = pc.product_id
199
200 **LEFT JOIN** codes c
201
202 **ON** pc.code_id = c.id
203
204 **LEFT JOIN** oem_mark om
205
206 **ON** pc.oem_mark_id = om.id
207
208 **WHERE** 1 = 1
209
210 **AND** p.status_id **IN** (4,5)
211
212 **AND** b.name **IS NOT** null
213
214 **AND** c.code **IS NOT** null
215
216 **AND** om.name **IS NOT** null
217
218 **AND** b.id **IN** (1, 2, 3, 4, 5)
219
220 ~-~-**AND** p.code = 'ALED061'
221
222 **ORDER BY**
223
224 Бренд
225
226 ,'Наименование ADS'
227
228 ,'Производитель аналога'
229
230 ,'Код аналога'
231
232
233 ==== **Запрос SQL для выгрузки OEM** ====
234
235 ~-~- Статусы: "Заказано/В пути", "На складе"
236
237 **SELECT**
238
239 b.name **AS** 'Бренд'
240
241 ,p.name **AS** 'Наименование ADS'
242
243 ,p.code **AS** 'Артикул'
244
245 ,oc.code **AS** 'OEM'
246
247 ,om.name **AS** 'Марка'
248
249 ,om.tecdocId **AS** 'tecdocId'
250
251 **FROM** products p
252
253 **LEFT JOIN** product_group pg
254
255 **ON** p.group_id = pg.id
256
257 **LEFT JOIN** brands b
258
259 **ON** pg.brand_id = b.id
260
261 **LEFT JOIN** product_oem po
262
263 **ON** p.id = po.product_id
264
265 **LEFT JOIN** oem_codes oc
266
267 **ON **po.oem_id = oc.id
268
269 **LEFT JOIN** oem_mark om
270
271 **ON **oc.oemmarkId = om.id
272
273 **WHERE** 1 = 1
274
275 **AND** p.status_id **IN** (4,5)
276
277 **AND** oc.code **IS NOT** NULL
278
279 **~ AND **om.name **IS NOT** NULL
280
281 **AND** p.code **IS NOT** NULL
282
283 **AND** b.id **IN** (1, 2, 3, 4, 5)
284
285 **ORDER BY**
286
287 Бренд
288
289 ,Артикул
290
291 ,Марка
292
293 ,OEM
294
295 **Промежуточный вариант:**
296
297 [[image:14 супп.png||height="367" width="473"]]
298
299
300 **Итоговый вариант:**
301
302 [[image:15 супп.png]]
303
304
305 Вот изначальные требования к таблице (см. с. 149 в документации)
306
307 [[image:16 супп.png]]
308
309 == **Штрих-коды (табл. 209)** ==
310
311 == [[image:22 супп.png||height="419" width="587"]] ==
312
313 (% class="wikigeneratedid" %)
314 **ArtNo** - Артикул
315
316 (% class="wikigeneratedid" %)
317 **BrandNo** - Номер бренда Carville из справочника брендов TecDoc (см.выше)
318
319 (% class="wikigeneratedid" %)
320 **TableNo** - номер таблицы = 209
321
322 (% class="wikigeneratedid" %)
323 **GTIN** - Штрих-код / Штрих-код (груп.) из раздела Метрические данные
324
325 (% class="wikigeneratedid" %)
326 [[image:25 супп.png||height="300" width="720"]]
327
328 **Проверки:**
329
330 1) Из поля Штрих-код берем только значения с 13 символами (иногда попадаются значения с 14 символами)
331 2) Если группа = Диски тормозные или Барабаны тормозные, то берем поле Штрих-код (груп.), т.к. это парные товары, и них нет индивидуальной упаковки
332
333 3) Иногда у одного товара может быть несколько штрих-кодов и нужно либо удалять дубликаты, либо, если дубликаты не нашлись, вручную удалять лишние штрих-коды в выгрузке
334 4) Возможно, стоит сделать проверку на наличие штрих-кода. Если его нет, то отправить маркетологам на дозаполнение.
335
336 (% class="wikigeneratedid" %)
337 **Итоговая таблица:**
338
339 [[image:23 супп.png]]
340
341 == **Характеристики (табл. 210)** ==
342
343 Надо выгрузить индивидуальные и групповые характеристики.
344
345 ==== **Запрос SQL на индивидуальные характеристики** ====
346
347 **SELECT**
348
349 br.name **AS** Бренд
350
351 ,p.code **AS** Артикул
352
353 ,pg.name **AS** Группа
354
355 ,prop.name **AS** Характеристика
356
357 ,pv.val **AS** Значение
358
359 **FROM** propvalues pv
360
361 **LEFT JOIN** properties prop
362
363 **~ ON** pv.property_id = prop.id
364
365 **LEFT JOIN** products p** **
366
367 **~ ON** pv.product_id = p.id
368
369 **LEFT JOIN** product_group pg
370
371 **~ ON** p.group_id = pg.id
372
373 **LEFT JOIN** brands br
374
375 **~ ON **pg.brand_id = br.id
376
377 **WHERE** 1 = 1
378
379 **~ AND** p.status_id **IN** (4, 5)
380
381 **~ AND** pv.val **IS NOT** null
382
383 **~ AND** pv.val **NOT IN** ('')
384
385 **~ AND** br.id **IN** (1, 2, 3, 4, 5)
386
387 **~ AND **br.id = 3
388
389 **ORDER BY**
390
391 Бренд,
392
393 Группа,
394
395 Артикул
396
397 ==== **Запрос SQL на групповые характеристики** ====
398
399 **SELECT**
400
401 br.name **AS** Бренд
402
403 ,p.code **AS** Артикул
404
405 ,pg.name **AS** Группа
406
407 ,prop.name **AS** Характеристика
408
409 ,pb.defval **AS** Значение
410
411 **FROM** propbind pb
412
413 **LEFT JOIN** product_group pg
414
415 **ON** pb.group_id = pg.id
416
417 **LEFT JOIN** properties prop
418
419 **ON** pb.property_id = prop.id
420
421 **LEFT JOIN** products p
422
423 **ON **pb.group_id = p.group_id
424
425 **LEFT JOIN** brands br
426
427 **ON** pg.brand_id = br.id
428
429 **WHERE** 1 = 1
430
431 **AND** pb.defval **IS NOT** NULL
432
433 **AND** **pb.defval **NOT IN** ('')**
434
435 **AND p.code **IS NOT** NULL**
436
437 **AND** p.code **NOT IN** ('', '<новый код>')
438
439 **AND** p.status_id **IN **(4, 5)
440
441 **AND **br.id **IN **(1, 2, 3, 4, 5)
442
443 ~-~-**AND** br.id = 3
444
445 **ORDER BY**
446
447 Бренд,
448
449 Группа,
450
451 Артикул,
452
453 Характеристика
454
455
456 **Важно! Приоритет выбора значения характеристики при наличии значения в двух выгрузках (групповых и индивидуальных характеристиках).**
457
458 Логика, присущая большинству ситуаций: если у группы есть групповая характеристика, то у нее есть одно-единственное значение на всю группу, свойственное всем входящим в нее артикулам. Однако бывает так, что маркетолог меняет дефолтное значение у групповой характеристики на другое. В таком случае видим картину: у одного артикула одна и та же характеристика с двумя разными значениями фигурирует в обеих выгрузках (групповых и индивидуальных характеристик). Для этого мы проверяем наличие характеристики в обоих выгрузках, и если оно есть, то у характеристики берется значение из индивидуальной выгрузки, а групповое значение игнорируется.
459
460 Потом найти отсутствующие значения обязательных характеристик и отдать маркетологам.
461
462 Справочники характеристик:
463
464 [[attach:AIRLINE TECDOC.xlsx||target="_blank"]]
465
466 [[attach:LUZAR TECDOC.xlsx||target="_blank"]]
467
468 [[attach:TRIALLI TECDOC.xlsx||target="_blank"]]
469
470 **Важно! Добавление вручную характеристик, которых нет в NPR, но они требуются в TecDoc.**
471
472 Иногда бывают случаи, когда в TecDoc есть обязательная характеристика для конкретной группы (Mandatory Criteria), но маркетологи отказываются ее добавлять. Например, для **Датчиков износа **требуется Тип тормоза, но Антон Павлишин отказывается его добавить в NPR (его аргумент - очевидно, что везде Дисковый тормозной механизм). Другой пример -** Стойки стабилизатора** (Иван Пальмин). Для этой группы для TecDoc обязательна хар-ка Стойка со значением Соединительная штанга. Я **вручную** добавляю отдельно такие значения ко всем загружаемым артикулам, где это требуется.
473
474 **Важно! Добавление вручную информации, которой нет в разделе Характеристики, но она есть в других разделах NPR (она не требуется в TecDoc).**
475
476 Например, для Дисков тормозных нужна Масса брутто, кг, а для Прокладок ГБЦ из Luzar нужна Комплектация.
477
478
479 === Проверка полного заполнения характеристик в карточке товара артикула ===
480
481 Проверка имеет следующую логику: если обязательная характеристика не заполнена у артикула, то эта строчка будет в файле с ошибками.
482
483 Бывает, что наличие значения одной характеристики зависит от значения другой характеристики. Например, у глушителей есть диаметр 2 и его наличие зависит от его формы. Если форма глушителя = овал, то исходя из диаметр 1 и диаметр 2 должны быть заполнены (EAM 1808). Если форма = круг (EAM 0406), то значение диаметра 2 будет пустым, но не должно считаться ошибкой и не должно попасть в файл с ошибками. Таких случаев немного. Если у амортизаторов Тип верхнего крепления <> Шток, то пустое значения Хода штока, мм не должно являться ошибкой. Третий пример - Насосы водяные и Диаметр шкива. Конструкция может не предусматривать шкива.
484
485
486 === Маппинг значений характеристик NPR и к значениям справочника TecDoc. Очистка и подгонка значений. ===
487
488 После исправления маркетологами ошибок нужно сделать новые выгрузки характеристик и начать делать стыковку значений(маппинг) со справочником TecDoc.
489
490 Стыковка разделена на два файла - в одном числовые характеристик (тип N), во втором - текстовые (тип А) и характеристики со значениями из выпадающего списка (тип K).
491
492 У разных характеристик типа A или N длина значений будет отличаться, поэтому во время маппинга значений нужно не превышать максимальную длину значения. Список характеристик TecDoc и их длины можно посмотреть в файле - [[attach:Параметры TecDoc 2024.xlsx||target="_blank"]]
493
494 Например, надо подобрать значения к характеристиками **Суппортов тормозных.**
495
496 [[image:05 супп.png||height="83" width="845"]]
497
498 Ниже пойдут примеры уникальных значений NPR по каждой загружаемой группе.
499
500 Первый файл - типы K и A (см. выше - Criterion Type)
501
502 [[image:01 супп.png||height="233" width="577"]]
503
504 Найдем значения для **Количество поршней**
505
506 [[image:02 супп.png||height="202" width="629"]]
507
508 Найдем значения для **Сторона установки**
509
510 [[image:03 супп.png||height="94" width="633"]]
511
512
513 Значение характеристики **Тормозная система **должно быть названием, поэтому здесь его не меняем.
514
515 Итоговый файл с подобранными значениями характеристик типа K и A выглядит так (в конечном счете нам нужна пара Crit. No + ID (Key Value):
516
517 [[image:06 супп.png||height="261" width="648"]]
518
519 Иногда у маркетолога в NPR есть сложная и редкая информация, которой нет в справочнике TecDoc, но при этом она важна для покупателя. В таком случае мы ставим характеристику Версия (Crit No. = 1059) и вписываем значение длиной до 20 символов на английском языке. Иногда можем вписывать несколько значений характеристики **Версия.**
520
521
522 **Обработка числовых значений:**
523 1) Делать замену с “.” на “,”
524
525 2) Если значение подразумевает диапазон
526 Например, Диапазон измеряемого давления, бар = 0 - 3,5
527 то нужно выбрать 2 характеристики
528 Давление от = 0
529 Давление до = 3,5
530
531 В данном случае новые характеристики ищутся повторно
532
533 3) Проверять значения с перечислением через разделитель
534 Например, Двигатель = 31896, 33162 должен быть преобразован в
535 Двигатель = 31896
536 Двигатель = 31862
537
538 4) Убрать “+” из значений температуры. Например, +30 => 30
539
540 5) Отсечь погрешность из значения (после “±”). Например, 180±10 => 180
541
542
543 На примере **Суппортов тормозных** замена числовых значений (тип N) выглядит так:
544
545 - точки заменил на запятые
546
547 - поменял характеристику у двойных значений 44/48 и 46/52.
548
549 [[image:07 супп.png||height="37" width="510"]]
550
551 Итоговый тип N:
552
553 [[image:04 супп.png||height="502" width="577"]]
554
555
556 Потом объединеняем оба файла в один:
557
558 [[image:08 супп.png]]
559
560
561 В процессе объединения файлов числовые значения могут искажаться, поэтому нужно знать об этом и вручную корректировать такие случаи. Я это делаю как шаг в запросе Power Query.
562
563
564 === Сборка таблицы с характеристиками в TecDoc (таблица 210) ===
565
566 Формат загрузки характеристик представлен в документации на с.161. Вот он:
567
568 [[image:13 супп.png||height="630" width="605"]]
569
570
571 После этого собираем таблицу с характеристиками по каждому артикулу, учитывая порядок следования (нумерацию) характеристик в карточке товара (из справочника характеристик по бренду).
572
573 [[image:05 супп.png||height="67" width="683"]]
574
575 Промежуточный вариант:
576
577
578 [[image:11 супп.png||height="256" width="445"]]
579
580
581 Итоговый вариант:
582
583 [[image:12 супп.png]]
584
585 == ==
586
587 === **Номер группы TecDoc (табл. 211)** ===
588
589 == [[image:26 супп.png||height="303" width="483"]] ==
590
591 **ArtNo** - Артикул
592
593 **BrandNo** - Номер бренда Carville из справочника брендов
594
595 **TableNo **- номер таблицы = 211
596
597 **GenArtNo** - номер группы TecDoc. Подробнее смотреть в разделе **Выбор номера группы TecDoc для загружаемых артикулов**
598
599 **Итоговый вариант:**
600
601 **[[image:27 супп.png||height="357" width="204"]]**
602
603
604 == **Страна, статус (табл. 212)** ==
605
606 **[[image:28 супп.png||height="380" width="498"]]**
607
608 (% class="wikigeneratedid" %)
609 **ArtNo** - Артикул
610
611 (% class="wikigeneratedid" %)
612 **BrandNo** - номер бренда Carville
613
614 (% class="wikigeneratedid" %)
615 **TableNo** - номер таблицы = 212
616
617 (% class="wikigeneratedid" %)
618 **QuantUnit **- количество = ставим 1
619
620 (% class="wikigeneratedid" %)
621 **QuantPerUnit** - количество в единице товара (вроде) = ставим 1
622
623 (% class="wikigeneratedid" %)
624 **StatusDat** - ставлю дату формирования таблиц
625
626
627 (% class="wikigeneratedid" %)
628 Итоговая таблица:
629
630 (% class="wikigeneratedid" %)
631 [[image:29 супп.png||height="301" width="337"]]
632
633
634 (% class="wikigeneratedid" %)
635 **Применяемость (табл. 400)**
636
637 Делаем запрос через SQL по одному бренду:
638
639
640 **SELECT**
641
642 //br//.name **AS** 'Бренд'
643
644 ,//p//.code **AS** 'Артикул'
645
646 ,//am//.code **AS** 'Номер TecDoc легковой'
647
648 ,//am//.codeEx **AS** 'Номер TecDoc грузовой'
649
650 ,//am//.lnktargettypeID **AS** 'Linkage Target Type ID'
651
652 **FROM** products //p//
653
654 **LEFT** **JOIN** ausage //au//
655
656 **ON** //p//.id = //au//.product_id
657
658 **LEFT** **JOIN** amodification //am//
659
660 **ON** //au//.modification_id = //am//.id
661
662 **LEFT** **JOIN** product_group //pg//
663
664 **ON** //p//.group_id = //pg//.id
665
666 **LEFT** **JOIN** brands //br//
667
668 **ON** //pg//.brand_id = //br//.id
669
670 **WHERE** 1 = 1
671
672 **AND** (//p//.status_id = 4 **OR** //p//.status_id = 5)
673
674 ~-~-AND p.code = 'AG 15024'
675
676 **AND** //am//.lnktargettypeID **IS** **NOT** **null**
677
678 **AND** //br//.id **IN** (1, 2, 3, 4, 5)
679
680 **AND** //br//.id = 2
681
682 **ORDER** **BY**
683
684 //br//.name,
685
686 //p//.code
687
688
689 В полученной выгрузке добавляем столбец с условием:
690
691 IF ‘Номер TecDoc грузовой’ <> null
692
693 THEN ‘Номер TecDoc грузовой’
694
695 ELSE ‘Номер TecDoc легковой’
696
697
698 Перед загрузкой надо сделать замены всех значений Linkage Target Type ID на те, которые допускаются к загрузке. Это следует из пункта в инструкции на с.183 (третья сверху ссылка в этом тексте).
699
700 |**LnkTargetType**|**Linkage Target Type ID**|**Linkage Target Type ID для загрузки**
701 |TecDoc PC|2|2
702 |TecDoc Motorcycle|3|2
703 |TecDoc E-PC|4|2
704 |TecDoc E-LCV|5|2
705 |TecDoc Electric Motorcycle|6|2
706 |TecDoc LCV|999|2
707 |TecDoc CV|16|16
708 |TecDoc Bus|17|16
709 |TecDoc Tractor|18|16
710 |TecDoc E-Bus|20|16
711 |TecDoc E-CV|22|16
712
713 Плюс надо убрать из применяемости артикулы тех групп TecDoc, которые являются универсальными товарами. Это находится в справочнике Reference Data Generic Articles (см. ниже). **Универсальный товар имеет значение X в поле Universal.**
714
715 [[attach:Reference_Data_Generic_Articles_20250529_063516.csv||target="_blank"]]
716
717
718 Кроме того, в таблицу с применяемостью можно загружать еще двигатели (Engines).
719
720 |**Linkage Target Type**|**Linkage Target Type ID**
721 |Легковые (PC, LCV)|2
722 |Грузовые (CV)|16
723 |Двигатели (Engines)|14
724
725 **Промежуточный вариант сбора таблицы:**
726
727 [[image:17 супп.png]]
728
729
730 **Итоговый вариант:**
731
732 **[[image:18 супп.png]]**
733
734
735 **Требования из документации**
736
737 [[image:19 супп.png]]
738
739
740 = **Загрузка фотографий в TecDoc** =
741
742
743 Исходная ситуация: у нас есть загруженные артикулы в DMM, и к ним надо загрузить фото из папки ~\~\192.168.0.2\рабочая папка\ОМ\TRIALLI\ФОТО продукции TRIALLI\03_ФОТО 1000\
744
745 Файл для работы:
746
747 [[attach:01 - ФОТО - Загрузка фото в TecDoc, Привязка к артикулам.xlsx||target="_blank"]]
748
749
750 **Алгоритм следующий:**
751
752 * Найдем артикулы без фото (отчет Article Documents)
753 * Найдем все доступные фото по данным артикулам в разрешении 1000*1000 пикселей
754 * Скопируем фото в отдельную папку
755 * Загрузим фото в хранилище TecDoc
756 * Привяжем фото к артикулам и подготовим таблицу с привязками
757
758 1. Перед загрузкой фото спросить у Тимофеева Павла о том, загрузил ли он новые фотографии в разрешении 1000*1000
759 1. Сформировать отчет Article Documents
760
761 1. Зайти в DMM
762 1. Reports/Analysis > Reports > PD > Product Data: Article Documents
763 1. Supplier No. = TRIALLI/LUZAR…
764 1. Language No. = English (GB) ( ИЛИ английский (Великобритания) (4)
765 1. Export report
766 1. CSV, UTF-8
767 1. Start
768 1. Сохранить в C:\Users\User PC\Desktop\Карвиль\TecDoc\03 Загрузка фото . Создать предварительно папку для загрузки фото по каждому бренду и по каждому месяцу
769
770 1. Зайти в запрос в папке "C:\Users\User PC\Desktop\Карвиль\TecDoc\03 Загрузка фото\01 - ФОТО - Загрузка фото в TecDoc, Привязка к артикулам.xlsx"
771
772 1. В Запросе открыть лист settings
773 1. Скопировать путь к файлу Article Documents из п.1 с помощью SHIFT > Правой кнопкой по файлу > Копировать как путь
774 1. Вставить скопированный путь в таблицу “Пути” в строчку Quality Document Check
775 1. Нажать на Данные > Обновить все
776
777 Если LUZAR, то зайти в Запросы “Пути к файлам”, “Список фото в папке”, “Сравнение количества фото в папке и в TecDoc”, “Количество фото” и вставить ссылку на папку LUZAR в первый шаг запроса - ~\~\192.168.0.2\рабочая папка\ФОТОГРАФИИ ПРОДУКЦИИ\LUZAR\01_ФОТО _для текдок
778
779 1. Открыть лист “Пути к файлам”
780 1. В LUZAR фото LAT 0775, LAT 1222, LAT 1224 написано с ошибкой, можно убрать эти артикулы из загрузки.
781 1. Создать текстовый документ на рабочем столе названием Пути.txt
782 1. Скопировать столбец Name в текстовый документ, но удалить первую строчку – слово Name
783 1. Сохранить текстовый файл Пути.txt
784
785 1. Открыть Total Commander на панели задач
786
787 1. В правой половине прописать путь - ~\~\192.168.0.2\рабочая папка\ОМ\TRIALLI\ФОТО продукции TRIALLI\03_ФОТО 1000\*.*
788 1. Нажать на любой артикул из правой половины
789 1. Нажать в меню Выделение > Загрузить выделение из файла > Выбрать файл Пути.txt
790 1. Сейчас нужные файлы выделены.
791 1. Нажать внизу на F5 – Копирование
792 1. Появится окно, сверху будет надпись “Копировать файлы (N шт.) в ”
793 1. Создать папку с названием “N фото” в C:\Users\User PC\Desktop\Карвиль\TecDoc\03 Загрузка фото
794 1. Скопировать путь к новой папке (см. п.2.1)
795 1. Вставить путь в Total Commander в поле “Копировать файлы (N шт.) в ” и удалить из него кавычки
796 1. Нажать ОК
797 1. Выделенные файлы скопируются в заданную папку
798
799 1. Открыть DMM
800
801 1. Basic Data > Files
802 1. Import
803 1. Select files = выбрать папку с фото, выделить все файлы
804 1. Остальные настройки следующие:
805
806 [[image:image-20250418143833-1.png||height="882" width="703"]]
807
808
809 1. Нажать Start Import
810
811 Фото загрузятся в хранилище TecDoc
812
813 1. Сформировать отчет Document Check
814
815 1. Зайти в DMM
816 1. Reports/Analysis > Reports > QU > Quality: Document check
817 1. SUPPLIER No. = TRIALLI/LUZAR…
818 1. Export report
819 1. Format – CSV, UTF-8
820 1. Сохранить в C:\Users\User PC\Desktop\Карвиль\TecDoc\03 Загрузка фото\TecDoc reports
821
822 1. Зайти в запрос Загрузка фото в TecDoc 1000.xlsx в папке C:\Users\User PC\Desktop\Карвиль\TecDoc\03 Загрузка фото
823
824 1. В Запросе открыть лист settings
825 1. Скопировать путь к файлу Document Check из п.1 с помощью SHIFT > Правой кнопкой по файлу > Копировать как путь
826 1. Вставить скопированный путь в таблицу “Пути” в строчку Quality Document Check
827 1. Нажать на Данные > Обновить все
828 1. Открыть лист 232
829 1. Скопировать все, кроме первой строчки
830 1. Файл > Пустая книга
831 1. Встать на ячейку A1, вставить через Специальная вставка > Значения
832 1. Создать папку “Загрузка в TecDoc”
833 1. Сохранить файл в папке “Загрузка в TecDoc”. Имя файла – 232, разрешение файла – PRN
834 1. Скопировать в папку “Загрузка в TecDoc” из других загрузок файл 001.4772 (или другого бренда)
835 1. Переименовать файл 232.prn в 232.4772
836
837 1. Загрузим таблицу с привязками фото к артикулам в TecDoc
838
839 1. Сделаем экспорт базы данных перед загрузкой
840
841 Зайдем в DMM
842
843 Import/Export > Export > Product Data
844
845
846 1. Загрузим таблицу с привязками фото к артикулам
847
848 Зайдем в DMM
849
850 Import/Export > Import > Product Data
851
852 Select Files = выбрать файлы из папки “Загрузка в TecDoc”
853
854
855 1. Сделать валидацию
856 1. В результате валидации может быть ошибка 215 - Document rejected: Image No./Document type is not contained in the article images (record type 232), link documents (record type 432) and data supplier logos (record type 42). This results in rejection of all data records with the same image number/document type: Image no=477210610, Document type=3 (Record type 231)
857
858 Это значит, что фото лежит в хранилище без привязки к артикулу.
859
860 Такое происходило из-за разного регистра в артикуле и в названии фото. Например, фотка ESM 10015050**D**.jpg не притянется к артикулу ESM 10015050**d**. Нужно менять это вручную в таблице перед загрузкой или менять настройки запроса.
861
862
863
864
865
866 **Сортировка фото внутри артикулов**
867
868 Файл для работы:
869
870 [[attach:02 - ФОТО - Сортировка фотографий.xlsx||target="_blank"]]
871
872
873 Поскольку в TecDoc загружаются артикулы не только со статусом “На складе”, но и “Заказано/В пути”, то количество фотографий по одному артикулу со временем будет увеличиваться. Если товар находится “В пути”, то из фотографий на него есть только чертеж, и остальные фото появятся при появлении товара на складе.
874
875 1. Выгрузка базы из DMM
876
877 * Import / Export
878 * Export
879 * Product Data
880
881 [[image:image-20250418143833-4.png||height="788" width="1169"]]
882
883
884 1. Скачать zip-архив
885
886 [[image:image-20250418143833-5.png||height="786" width="1915"]]
887
888 1. Скачать отчет Article Documents из DMM
889 1. Создать папку для сортировки здесь: C:\Users\User PC\Desktop\Карвиль\TecDoc\03 Загрузка фото
890 1. Извлечь zip-архив в отдельную папку. Привести папку к табличному виду в проводнике через Вид > Структура > Таблица
891 1. Скопировать файл 232.<Номер бренда TecDoc> (например, 232.4707) в другую папку
892 1. Открыть файл 232.4707
893 1. Открыть файл "C:\Users\User PC\Desktop\Карвиль\TecDoc\03 Загрузка фото\02 - ФОТО - Сортировка фотографий.xlsx"
894 1. В нем на листе “232 исходная” удалить содержимое умной таблицы кроме заголовков
895 1. Скопировать таблицу из файла 232.4707 в другой файл в умную таблицу на лист “232 исходная”
896 1. На листе “Стыковка” прописать путь к файлу Article Documents без кавычек
897 1. Нажать на Данные > Обновить все
898 1. Скопировать содержимое в новый файл с названием 232.prn (поставить prn в разрешение файла)
899 1. Переименовать файл из 232.prn в 232. <Номер бренда TecDoc> (например, 232.4707)
900 1. Скопировать файл 232.4707 обратно в папку с извлеченным архивом = Заменить в папке назначения
901 1. Сделать архив-zip из всех файлов папки
902 1. Загрузить базу в TecDoc. Import / Export > Import > Product Data
903
904 [[image:image-20250418143833-6.png||height="925" width="1061"]]
905
906 1. Написать Андрею Черджиеву, чтобы он перезагрузил сервер