Структура обработки загрузки цен и остатков поставщика с примерами и комментариями

Публикация № 1256276

Разработка - Системная интеграция - Внешние источники данных

Обработка загрузка цены остатки.

В статье опишу структуру обработки по загрузке цен и остатков от поставщика с примерами.

Вводные

  1. Конфигурация Управление торговлей 11
  2. Состыкованный каталог номенклатуры с каталогом поставщика
  3. Нужно автоматически обновлять цены и остатки номенклатуры по данным поставщика
  4. Нужно организовать мониторинг автоматической загрузке

 

Порядок обработки

  1. Получение данных
  2. Декодирование
  3. Состыковка
  4. Запись
  5. Постобработка

 

Получение данных

 
 Вариации источников

 

В качестве примера рассмотрю получение данных от

  • sima-land (сайт, документация API), HTTP API c поддержкой JSON. Использовать буду v3 без аутентификации, v5 с аутентификацией.
  • samson(сайт, документация API), HTTP API c поддержкой JSON, доступ по токену.
  • steam-toys (сайт), HTTP файл XLS, доступ по basic аутентификации. Есть YML и CSV, но по полноте данных и компактности в данном случае XLS лучше.

В случае sima-land запросом можно получить информацию по списку id, список 50 элементов, при небольшом количестве товаров оптимально использовать этот подход. При большем объеме возможен вариант использования фильтра по группе товаров.

Минусом конкретной реализации API является то что получаем всю карточку товара, хотя нам нужны только остатки.

 
 Реализация запроса по списку id

 

У samson остатки/цены получить можно только все, ответ разбит на страницы.

 
 Реализация запроса по страницам

 

У steam-toys один файл

 
 Реализация получения файла

 

Декодирование

В результате декодирования нужно получить массив с данными, минимум:

Для остатков

  • id товара
  • склад
  • количество

Для цен

  • id товара
  • вид цены
  • цена

Для остатков информация может быть дополнена остатками "всего" и "в пути".

Для цен информация может быть дополнена валютой (в минимуме все в руб) и курсом.

 

Перед распределением по документам можно формировать временную скомпонованную таблицу, можно просто перебирать декодированный массив и писать в документы

 
 Декодирование JSON

 

Условием нормального декодирования  XLS является наличие в первой строке заголовков соответствующим требованиям именования колонок таблицы значений. Прайс листы с группировками, картинками раскрасками и подобным нужны для удобства ручной обработки (формирования заказа в том же файле), вопрос формирования прайс листа технического формата можно решить административно.

 
 Чтение XLSX средствами платформы

Состыковка

Состыковку делаю по артикулу номенклатуры поставщика, при наличии идентификаторов со стороны поставщика это оптимальный вариант.

Перед состыковкой получаю таблицу значений и индексирую её по колонке "Артикул". Рассматриваю вариант без характеристик.

 
 Реализация получения номенклатуры поставщика и состыковки

 

Запись

Записи результата загрузки несколько, оптимальный выбирается из ситуации в базе и требований заказчика

Остатки
  • Документом оприходование излишков товаров товаров
    • оприходуется на "виртуальный склад", видно в подборе заказа поставщику при использовании группы складов
    • по складу может стоять ордерная схема для оприходования и при проведении только этого документа остаток не будет виден в подборе
    • удобно выгружать типовыми обработками на сайт (как правило берут данные из РН "Свободные остатки")
  • Документом заказ поставщику
    • ставится "к поступлению" на основной склад, в подборе видно при "простом" варианте отображения подбора
    • можно указать плановую дату поступления на склад, что лучше чем просто остаток
    • для выгрузки на сайт добавляется запрос к РС "ДоступныеОстаткиПланируемыхПоступлений", в типовом обмене 
  • Документом корректировка регистров в РН "Свободные остатки"
    • из преимуществ перед записью документами то что меньше времени на обработку
    • основной минус в "поломке" баланса учета
  • При использовании Мегапрайс (помощник закупок) записать данные в его регистр напрямую.
