Организация данных и вариант обработки для организации обмена с сайтом

25.10.20

Интеграция - Сайты и интернет-магазины

В статье опишу вариант организации данных и обработки для обмена с сайтом.

Вводные

  • Конфигурация 1С: Управление торговлей 11
  • Сайт с возможностью обмена по API и отсутствием хранения внешних ключей, например WooCommerce (документация), PrestaShop (документация)
  • Требуется организовать
    • обмен справочниками
    •  обновление цен/остатков
    • загрузку заказов
  • Настройка обмена с сайтом вынесена в отдельный справочник

Реализация

Общее описание

Храню внешних ключи в регистре сведений. Регистрацию изменений сделал за счет регистра сведений

Перед отправкой данных проверяю есть ли ключ для объекта 

  • если есть то формирую тело запроса, проверяю на совпадение с хешем,
    • если не совпадает то использую PUT запрос 
  • если ключа нет, то использую POST запрос.

Если элемент успешно обработан, то

  • при добавлении фиксирую его ключ
  • фиксирую отправленный хэш
  • удаляю регистрацию
 
 ос_ОбработкаДанныхОбъекты.ОбработатьСостояниеОтправки()

 

Хранение внешних ключей

Использую регистр сведений "ос_ИдентификаторыОбъектов"

  • Измерения
    • НастройкаОбмена
    • ТипДанных
    • Объект
  • Ресурсы
    • Идентификатор, тип "Число", можно использовать и строку при необходимости, обычно во внешних системах ключ типа int()

 

Хранение хешей

Использую регистр сведений "ос_ОтправленныеДанные"

  • Измерения
    • НастройкаОбмена
    • Объект
  • Реквизиты
    • СтрокаДанныеХэш
    • Дата
 
 ос_ОбработкаДанныхОбъекты.ЗаписатьОтправленныеДанные()

 

Хранение изменений

Прочитав статью //infostart.ru/1c/articles/899200/ решил написать свой неблокируемый вариант. Общий подход: пишем изменения в регистр с "ТекущаяДата()", для отправки забираем изменения "ТекущаяДата() - 1", тем самым записи с которыми работам при обмене не пересекаются с записями которые формируются в ходе работы базы.

Для объектов использую регистр сведений "ос_ИсторияИзменений"

  • Измерения
    • НастройкаОбмена
    • Дата
    • Тип
    • Объект
 
 ос_ОбработкаДанныхОбъекты.ПолучитьМассивИзмененныхОбъектов()

 

Для регистров сведений формирую отдельные регистры "ос_ИсторияИзмененияОстатков" и "ос_ИсторияИзмененияЦен"

 

Выгрузка иерархии

Для выгрузки нужна была таблица групп номенклатуры отсортированная по уровням иерархии, вариант решения через транзитивное замыкание, описание в //infostart.ru/1c/articles/899200/.

 
 ПолучитьТЗГруппыНоменклатуры

 

Проект на GitHub (ссылка).

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

 

Благодарю за внимание.

См. также

Сайты и интернет-магазины 1С v8.3 1С:Розница 2 Розничная и сетевая торговля (FMCG) Россия Платные (руб)

Интеграция сервиса dolyame.ru с 1С:Розница 2.3 для приема платежей в рассрочку. Готовое интеграционное решение для оплаты покупок Долями в 1C:Розница 2.3. Реализовано в виде расширения. Интеграция сервиса dolyame.ru для приема платежей в рассрочку. Поддерживает работу от разных юридических лиц.Работа: в составе РИБ, отдельно от РИБ, тонкий, толстый клиент, web-клиент (через интернет-браузер).

22440 руб.

19.12.2023    8529    50    13    

48

Сайты и интернет-магазины 1С v8.3 1С:Розница 3.0 Розничная и сетевая торговля (FMCG) Россия Платные (руб)

Готовое интеграционное решение для оплаты покупок Долями в 1C:Розница 3.0. Реализовано в виде расширения. Интеграция сервиса dolyame.ru для приема платежей в рассрочку. Поддерживает работу от разных юридических лиц. Работа: в составе РИБ, отдельно от РИБ, тонкий, толстый клиент, web-клиент (через интернет-браузер). Интегрировано в Чек ККМ, Рабочее место кассира (РМК)

