Концепция загрузки данных

Общая концепция загрузки данных из внешних источников в учетную систему 1С Предприятия.

Схема концепции загрузки данных

Схема концепции загрузки данных

При загрузке данных есть две задачи:

  1. Чтение исходных данных из источника, не важно какой источник. Файл Excel, файл XML, API внешней системы;
  2. Запись данных, полученных из внешнего источника, в учетную систему.

Чтение исходных данных, всегда происходит в модуле обработки данных, запущенным через систему управления задачами. Модуль читает исходные данные из источника, данные у нас есть, далее возможны два варианта:

  1. Записать данные в учетную систему сразу, в этом же модуле;
  2. Из полученных данных создать универсальную модель полученных данных и передать ее на запись в модуль сервисной обработки, в которой описана логика записи объекта в учетную систему из универсальной модели.

Вариант № 1 более быстрый, так как не создается промежуточная универсальная модель объекта. В некоторых случаях стоит так и сделать. Например делаем загрузку списка брендов из таблицы Excel, загружаем список всегда из файла одного формата и больше никак загружать не планируем.

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

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

Выбор настроек записи. Для каждого сервисного модуля, создаем профили, с различными настройками записи. Модуль один и тот же, но настройки разные. Например, загружаем цены на товары, загружаем из XML файла Яндекс маркета, модуль чтения будет общий, модуль записи так же общий, но в одном случае надо цены записать как Закупочная, а в другом как Цена конкурента.

Разные источники. Загрузка одного вида данных, из разных источников, с разной начальной структурой, через общий сервисный модуль. Например, загружаем каталог товаров из разных источников, API, XML файл, в каждом случае выбираем один сервисный модуль записи. Понадобится, изменить логику записи, меняем общий сервисный модуль. Если бы логика записи была, в одном модуле с чтением, пришлось бы менять логику записи во всех модулях чтения данных, для каждого источника отдельно.

Разные конфигурации. Модуль чтения будет общий для всех конфигураций, сервисные модули индивидуальные под конфигурацию. Например, делаем загрузку номенклатуры из API внешней системы, при этом загрузка будет использоваться на конфигурации Управление торговлей и Управление нашей фирмой. Модуль чтения данных будет общий для любой конфигурации, так как API общий. Индивидуально под каждую конфигурацию, необходимо будет разработать только сервисный модуль записи номенклатуры.