Цены
  • Документом Установка цен номенклатуры
    • Цены продажи
    • Базовые цены для расчета цен продажи
    • В упрощенном варианте в том числе закупочные если поставщик один
  • Документом Установка цен номенклатуры поставщика
    • Цены закупки
  • Документом заказ поставщику, совместно с регистрацией цен. Для отсутствия остатков по РН "Расчеты с поставщиками" можно выбрать хоз операцию "Прием на хранение с правом продажи", в строках ТЧ "Товары" указать вид цен поставщика.
  • При использовании Мегапрайс (расчет цен) записать данные в его регистр напрямую

 

При фиксации записи данных нужно определится фиксируете только последнее состояние или историю. При фиксации истории уточните какой период и с какой точностью.

Результат упущения данного вопроса база в 50+ГБ 90 процентов которой были изменения по свободным остаткам через корректировку регистра. По отзывам клиентов в последних релизах вендор поправил алгоритм.

 

Постобработка

После загрузки цен как правило рассчитывают цены продажи. основная проблема в том что механизм расчета цен применяемый в документе Установка цен номенклатуры жестко завязан за форму документа, которую нельзя получить в серверном контексте, решением является эмулирование формы через структуру, решение вопроса в статье //infostart.ru/public/1257236/.

При сложном варианте расчета, для которого функционала типовой УТ не хватает имеет смысл найти/разработать свой механизм и запускать его после успешной загрузке.

 

После загрузки остатков запускают обновление остатков/статусов товаров. Типового по этому поводу в УТ 11 не встречал.

 

Мониторинг

 

Варианты

  • От ошибки
    • при ошибке загрузки отправлять уведомление на почту или в мессенджер
    • при ошибке писать в журнал регистрации, отдельно запускать обработку анализа журнала регистрации и отправлять уведомления об ошибках
  • От отсутствия успешного выполнения (если система не получает пинг в ожидаемое время, он посылает вам предупреждение)
    • Использовать https://healthchecks.io/
    • Использовать Zabbix и настроить в нем параметр мониторинга

 

Варианты реализации

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

 

Итог

Реализовать механизм загрузки не сложно. Проблемы возникают при некорректном формате данных и "сложной" постобработке.

 

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

Специальные предложения

Оставьте свое сообщение

См. также

.Net в 1С. На примере использования HTTPClient, AngleSharp. Удобный парсинг сайтов с помощью библиотеки AngleSharp, в том числе с авторизацией аля JQuery с использованием CSS селекторов. Динамическая компиляция Промо

Практика программирования WEB v7.7 v8 Бесплатно (free)

Часто приходится парсить сайты, в том числе с авторизацией, перескакивая со страницы на страницу по ссылкам. Тот, кто занимался вэб программированием, знает, как удобно использовать JQuery и CSS селекторы. На .Net написана очень удобная библиотека AngleSharp. Я покажу, как с её помощью можно значительно облегчить себе труд.

10.03.2016    57306    Serginio    33    

ВИДы на жительство. Использование внешних источников данных в прикладных задачах

Внешние источники данных v8 Бесплатно (free)

На Infostart Meetup Novosibirsk выступил ведущий разработчик МКК «Ваш Инвестор» Вадим Фоминых. Он на практических примерах показал коллегам, как его команда использует внешние источники данных в прикладных задачах, призвал не отказываться от этого инструмента и объяснил – почему.

19.04.2021    1320    Shmell    4    

Правила обмена больше не нужны

Внешние источники данных Обмен через XML Перенос данных из 1C8 в 1C8 Распределенная БД (УРИБ, УРБД) WEB v8 Бесплатно (free)

