Задача не простая, а очень простая. Формулирую в несколько строк.
1. Сфера деятельности заказчика - продажа, изготовление и установка автомобильных аксессуаров (чехлы в салон, коврики, дефлекторы, спойлеры, ТСУ и т.п.)
2. В силу сказанного значительная часть номенклатуры в названии должна содержать марку, модель, годы изготовления и тип кузова автомобиля, к примеру: "Чехлы в салон для Volvo XC70 (2011-2013)"
3. Необходим отбор в списках номенклатуры по автомобилю/автомобилям.
4. Источник информации о марках и моделях должен постоянно актуализироваться, обновление должно производиться автоматически.
5. У заказчика Комплексная автоматизация 2.5.7 с установленным модулем Битрикс "Интернет-магазин + 1С" версии 7.0.1, посему все добавки к номенклатуре возможны только в виде дополнительных реквизитов.
В настоящее время используется база автомобилей https://auto.basebuy.ru
Вариант реализации был мной когда-то опубликован на https://infostart.ru/public/1137366/
Появилась идея заменить базу на базу Авито (заказчик активно торгует своей продукцией на Авито, два профиля продавца по 5-6 тысяч объявлений в каждом профиле. Разумеется, формируются объявления автоматически и не без моего участия).
Ссылочка на справочник https://autoload.avito.ru/format/Autocatalog.xml
Файл большой, 50 мегабайт. Заглянем внутрь (для работы с файлами XML привык использовать Visual Studio Code с плагином XML Tools, им и воспользуюсь):
Файл простой, структурированный и понятный. Каталог сделан единым списком (тег Catalog), несколько уровней вложенности по производителю (тег Make), модели (тег Model), поколению (тег Generation), модификации (тег Modification) и комплектации (тег Complectations). Все теги имеют атрибут id, многие - атрибут name или текстовое содержимое. С одной стороны, это хорошо (готовые реквизиты Код и Наименование для справочника базы), а с другой - ФабрикаXDTO не умеет корректно читать содержимое тега с установленными атрибутами. А именно фабрикой я и намерен разбирать загруженный файл из интернета.
Хотя, конечно, умеет, но с некоторой хитростью - надо создать корректный XDTO-пакет и подкинуть его методу ПрочитатьXML. Но я этого делать не хочу (причина - при изменении формата файла придется править и код модуля, и сам XDTO-пакет). Проблему решим несложным программным кодом, хоть и не очень красивым.
Буду делать расширение, постараюсь максимально выполнить требования 1С к разработке (https://its.1c.ru/db/v8std, система стандартов) и максимально использовать БСП.
Работу буду вести на платформе 8.3.20.1710, у меня установлена КА 2.5.7.336. Всё описанное полностью подойдет для УТ 11.5, скорее всего, подойдет для УНФ и Розницы, а также для КА 2.4 и УТ 11.4.
Работать буду в 1C:Enterprise Development Tools Ruby 2021.2.12
Продолжение - очень скоро...