Редчайший уникальный случай загрузки прайса.
В прайсе поставщиков есть артикулы, которые в 1С, но имеют другие названия.
Как сообщил клиент, это аналоги товара (именно другие товары) а не один.
В прайсах нет групп, и стоит задача чтобы эти товары загружались в базу отдельными элементами. НО программа находила повторяющийся (существующий) артикул и записывала эти новые элементы в ту же папку где этот артикул.
Сначала я думал что задача не реализуема. Так как если включить поиск по артикулу+наименованию таблица результата будет совершенная другая, и там не будет товаров у которых артикул сходится (так как этот поиск будет выключен). И соответственно взять информацию о папке по артикулу будет невозможно. Это потребует специального изменения обработки.
Но буквально через несколько минут я нашел выход из непростой ситуации. С помощью алгоритмов! На этапе чтения таблицы для определенной колонки, мы укажем дополнительный поиск (который будет перед основной синхронизацией). Программа сделает поиск по артикулу, найдет товар, и в таблицу опеределит группу Иерархии.
Все это произойдет на этапе таблицы результата и перед основным сопоставлением.
Итак сам алгоритм
НайтиАртикул = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул",Колонка1);
Если НЕ НайтиАртикул = Справочники.Номенклатура.ПустаяСсылка() Тогда
Значение = НайтиАртикул.Родитель;
КонецЕсли;
Алгоритм необходимо добавить на строке настройки Родитель1.
Колонка1 - нужно будет указать номер колонки с артикулом.
В прайсе поставщиков есть артикулы, которые в 1С, но имеют другие названия.
Как сообщил клиент, это аналоги товара (именно другие товары) а не один.
В прайсах нет групп, и стоит задача чтобы эти товары загружались в базу отдельными элементами. НО программа находила повторяющийся (существующий) артикул и записывала эти новые элементы в ту же папку где этот артикул.
Сначала я думал что задача не реализуема. Так как если включить поиск по артикулу+наименованию таблица результата будет совершенная другая, и там не будет товаров у которых артикул сходится (так как этот поиск будет выключен). И соответственно взять информацию о папке по артикулу будет невозможно. Это потребует специального изменения обработки.
Но буквально через несколько минут я нашел выход из непростой ситуации. С помощью алгоритмов! На этапе чтения таблицы для определенной колонки, мы укажем дополнительный поиск (который будет перед основной синхронизацией). Программа сделает поиск по артикулу, найдет товар, и в таблицу опеределит группу Иерархии.
Все это произойдет на этапе таблицы результата и перед основным сопоставлением.
Итак сам алгоритм
НайтиАртикул = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул",Колонка1);
Если НЕ НайтиАртикул = Справочники.Номенклатура.ПустаяСсылка() Тогда
Значение = НайтиАртикул.Родитель;
КонецЕсли;
Алгоритм необходимо добавить на строке настройки Родитель1.
Колонка1 - нужно будет указать номер колонки с артикулом.