Есть несколько общепринятых подходов к написанию обмена между 1С-системами, каждый из которых упирается в длительное изучение технологии, мучительную отладку правил конвертации и написание большого количества сервисного кода, в котором потом тяжело разобраться. О принципах работы универсального фреймворка liteExchange, который реализует быстрые обмены между 1С и внешними системами, и берет на себя всю техническую обвязку по стандартному преобразованию данных, на INFOSTART MEETUP Saint Petersburg.Online рассказал Николай Крылов.

17.03.2021    7991    Nikola23    35    

Как отправить сообщение Telegram в группу?

WEB v8 Россия Бесплатно (free)

Отправка сообщения в группу Telegram.

01.03.2021    1110    kite2    2    

Online телефонный справочник из 1С: Зарплата и управление персоналом Промо

WEB Управление персоналом (HRM) Управление персоналом (HRM) v8 ЗУП3.x Россия Бесплатно (free)

В интернете представлено много реализаций online телефонных справочников организаций. Есть справочники, которые использует для хранения информации базу Active Directory (LDAP), есть справочники, которые реализованы с использованием СУБД (например, MySQL). Но я не нашел справочника, который использует информацию из базы 1С. Далее я рассмотрю данную разработку.

10.03.2017    26718    ruha    21    

Доступ из базы 1С к стандартному интерфейсу Odata базы 1С, в которой заведен пользователь

WEB v8 Россия Бесплатно (free)

Есть база, с пользователем/паролем, нужно подключиться к Odata из другой базы 1С, получить элементы справочника.

24.02.2021    763    user823999    6    

Интеграция с API WB (Wildberries). Создание карточки товара (спецификации)

WEB v8 1cv8.cf ИТ-компания Россия Бесплатно (free)

Опыт интеграции с API WB (Wildberries), опыт создания карточки товара, получение токенов API WB.

18.01.2021    14188    jenyavp    45    

DaJet Exchange: обмен данными с 1С (часть 1)

Внешние источники данных v8 Бесплатно (free)

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

11.01.2021    3110    zhichkin    14    

Кэширование COM-соединения. Три способа Промо

Практика программирования Перенос данных из 1С7.7 в 1C8.X Внешние источники данных WEB v8 Россия Бесплатно (free)

Статья о трех способах кэширования COM-соединения в 1С:Предприятии 8.x.

11.04.2013    42534    YPermitin    41    

HTML редактор/editor (Wysiwyg) для WebKit 1С (CMS, B2B), альтернатива TinyMCE и стандартному ФорматированныйДокумент

WEB Интеграция v8 v8::УФ 1cv8.cf Бесплатно (free)

Suneditor - отличная замена HTML редактору TinyMCE (бесплатному), в публикации с открытым кодом подключим его в 1С с WebKit, скачать HTMLeditor обработку можно бесплатно.

28.12.2020    2519    SizovE    25    

Выгрузка HTML описаний с картинками (Base64) товаров на сайт/интернет-магазин/B2B, разберем регулярное выражение получения тега body, ПолучитьHTML, ФорматированныйДокумент

Практика программирования WEB Универсальные функции v8 v8::УФ 1cv8.cf Бесплатно (free)

Редактор HTML платформы 1С простой и очень удобный для небольших задач, однако ПолучитьHTML возвращает отдельно картинки и отдельно целиком HTML страницу со ссылкой на имена этих картинок, что неудобно для отправки в базу данных сайта/интернет-магазина/веб-приложения/B2B. Разберем на открытом коде, как решить эту проблему, напишем универсальную функцию получения значения любого тега HTML на регулярных выражениях. Бонусом - возможность редактировать теги HTML в текстовом режиме.

24.11.2020    909    SizovE    4    

Как сделать интеграцию (обмен) с интернет-магазином? Пошаговый план действий (Часть 1)

WEB v8 1cv8.cf УУ Бесплатно (free)

C 2011 года я занимаюсь интеграцией с интернет-магазинами и за это время, наверное, повидал все. Делал интеграцию как «культурными», так и «экзотическими» способами. Количество магазинов исчисляется сотнями. В этой серии статей я буду делиться своим опытом, а также выкладывать какие-то полезные наработки.

