Этот сервис выступает адаптером между мастер-системой 1С и платформой. Его ключевая задача - принимать данные и команды в том виде, в котором их предоставляет 1С, трансформировать их в формат, удобный для сервисов платформы, и наоборот - подготавливать данные из платформы в том виде, который ожидает 1С.
Таким образом Connector1CService:
UpdateDirectoryAsync(pack): ResultPack1C - приём пакета обновлений каталога от 1С.GetAllProductsAsync(): ProductExt[] - выгрузка всех товаров в расширенном виде.GetAllCategoriesAsync(): CategoryExt[] - выгрузка всех категорий.GetFileExtIdsToNeedUploadAsync(take): string[] - список файлов, которые нужно дозагрузить.UpdateAllRemaindersAsync(pack): ResultPack1C - полная синхронизация остатков.UpdateRemaindersAsync(pack): ResultPack1C - частичное обновление остатков.UpdateOrderProductsAsync(order): OrdersPairExt - обновление состава товаров в заказе.UpdateOrdersStatusAsync(orders[]): void - пакетное обновление статусов заказов.UpdateOrderStatusToIssuedToCustomerAsync(orderStatus): OrderExt - проставить статус «выдан покупателю».GetOrdersUpdatedLPAsync(): OrderExt[] - выборка обновлённых заказов (long-polling).GetOrdersUpdatedAsync(): OrderExt[] - выборка обновлённых заказов (обычный вызов).GetLastOrderAsync(): OrderExt - получить последний заказ.QueryOrdersExternalAsync(orderIds[]): OrderExt[] - запросить заказы по их внешним идентификаторам.GetCustomers(userIds[]): OrderCustomer[] - получить сведения о клиентах по идентификаторам.Форматирование данных: Сервис не меняет бизнес-логику, он лишь «переводит» данные между внутренними моделями (DirectoryService, BusinessService и др.) и структурами 1С.
Двунаправленный обмен: Поддерживает как входящие запросы от 1С (обновления справочников, остатков, заказов), так и исходящие выборки (товары, категории, клиенты).
Буфер ошибок:
Методы возвращают ResultPack1C либо расширенные модели (OrderExt, ProductExt и т. п.), позволяя фиксировать результаты обмена и возможные ошибки синхронизации.
Гибкость: Благодаря такому адаптеру можно модифицировать логику работы платформы, не затрагивая 1С, и наоборот - менять 1С без переписывания микросервисов.
Connector1CService взаимодействует со следующими сервисами:
string Id //ИД товара во внешней системе (1С)
string ExtCode //Дополнительный внешний код
string Category //ИД категории
string Article //Артикул
string Name //Наименование
string NameSEO //SEO-наименование (переписывает Name)
string Description //Описание
string DescriptionSEO //SEO-описание (переписывает Description)
string[] BarCodes //Штрих-коды
int UnitCode //Код единицы измерения (ОКЕИ)
string BrandId //ИД бренда
FileRecordExt[] Fotos //Фото-файлы
FileRecordExt[] Files //Другие файлы
decimal Price //Базовая цена
float WeightKg //Вес, кг
Volume SizeM //Размеры (ширина/длина/высота, метры)
float VolumeM //Объём (альтернативное поле)
VATCodeEnum VATCode //Код НДС
TradeAgentSignEnum TradeAgentSign //Признак торгового агента
TradeAgent TradeAgent //Данные торгового агента
bool IsPublished //Признак публикации
bool IsDeleted //Признак удаления
Комментарий: полная витринная модель товара для обмена с 1С; маппится в Product платформы и обратно.
string Id //ИД категории во внешней системе
string ParentId //ИД родительской категории
int Order //Порядок сортировки на уровне вложенности
string Name //Название категории
bool IsDeleted //Признак удаления
Комментарий: соответствует структуре категорий в 1С; хранит иерархию через ParentId.
string Id //ИД бренда во внешней системе
string Name //Наименование бренда
FileRecordExt Logo //Логотип (файл)
bool IsDeleted //Признак удаления
Комментарий: модель бренда; позволяет передавать и обновлять логотипы.
string ProductId //ИД товара
string AttributeTypeId //ИД типа атрибута
string Value //Значение атрибута в строковом виде
Комментарий: связь «товар ↔ атрибут» с фактическим значением.
string Id //ИД типа атрибута
string CategoryId //ИД категории, к которой относится
ProductAttributeTypeEnum TypeEnum //Тип атрибута
string Name //Наименование атрибута
int Order //Порядок отображения
bool IsDeleted //Признак удаления
Комментарий: метаданные атрибута (название, тип, порядок сортировки).
string Id //ИД файла (во внешней системе)
string Tag //Тип/назначение файла (например, "изображение", "инструкция")
Комментарий: облегчённый дескриптор файла для обмена (только ID и тег).
long PackId //Идентификатор пакета синхронизации
BrandExt[] Brands //Справочник брендов
CategoryExt[] Categories //Справочник категорий
ProductAttributeTypeExt[] ProductAttributeTypes //Типы атрибутов
ProductExt[] Products //Товары
ProductAttributeExt[] ProductAttributes //Значения атрибутов
Комментарий: пакет синхронизации от 1С; передаётся в UpdateDirectoryAsync, чтобы массово обновить каталог.
long SiteId //Ид заказа на сайте
long ForwardFromSiteId //Ид исходного заказа на сайте (если пересоздавался)
string Id //Внешний ид заказа (мастер-система)
OrderStatusEnum Status //Статус заказа
string[] Discounts //Идентификаторы применённых скидок/промокодов
OrderProductExt[] Products //Состав заказа
decimal TotalCost //Итоговая стоимость заказа
long CreatedUnixTimestampMS //Момент создания (Unix ms)
long UpdatedUnixTimestampMS //Момент обновления (Unix ms)
OrderDeliveryExt Delivery //Информация о доставке
long CustomerId //Id покупателя
OrderCustomerExt Customer //Снимок данных покупателя на момент заказа
string Comment //Комментарий клиента
OrderPaymentExt PaymentInfo //Платёжные реквизиты (меняется только со стороны ИМ)
OrderPaymentStatusEnum PaymentStatus //Статус оплаты (меняется только со стороны ИМ)
OrderStatusEnum StatusInternal //Внутренний статус (меняется только со стороны ИМ)
bool IsPayed //Флаг «оплачено» (меняется только со стороны ИМ)
bool IsClosed //Флаг «закрыт» (меняется только со стороны ИМ)
Комментарий: основная «передаваемая» форма заказа между 1С и платформой; содержит как витринные, так и служебные поля.
string Id //Внешний ид товара (из каталога 1С)
string Name //Наименование
decimal Count //Количество, принятое к исполнению (по нему считается стоимость)
decimal CountInit //Количество, выбранное клиентом
decimal CostPerOne //Цена за единицу
decimal CostWithDiscountPerOne //Цена за единицу с учётом скидки
decimal TotalPrice //Итоговая стоимость позиции
Комментарий: позиция заказа в «внешнем» разрезе; включает и выбранное, и принятое количество.
OrderDeliveryTypeEnum Type //Тип доставки
decimal Price //Стоимость доставки
Coordinates Pin //Координаты точки доставки/самовывоза
string Address //Адрес
DeliveryInfo DeliveryInfo //Расчётная информация по доставке
Комментарий: снимок параметров доставки, включая результат тарифного расчёта.
OrderPaymentTypeEnum Type //Способ оплаты
string PaymentGate //Платёжный шлюз
OrderPaymentDetailsExt Payment //Платёж (сумма/идентификаторы/статус)
OrderPaymentDetailsExt Refund //Возврат (если был)
Комментарий: платёжный блок заказа в форме для обмена.
decimal Amount //Сумма
string PaymentInternalId //Внутренний ид платежа
string PaymentId //Ид у платёжного провайдера
string Status //Статус у провайдера
Комментарий: детали конкретного платежа/возврата.
long Id //Id пользователя (0 - если гость)
string Phone //Телефон
string Email //Email
string Name //Имя
string PhotoFile //Идентификатор фото-файла
DateTimeOffset? BirthDay //Дата рождения (опционально)
Комментарий: «снимок» данных покупателя, прикрепляется к заказу.
OrderExt OrderOld //Старый заказ
OrderExt OrderNew //Новый заказ
Комментарий: пара заказов - используется, когда заказ пересоздаётся с изменёнными параметрами.
long SiteId //Id заказа на сайте
string Id //Внешний ид заказа (мастер-система)
OrderStatusEnum Status //Статус заказа
string[] Discounts //Применённые скидки
OrderProductExt[] Products //Состав заказа
decimal TotalCost //Итоговая стоимость
long UpdatedUnixTimestampMS //Момент обновления (Unix ms)
OrderDeliveryExt Delivery //Информация о доставке
string Comment //Комментарий клиента
Комментарий: «патч» заказа со стороны мастер-системы (состав, статусы, суммы).
long SiteId //Id заказа на сайте
OrderProductExt[] Products //Новый состав товаров
decimal TotalCost //Итоговая стоимость
Комментарий: обновление только товарных позиций и суммы заказа.
long SiteId //Id заказа на сайте
string Id //Внешний ид заказа (мастер-система)
OrderStatusEnum Status //Новый статус заказа
Комментарий: точечное обновление статуса заказа.
string ProductId //Внешний ид продукта
decimal Value //Остаток
Комментарий: запись об остатке в формате обмена.
long PackId //Идентификатор пакета синхронизации остатков
RemainderExt[] Remainders //Массив остатков
Комментарий: пакет для полной/частичной синхронизации остатков.
Базы данных нет. Сервис - адаптер.