1C — выгрузка на сайты и маркетплейсы

Выгрузка на сайты
Выгрузка на сайты

Выгрузка на сайты и маркетплейсы наверное самое обсуждаемое в любой компании. Самое отработанное, из коробки и в бой. Однако в любом правиле существуют исключения.

Если у Вас классическая связка 1с — Битрикс, значит Вы в начале пути. Здесь все ничего бы, но жизнь вносит свои коррективы.

Первое — карточка товара дорабатывается чаще чем меняется цена на продукцию. Свое веское слово обязательно в первую очередь скажут в бухгалтерии, маркетологи, управленцы, еще несколько категорий, и вся эта куча вывалится на разработчика. Кто бы схватился за голову, но мы сначала думаем, потом делаем. Вечером. Утром деньги, вечером стулья.

Классический пример — добавление одного реквизита в карточку товара, в большинстве случаев требует внести правки в:

  1. Обработку, которая куда-то что-то выгружает, передает или что-то где-то считает.
  2. Обработку (скрипт) которая этот реквизит получает, и что-то с ним делает.
  3. Ту часть скрипта, которая где-то это сохраняет

Дальше возможны варианты налево, направо:

  1. На этом все и закончится. Можно ставить кофе.
  2. Это только начало, потом чем дальше тем интереснее.

Никому не нужно чтоб это просто где-то лежало в базе. Этим нужно воспользоваться. Еще одна обработка или скрипт, в нужный момент извлекает из базы реквизит, причесывает при необходимости, и выводит его или его производную например на форму или сайт. И так повторить любимое число раз. Это простой пример доработки, классический, к сожалению сильно распространенный,о него спотыкаются каждый раз.

А если включить мозг, подумать и решить все одним легким движением, ну двумя так и быть, для корректности? Вряд-ли поймут это маркетологи, бухгалтеры etc. Они мыслят на своем абстакшн левеле. Кто в облаках витает это еще вопрос.

В общем на все случаи жизни, то есть навсегда, в любой новой конфигурации 1С необходимо добавить два реквизита.

Один типа Соответствие или Список, второй ТаблицаЗначений. Можно обойтись и одной Таблицей, так просто нагляднее.

Ну и че?

Вариантов данных у Вас может быть только 2 один ключ — одно значение, один ключ — множественное значение.То есть один реквизит для налево, второй если направо.

Далее все просто, облегчаем жизнь, один раз пишем обработку, сводим данные из этих реквизитов в один Json, и один раз скрипт на сайте или где. Теперь, просто добавляя пару ключ-значение, мы можем по этому каналу передавать/принимать любые данные в/из любых направлений. Выгрузка на сайты в действии. Гениально? Ну не скромничайте, понравилось ведь. Не забудьте сохранить в расширение или на GitHub. Пригодится не раз. И больше мы в структуру карточки товара не лезем, разве что в визуальную часть формы или html страницы. Здесь можно развлекаться все оставшееся рабочее время, в стиле Айвазовского, Пикассо, Модильяни.

Но это далеко не все. Нам ведь нужно это выгрузить и на сайты, и на маркетплейсы, и в прайс-навигаторы. Одно это изменение в одной строчке одного реквизита. Стоит ли из-за одного реквизита, целого поросенка, покупать, скажем так. В оригинале в народной мудрости слова другие, я заменил их чтоб никто не догадался. То есть правильно, передаем только изменения. Это добавляет несколько строк кода в наши шу первую обработку, только и всего. Благо современные RestApi позволяют нам менять одно поле у товара а не все. Дважды гениально.

То есть чтобы на всех местах выгрузки появлялись изменения, нам нужно сделать не так много.

Теперь избавимся от крона. Или Регламентного задания в терминологии 1С. Что бы сэкономить, естественно свое процессорное время, достаточно обратиться к системе событий. То есть при изменении данных вызывать обработку. Здесь 1С представляет супер возможности, план обмена, подписка на событие, и мой самый любимый, метод прописать в нужном месте вызов нашей обработки, чтоб заработало. И в комментарии к этой строчке ссылку на свой сайт.

Резюмируя, утверждаю, что выгрузку в другие системы правильнее строить по этому принципу, по событиям, в отличие от широко распространенных, но уже устаревших методов.

Эта выгрузка на сайты или первая часть марлезонского балета. Вторая, как получать события и (данные заказов например) в 1С на внутренней подсети с сайтов и маркетплейсов в стиле ритм-энд-блюз последует надеюсь вскоре, с приливом творческой энергии.