19.11.2020    5445    markbraer    11    

Заготовка для загрузки файлов по ftp Промо

WEB Перенос данных из 1C8 в 1C8 v8 1cv8.cf Бесплатно (free)

3 процедуры и 1 макет

03.06.2013    30996    anig99    6    

Чтение вложенных свойств Структур Структуры, Соответствий, свойства через точку, разбор JSON

Практика программирования WEB Интеграция Универсальные функции v8 Бесплатно (free)

JSON: {user.device.type} - как получить значение {type}? А если вложенность значительно глубже? Как проверить, что оно заполнено или удалить его - всё это в публикации с открытым кодом и даже без рекурсии. Бонусом разбор дерева значений - ДанныеФормыЭлементДерева, СтрокаДереваЗначений.

17.11.2020    1879    SizovE    2    

Web Dashboard (мобильная и десктопная версия): оптимальная схема организации взаимодействия с зоопарком систем

WEB v8 Бесплатно (free)

Задача: из множества систем (1С:ERP, 1C:CRM, Кронос:WMS, 1С:Розница, 1С:УПП...) оперативно и онлайн осуществлять мониторинг на телефоне/десктопе/планшете/телевизоре бизнес-аналитику в дашборде для директора. Рассмотрим в статье, как правильно интегрировать между собой все базы, какие для этого инструменты использовать.

10.11.2020    9372    SizovE    2    

Отладка модуля ДиадокПро

WEB v8 1cv8.cf Бесплатно (free)

В обработке ДиадокПро все дополнительные модули встроены во внешние обработки, которые хранятся в макетах. Это усложняет процесс самостоятельной интеграции, так как теряется возможность попасть в них в режиме отладки. Но не всё так страшно, поэтому ниже инструкция)

30.10.2020    2579    Максим-777    14    

Перенос данных из учетных программ Парус в конфигурации 1С Промо

Внешние источники данных v7.7 v8 БП2.0 ЗУП2.5 ЗКБУ БГУ 1С7:Бух 1С7:ЗиК 1С7:ББУ Россия БУ Госбюджет Бесплатно (free)

Статья посвящена анализу процессов переноса данных из учетных программ Парус в конфигурации 1С.

05.11.2012    53209    sklowsky    16    

Обмен с сайтом посредством Post-запроса, json

WEB v8 1cv8.cf Бесплатно (free)

Задача - передавать на сайт объекты с наименованием и уникальным идентификатором (УИ), которые изменяются в 1С. Также нужно сохранять историю отправленных пакетов.

29.10.2020    4646    John_d    26    

Структура обработки загрузки номенклатуры поставщика с примерами и комментариями (часть 1)

Внешние источники данных v8 УНФ Бесплатно (free)

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

12.10.2020    970    malikov_pro    0    

Организация HTTP публикации каталога товаров используя PostgREST

WEB v8 1cv8.cf Бесплатно (free)

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

05.10.2020    1270    malikov_pro    2    

Сканируем без сканера или MXL to JPG Промо

Внешние источники данных Универсальные функции Печатные формы документов v8 1cv8.cf Бесплатно (free)

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

24.05.2012    34560    shakmaev    47    

Интеграционная прослойка(middleware) на Golang. Часть 5 - Обмен с 1С через HTTP-сервисы платформы

WEB v8 Бесплатно (free)

В этой статье научим прослойку отправлять данные в 1С, для этого используем HTTP-сервисы платформы. Обменяемся данными с новым справочником Клиенты. Но главное создадим HTTP-сервис для получения сообщений из очереди RabbitMQ.

28.09.2020    2057    dmitry-irk38    4    

Отладка http сервиса

WEB v8 Бесплатно (free)

