Найти тему
ИНТЕРВОЛГА

Обмен данными в 1С

Оглавление

Зачем настраивать обмен данными между 1C и другими системами     

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

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

Наиболее серьезный вариант это обмен между территориально распределенными системами на основе разных продуктов 1С, но  и обмен со сторонними программными решениями (не 1С).

В программных продуктах на платформе 1С реализованы механизмы обмена данными и в этой статье мы расскажем о возможных вариантах обмена между информационными базами 1С, а также об обмене со сторонними программными продуктами.   

Какие задачи можно решать при помощи обмена данными в 1С

В зависимости от структуры организации, сложности бизнес-процессов, конфиденциальности информации и многих других факторов обмен данными между информационными системами может решать ряд важных задач:

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

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

Как выбрать необходимый вариант обмена в 1С

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

При синхронизации данных между программами необходимо проработать ряд вопросов, которые влияют на выбор формата обмена: определить состав передаваемых данных, правила обмена данными, протоколы обмена, расписание выполнения обмена.

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

  • обмен данными между абсолютно идентичными конфигурациями баз данных 1С;
  • обмен данными между различными конфигурациями баз данных 1С;
  • обмен данными между программой 1С и внешней программой.

Обмен данными в 1С:Предприятие

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

Программы 1С приходится все время интегрировать между собой и с другими системами. Обмен сайта на Битрикс и 1С:Управление Торговлей — один из самых распространенных примеров.

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

Характеристики 1С обмена

Технологий обмена между решениями на базе 1С так много, что нужно разделить на несколько крупных групп:

  • информационный обмен может выполняться внутри единой распределенной базы, так и между независимыми конфигурациями;
  • встречаются различные каналы обмена: локальный или сетевой каталог, FTP-ресурс, web-сервис, почтовые сообщения, прямое подключение к базе через COM-соединение;
  • режим обмена может быть ручной или автоматический по расписанию;
  • в интересах учета можно ограничить набор синхронизируемых данных или просто “передавать все”;
  • встречаются разные протоколы и форматы обмена данными.

Проще всего настроить обмен между двумя одинаковыми 1С-ками.

Обмен между идентичными конфигурациями 1С

Распределенная информационная база (РИБ)

Приведем примеры задач, которые хорошо решает РИБ:

  • Имеется организация с центральным офисом и несколькими удаленными филиалами, связанными между собой медленным каналом связи. Необходимо настроить обмен данными, чтобы в центральном офисе была актуальная информация из баз филиалов.
  • Структура базы данных 1С в организации находится в активной фазе доработки. База установлена в нескольких филиалах и в ней параллельно ведется работа. Кроме обмена данными необходимо поддерживать идентичность структуры базы во всех филиалах после обновления.
  • Малыми затратами, без дополнительного программирования необходимо настроить обмен данных в типовой 1С между головным офисом и одним-двумя филиалами.

Для выполнения этих задач обмена в “1С:Предприятие” существует механизм распределенных информационных баз (РИБ). Он применяется в территориально распределенных организациях.

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

Механизм РИБ реализуется при помощи специального механизма “планов обмена”.

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

Например, план обмена “Полный” предназначен для полной синхронизации данных в РИБ. В состав его объектов, участвующих при обмене, входят практически все объекты базы данных.

-2

Для настройки обмена между идентичными 1С в плане обмена достаточно установить признак “распределенная информационная база”.

-3

Достоинства и недостатки распределенных информационных баз 1С

Преимущества РИБ:

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

Недостатки РИБ:

  • Обмен данными осуществляется между абсолютно идентичными конфигурациями 1С
  • Структура представлена как древовидная с четким делением каждой пары связанных узлов на “главного” и “подчиненного”. Под узлом понимается объект распределенной системы, участвующий в обмене.
  • Изменения конфигурации передаются только от главного узла к подчиненному.
  • При выгрузке данных справочники, документы и прочие объекты блокируются для новых изменений. Поэтому обмен рекомендуется производить маленькими партиями или в нерабочее время.
-4

Другие варианты обмена между одинаковыми конфигурациями

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

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

