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

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) Россия Платные (руб)

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

22440 руб.

19.12.2023    6474    41    11    

37

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

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

24000 руб.

02.11.2024    935    4    0    

5

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

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

54000 руб.

10.09.2024    1141    2    4    

3

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

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

36000 руб.

03.08.2020    18812    21    22    

18

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

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

19950 руб.

23.09.2019    31402    8    12    

30

Прайсы Оптовая торговля Сайты и интернет-магазины Программист Пользователь Платформа 1С v8.3 Оперативный учет Управляемые формы 1С:Управление торговлей 11 Транспорт, автопарки, такси Управленческий учет Платные (руб)

Внешняя обработка адаптирована для 1C: УТ 11, предназначена для наполнения вашей базы данных товарами и сопутствующей информацией, предоставляемой b2b.4tochki.ru, обновления остатков и цен.

8160 руб.

31.01.2020    32135    15    7    

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

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

Решил сделать удобный для себя инструмент, после "открыл" для себя в конструкторе запросов "Отображать таблицы изменений".
Для объектов работает, по остаткам оверхед получается. Все равно делается запись в индексированную таблицу, в моем случае записью управляю сам и могу группировать. Остатки могут меняться как на складе так и при изменении графика поставок.
3. Pixar0000 23.09.20 10:42 Сейчас в теме
название статьи "Организация данных и вариант обработки для организации обмена с сайтом"
после просмотра возникает вопрос, а что за "движок" на котором крутится сайт?
+ функция ПолучитьТЗГруппыНоменклатуры - явно чужая, если исходить из текста предыдущих
4. malikov_pro 1328 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/, эта наработка пригодится.
Оставьте свое сообщение