При разработке http сервиса возникает ситуация, а как протестировать http сервис? Создали мы сервис, настроили шаблоны, передали, если нужно параметры, открываем браузер заполняем строку подключения и БАХ, ошибка. Что делать?

23.09.2020    3508    hpi    10    

Учимся создавать http сервисы (часть вторая). Передача параметра в http сервис

WEB v8 1cv8.cf Бесплатно (free)

Пошаговое руководство по созданию http-сервиса (часть вторая). Передача параметра в http сервис.

22.09.2020    6687    hpi    7    

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

WEB v8 1cv8.cf Бесплатно (free)

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

22.09.2020    1644    malikov_pro    4    

Формирование списка документов и скачивание печатной формы документа через веб-сайт с использованием HTTP-сервиса, плюс особенности авторизации

Практика программирования Обмен данными 1С WEB v8 1cv8.cf Бесплатно (free)

В статье показан пример, как реализовать формирование списка документов клиента/пользователя по коду, а затем скачать его (документа) печатную форму по ссылке

18.09.2020    1272    R_o_n_n_y    3    

Формирование HTTP запроса формата multipart/form-data с двоичными данными, используя ПотокВПамяти

WEB v8 1cv8.cf Бесплатно (free)

В статье опишу вариант формирования запроса

11.09.2020    3988    malikov_pro    11    

Ферма приложений на Kubernetes

WEB v8 Бесплатно (free)

При эксплуатации большого количества информационных систем 1С, предоставляющих интернет-сервисы, возникают проблемы, связанные с зависимостью от производительности и стабильности веб-сервера. Как объединить отдельно стоящие веб-сервера с помощью платформы Kubernetes для централизованного мониторинга всех опубликованных интернет-сервисов на конференции Infostart Event 2019 Inception рассказал программист компании BIA Technologies Владимир Кирбаба.

24.08.2020    1963    ComboBoy    1    

Использование шаблонного процессора для формирования HTML страниц

WEB v8 1cv8.cf Бесплатно (free)

В статье опишу использование шаблонного процессора Handlebars запущенного на Node.js

24.08.2020    1816    malikov_pro    26    

Загрузка или обновление файла на яндекс диске через rest-api

Практика программирования Файловые протоколы обмена, FTP WEB v8 Бесплатно (free)

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

12.08.2020    3197    pavelpribytkin96    10    

Самый простой парсинг и обработка веб-страниц в 1С

WEB Универсальные функции v8 1cv8.cf Бесплатно (free)

Рассмотрим самый простой парсинг веб-страниц средствами платформы 1С и еще некоторые полезные приемы работы с веб-страницами.

07.08.2020    8853    YPermitin    22    

Загрузка или обновление файла на гугл диске

Практика программирования Файловые протоколы обмена, FTP WEB v8 1cv8.cf Бесплатно (free)

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

06.08.2020    2272    pavelpribytkin96    6    

Загрузка данных из Algoritm-S в конфигурацию "Бухгалтерия предприятия 3.0 (3.0.79.21) "

Розничная торговля Внешние источники данных v8 БП3.0 Розничная и сетевая торговля (FMCG) Фармацевтика, аптеки Россия Бесплатно (free)

В статье представлен шаблон обработки для загрузки некоторых данных из программы Algoritm-S в конфигурацию "Бухгалтерия предприятия 3.0 (3.0.79.21)

04.08.2020    1592    RPGrigorev    0    

Использование Yandex Translate (Яндекс.Переводчик)

WEB v8 1cv8.cf Бесплатно (free)

В статье опишу вариант подключения и использования Yandex Translate.

08.07.2020    5352    malikov_pro    8    

Интеграции с сервером SQL. Быстро и просто

Интеграция Внешние источники данных v8 1cv8.cf Бесплатно (free)

Решаем вопросы экспорта/импорта данных в базы отличного от 1С происхождения.

06.07.2020    3227    Infector    4    

Когда хотим знать IP клиента...

WEB v8 Бесплатно (free)