Разные версии данной обработки могут использоваться в обычном и в управляемом приложениях. Обработки можно найти на диске ИТС, или в шаблонах конфигурации “1С:Конвертация данных”. Рекомендуется использовать обработку из "Конвертации данных” версии 2.1.8.2.

Примеры реализации

-5

На приведенной схеме РИБ представлен стандартный обмен между магазинами и кассами в организации розничной торговли. Такой обмен позволяет оперативно обмениваться данными между филиалами используя все преимущества РИБ.

Обмен между различными системами 1С

Универсальный обмен данными в 1С

Для синхронизации данных между различными конфигурациями в 1С есть универсальный механизм обмена.

При помощи универсального обмена данными в 1С можно решать множество задач обмена, например:

  • В организации учет ведется в разных программах 1С: бухгалтерский и налоговый учет - в 1С:Бухгалтерия предприятия, управленческий - в 1С:Управление торговлей, расчет з/п в 1С:ЗУП. Необходимо организовать обмен данными между этими тремя системами. Ниже есть схема этого примера.
  • В организации используется относительно старая, сильно измененная под нужды компании конфигурация Управление торговлей 10.3. Необходимо настроить обмен с конфигурацией последнего релиза (например, БП, КА, УПП).
-6

Этот механизм позволяет создавать распределенные системы, но не требует чтобы они были идентичными. В нем используются уже описанные “планы обмена”.

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

Достоинства:

  • Механизм универсального обмена 1С реализован на уровне конфигурации и разрешает обмен данными между объектами различной структуры. В нем в отличие от механизма РИБ нет деления на “главный” и “подчиненный” узлы в распределенной системе. Данный механизм можно реализовать самостоятельно в любой конфигурации, даже в случае разработки с нуля;
  • Формат обмена — XML-документы. В платформе 1С для обработки XML реализована возможность чтения и записи XML-документов.
  • Этот механизм обмена предоставляет большие возможности для настройки структуры передаваемых данных и их состава в различные узлы обмена. Если ни один из имеющихся планов обмена не подходит для обмена, можно создать свой на основе существующего.

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

-8

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

Обмен данными по расписанию в 1С

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

-9

Обмен 1С с внешними программами

Помимо обмена между различными конфигурациями 1С, очень часто требуется организовать обмен данными с внешними программами, например обмен 1C с банком или логистической системой, интеграция с интернет-магазином или корпоративным порталом и т.д..

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

Рассмотрим несколько наиболее распространенных форматов для интеграции с различными приложениями.

Веб-сервисы в 1С (Web-сервисы)

Пример использования: обмен данными “в режиме реального времени”. При изменении данных в одной из систем, участвующих в обмене, запускается обращение к веб-сервису. Формируется пакет с измененными данными, и эти данные передаются в другую систему.

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

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

При использовании веб-сервиса нет потребности в предоставлении внешнему приложению доступа к информационной базе, что очень хорошо с точки зрения обеспечения безопасности данных. Внешнее приложение получает доступ к набору функций 1С, которые сами обрабатывают данные и предоставляют “наружу” конечный результат.

Если 1С передает информацию, в конфигураторе создается новый объект “веб-сервис”, и программно описывается его функциональность, например, получение остатков на складах. После того как сервис будет опубликован, стороннее приложение сможет запрашивать и получать информацию о наличии требуемой номенклатуры на складах. Для публикации веб-сервиса на сервере должно быть установлено дополнительное программное обеспечение, веб-сервер. Например, это может быть бесплатный веб-сервер  Apache.

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

Использование HTTP-сервисов в 1С

Примеры применения HTTP-сервисов такие же как и для веб-сервисов. Например, двусторонний обмен данными 1С с интернет-магазином. Со стороны сайта в 1С передаются заказы, со стороны 1С на сайт - документы оплаты и документ, подтверждающий факт отгрузки товара.

Возможность создавать HTTP-сервисы появилась в платформе 1С:Предприятие с версии 8.3.5. Теперь 1С при помощи встроенного языка позволяет создавать запросы и сформировать ответ на запрос от внешнего приложения самостоятельно, используя возможности встроенного языка 1С.

HTTP-сервисы похожи на имеющиеся в платформе веб-сервисы, но обладают несколькими преимуществами:

  • более простое создание клиентского приложения;
  • уменьшенный объем передаваемых данных;
  • меньшая потребность в вычислительных мощностях;
  • большая нацеленность на работу в мобильных устройствах.