24000 руб.

02.11.2024    1789    13    1    

11

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь 1С v8.3 1C:Бухгалтерия 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    20216    26    24    

22

Сайты и интернет-магазины Интеграция WEB-интеграция 1С v8.3 1C:Бухгалтерия Управленческий учет Платные (руб)

Решение осуществляет синхронизацию задач Битрикс24 и 1С, что позволяет в одной системе ставить задачи, контролировать выполнение всего пула задач с группировкой по ответственным и проектам, формировать управленческие отчеты по работе сотрудников (загрузка, просроченные задачи), уведомлять сотрудников о ходе выполнения задач посредством чат-бот Telegram

7200 руб.

04.05.2021    21784    13    19    

19

Сайты и интернет-магазины Программист Бизнес-аналитик Пользователь 1С v8.3 1C:Бухгалтерия 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Управленческий учет Платные (руб)

Программа позволяет одним кликом настроить сбор цен ваших конкурентов или дилеров в интернете. Автоматически собирает данные результата поиска Яндекса (вам не придется вручную добавлять каждый сайт, за которым нужно следить). Обновление цен происходит по заданному вами расписанию автоматически. Можете легко отслеживать позиции вашего сайта в Яндексе по ключевым словам и фразам. Этот инструмент даст вам лучшее понимание того, как ваша SEO-стратегия влияет на видимость вашего сайта в поисковой выдаче, и поможет вам улучшить контент и структуру сайта для повышения его позиций. Функция доступна во всех тарифах.

19950 руб.

23.09.2019    31815    9    14    

31

Сайты и интернет-магазины 1С v8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 Россия Платные (руб)

Модуль выгрузки товаров услуг из 1С для сайта "Авито" раздел "Автозагрузка" выполнена в виде обработки. Обработка подходит для конфигураций УТ, УНФ и Розница. Данная обработка позволяет создавать шаблон с объявлениями для "Авито" - "Автозагрузка".

4200 руб.

07.06.2022    19872    45    56    

47
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. serg-lom89 82 22.09.20 08:54 Сейчас в теме
" Регистрацию изменений сделал за счет регистра сведений"
а чем план обмена не подходит?
2. malikov_pro 1345 22.09.20 09:16 Сейчас в теме
(1) Из статьи указанной в публикации
"Классическое решение проблемы блокировки
Какие проблемы возникают с планами обмена?

На операции ВыбратьИзменения(), в случае большого UPDATE происходят блокировки, следовательно, по этим объектам не проходят удаления и новая регистрация изменений."

Решил сделать удобный для себя инструмент, после "открыл" для себя в конструкторе запросов "Отображать таблицы изменений".
Для объектов работает, по остаткам оверхед получается. Все равно делается запись в индексированную таблицу, в моем случае записью управляю сам и могу группировать. Остатки могут меняться как на складе так и при изменении графика поставок.
3. Pixar0000 23.09.20 10:42 Сейчас в теме
название статьи "Организация данных и вариант обработки для организации обмена с сайтом"
после просмотра возникает вопрос, а что за "движок" на котором крутится сайт?
+ функция ПолучитьТЗГруппыНоменклатуры - явно чужая, если исходить из текста предыдущих
4. malikov_pro 1345 23.09.20 10:50 Сейчас в теме
(3) Писалось под REST API для битрикса https://infostart.ru/1c/articles/1185983/.
для WooCommerce и PrestaShop подойдет с их встроенным HTTP API.
"явно чужая" - она логически связана если дерево с внешними ключами выгружать.
Будет заказчик кому эта технология подойдет (объекты можно и через узел обмена прогнать), то допишу адаптеры, пока либо CML2 либо SQL через HTTP обертки.

Вариант сделать API прайса на PostgREST https://infostart.ru/1c/articles/1217831/, эта наработка пригодится.
Оставьте свое сообщение