В процессе разработки web приложения на 1С, и это не шутка))), а пожелание заказчика, возникла ситуации когда понадобилось знать, с какого IP подключался клиент.

03.07.2020    8036    IMihalev    10    

Ограничение доступа к HTTP публикациям 1С сервера используя NGINX

WEB v8 1cv8.cf Бесплатно (free)

В статье опишу вариант ограничения доступа к HTTP публикациям 1С сервера используя NGINX.

02.07.2020    8139    malikov_pro    9    

Вариант использования документа "Операция по Яндекс.Кассе" для других сервисов по оплате через интернет

WEB v8 1cv8.cf Россия Бесплатно (free)

В статье рассмотрю организацию эквайринга в УТ 11.4 и доработки для создания заказов на оплату к стороннему сервису, как пример Сбербанк.

24.06.2020    1696    malikov_pro    3    

Работа с AliExpress через API

WEB v8 Бесплатно (free)

В публикации опишу подход работы с API AliExpress и примеры кода.

23.06.2020    7479    malikov_pro    32    

Диадок. Подключаемый модуль. Отладка

Интеграция Внешние источники данных v8 1cv8.cf Бесплатно (free)

Небольшой пример, как работать с подключаемым модулем Диадок (для изменения УПД перед выгрузкой на сайт Диадок.). Отладка подключаемого модуля, если не смогли подключить стандартную отладку.

17.06.2020    8762    John_d    10    

История создания успешной системы чат-ботов на 1С

WEB v8 Бесплатно (free)

Использование чат-ботов в мессенджерах позволяет автоматизировать многие сложные бизнес-процессы путем диалога с системой через виртуального собеседника. О том, как создать универсальную систему ботов с бэкендом на 1С, работающую в Telegram, Viber и Facebook Messenger одновременно, на конференции Infostart Event 2019 Inception рассказал программист-фрилансер Константин Гейнрих.

21.05.2020    8904    CyberCerber    15    

Парсинг html страниц с выводом информации через JavaScript с использованием Selenium

WEB v8 1cv8.cf Бесплатно (free)

Есть девочки как девочки, есть мальчики как мальчики, есть сайтики как сайтики, но странички их обманщики. В целях сохранить информацию, от автоматизированного сбора, многие ресурсы пытаются защитить ее. Один из таких способов - вывод информации на странице через JavaScript. При получении такой страницы в 1С, JavaScript не успевает вывести необходимые данные, и в 1с получаем практически пустую страницу. В статье приведу пример разработки, для парсинга таких страниц, без регистрации и смс.

20.05.2020    7034    platonov.e    25    

Интеграция 1С и CMS WordPress посредством Rest API сайта. Шаг третий, WooCommerce, публикация категорий товаров

WEB v8 1cv8.cf Бесплатно (free)

Интеграция 1С и CMS WordPress посредством функционала Rest API. Используем только язык программирования 1С и штатный функционал Rest API предоставляемый CMS, без дополнительных библиотек и плагинов. Процедуры и функции публикации категорий товаров в магазин WooCommerce, с комментариями внутри.

13.05.2020    4043    osivv    3    

Интеграция 1С и CMS WordPress посредством Rest API сайта. Шаг второй, публикация картинок

WEB v8 Бесплатно (free)

Интеграция 1С и CMS WordPress посредством функционала Rest API. Используем только язык программирования 1С и штатный функционал Rest API предоставляемый CMS, без дополнительных библиотек и плагинов. Процедуры и функции передачи фото из 1С, с комментариями внутри.

13.05.2020    2622    osivv    0    

Интеграция Camunda BPM и 1С

WEB Интеграция v8 Бесплатно (free)

Быстрый старт. Только практические примеры. Установка, запуск и публикация бизнес-процесса на сервере Camunda BPM. Управление бизнес-процессами из 1С при помощи Camunda REST API.

12.05.2020    5404    zhichkin    30