Лупонос Дмитрий, разработчик 1С, эксплуататор 1С, настройка серверов для 1С
Выполнение обменов — существенная часть разработки. Дело в том, что сама база данных представляет для собственника бизнеса ценнейший ресурс.
С помощью обменов появляется возможность делиться частью информации со сторонними сервисами, например OZON, Yandex маркет, сайтом на Bitrix, Квартплата24 и прочими.
Кроме того, сведения передаются в надзорные организации, например ФНС, Пенсионный фонд, статистика и прочие.
REST API
Для обмена со внешней системой, в большинстве случаев, используется REST API — документированный способ обмена структурами, называемыми «сообщения», которые содержат пакет информации из отправляющей системы в принимающую.
Рассмотрим на примере WMS, то есть Системы управления складом:
- Компания выводит складской учет под внешнее управление, что позволяет использовать, во-первых, инфраструктуру склада — сотрудников, оборудование, логистические преимущества;
- Внешний склад исполняет поручения Компании по приемке и отгрузке товаров, так же обеспечивает соответствующее хранение;
- При приемке товара в учетной системе 1С создается документ «Поступление (приобретение) товаров и услуг» (ПТУ) и документ «Приходный (складской) ордер на товары» (ПСО);
- При отгрузке товара создается документ «Реализация Товаров Услуг» (РТУ) и документ «Расходный (складской) ордер на товары» (РСО);
Склад уведомляет компанию о поступлении специальным пакетом, содержащим в себе номер входящей накладной, перечнем товаров с количеством, сериями. Компания принимает через каналы связи отправленный пакет, как правило в формате JSON, который может внутри содержать прикрепленные документы, например в формате XML. В системе 1С однозначно идентифицируются данные пакета и создаются ПТУ и ПСО без участия пользователя, в автоматическом режиме.
В идет приемка данных о состоянии полученного товара, например они будут такие: «Товар получен на склад», «Товар размещен на складе» — в этом варианте могут быть дополнительные данные, например складская ячейка. В результате ПСО меняет статус с «К приемке» на «Получен» и далее на «Принят» с отражением в 1С особенностей размещения товара тем же методом получения пакетов данных из внешней системы.
При отгрузке товара при создании РТУ, как правило, после успешной проверки остатков товаров, в системе 1С автоматически формируется РСО со статусом «К отгрузке». В результате в WMS улетает пакет данных, содержащий ключи Компании, Организацию отправитель, Покупателя, Грузополучателя и перечень товаров к отгрузке. Склад подтверждает поручение и начинает собирать товар в зоне отгрузки и упаковывать (опалечивать) его. В дальнейшем остается только получать статус формирования товара (В процессе отгрузки) и зафиксировать сборку партии товара (Подготовлен), а так же получить сообщение «Отгружен» когда Грузополучатель забрал товар либо товар был отправлен транспортной компанией.
В этом случае требуется отправить электронные копии документов на транспортировку товара и Торг-12/Счет-фактуру или УПД. В зависимости от соглашения со складом бухгалтерские документы отправляются Покупателю ЭДО, возможно еще REST API WMS позволяет отправлять эти документы в складскую систему для предоставления перевозчику.
Обмен завершен
Конвертация данных 1С
Для связи внутри инфраструктуры 1С существует удобный механизм обмена — CommerceML. Он работает на объектном уровне, где объект, к примеру, это элемент справочника «Номенклатура», документ «Реализация товаров услуг» и позволяет гибко настраивать передачу данных, к примеру, между Бухгалтерией Предприятия 3.0 и Управлением Торговлей 11.5. Такой обмен уже зашит в эти системы и при обновлении объектов меняется и сам формат обмена.
Для настроек таких обменов используется конфигурация Конвертация Данных 3.0 и ее более старая версия Конвертация Данных 2.0 для предыдущих версий 1С, вплоть до 7.7.
В рамках данной статьи не смогу показать даже минимальный процесс таких обменов, могу сказать только одно — таким путем можно передать из одной базы данных все, что угодно, при этом полностью или частично и разместить в базе приемнике с обработкой по произвольному алгоритму. Например документ «Выпуск блюд» одной конфигурации может стать документом «Поступление товаров из производства» другой конфигурации.
Шина данных
Для консолидации различных обменов и снижением нагрузки на оборудование серверной части 1С используется шина данных. По-сути шина данных это коннектор, прокси для сообщений обменов между различными системами. Она имеет свой способ хранения объектов, которые сопоставляются с различными внешними системами каждый по своему правилу.
Нагрузка снижается за счет уменьшения до одного обмена информацией между шиной данных и базой данных 1С с разовой передачей всех необходимых пакетов.
В дальнейшем шина данных по алгоритму и расписанию передачи данных во внешнюю систему или запросу из внешней системы передает в рамках способов обмена именно с этой внешней системой данные, которые были получены и принимает данные, которые должны быть приняты.
Резюмирую: Шина данных удобный механизм для связи между набором внешних систем обмена данными, который снижает нагрузку на 1С, является следующим шагом развития взаимодействия базы данных 1С и неограниченного набора внешних систем, с которыми происходит обмен.