Между веб-сервисами и HTTP-сервисами существует разница в структуре запросов, которыми обмениваются приложения:: Веб-сервисы (SOAP) - POST запросы, HTTP-сервисы - GET запросы. В отличие от SOAP HTTP-сервисы поддерживают формат JSON.

Также как и при работе с веб-сервисами, для работы с HTTP-сервисами необходима установка веб-сервера (Apache или IIS).

Поддержка REST-интерфейса в 1С

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

REST-интерфейс позволяет создавать новые объекты, удалять их, читать и редактировать.

Наиболее часто REST-интерфейс применяется в следующих случаях:

  • интеграции с веб-приложениями (интернет-магазины, веб-порталы и т.д.);
  • обмена данными с внешним сторонним приложением;
  • необходимости расширения возможности приложения 1С сторонними средствами без доработки самой конфигурации.

Для публикации необходим веб-сервер.

-10

Обмен в формате EnterpriseData

Формат обмена данными EnterpriseData разработан фирмой 1С для облегчения интеграции с программами 1С. Этот формат позволяет описать объект базы (справочник, документ и т.д.) и содержит информацию об изменении или удалении объекта. На данный момент этот формат поддерживается в следующих продуктах 1С: Управление торговлей 11, Бухгалтерия предприятия 3, Розница 2, ERP 2, ЗУП КОРП 3. Приложения 1С также могут использовать формат EnterpriseData для обмена со сторонними информационными системами.

Обмен в формате EnterpriseData осуществляется посредством обмена XML-файлов. В процессе обмена формируются файлы-запросы и файлы-ответы.

Основным преимуществом формата является то, что он ориентирован на логику 1С, является простым в использовании и не ограничен никакими требования к структуре систем, которые участвуют в обмене.

Применение формата XML в 1С

XML-формат является в некотором роде универсальным форматом и широко используется во всех конфигурациях 1С. 1С:Предприятие поддерживает работу с XML-документами при помощи функций встроенного языка программирования. Благодаря этому XML-формат широко используется в собственных разработках.

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

В 1С есть универсальные обработки для выгрузки данных в формате XML

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

Также в 1С XML-формат используется при сохранении настроек отчетов и печатных форм.

Поддержка JSON в 1С

Начиная с версии 8.3.6.1977 в платформе 1С реализована поддержка формата JSON. В более ранних версия платформы 1С с этим форматом тоже можно было работать, но теперь в 1С появились удобные стандартные средства для работы с JSON. Этот формат широко применяется в веб-приложениях и поддерживается всеми браузерами. По сравнению с XML, текстовый формат обмена JSON является более лаконичным.

Основное применение данного формате в 1С это интеграция с внешними приложениями, особенно с веб-приложениями. Формат JSON можно использовать при обмене файлами между разными приложениями 1С:Предприятие.

Этот формат используется в нашей разработке “Обмен счетами между Битрикс24 и 1С:Бухгалтерия предприятия”

Все описанные выше форматы обмена данными в 1С предназначены для того чтобы подготовить запрашиваемые данные и передать их стороннему приложению. Или запросить необходимые данные у внешнего приложения, получить их и передать для обработки на основании внутренних алгоритмов приложения 1С.

Давайте обмениваться данными!

Чем больше развиваются информационные системы в бизнесе-пространстве, тем теснее они интегрируются между собой. Платформа 1С активно развивается в данном направлении и имеет ряд удобных механизмов для синхронизации данных, а также поддерживает большое количество технологий и форматов обмена данными. Это позволяет прикладным решениям на платформе 1С активно обмениваться данными между собой и со сторонними приложениями.

Компания ИНТЕРВОЛГА регулярно сталкивается с задачами интеграции 1С с интернет-магазинами и корпоративными порталами, и успешно решает эти задачи.

На нашем сайте есть ряд статей, посвященных обмену между Битрикс и 1С:

В типовых модулях обмена с сайтами и в наших разработках широко используются технологии, описанные в статье: HTTP-сервисы, веб-сервисы, форматы XML и JSON.

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