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

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

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

Если это платформа «1С: Предприятие 7.7», то код обработчиков интегрируется в код обработки выгрузки или загрузки. Соответственно, каждый обработчик или алгоритм выделяется в отдельную функцию и доступен для отладки при обмене.

Если выгрузка или загрузка происходят на платформе «1С: Предприятие 8», то код обработчиков не интегрируется в код обработки обмена данными, а выгружается в файл правил обмена. В процессе обмена данными код обработчиков или алгоритмов берется из файла правил и выполняется непосредственно в контексте оператора «Выполнить». Для отладки кода обработчиков и алгоритмов можно воспользоваться обработкой «Универсальный обмен данными XML».

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

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

Обмен данными в среде 1С позволяет:

  • Исключить двойной ввод документов;
  • Автоматизировать смежные бизнес-процессы;
  • Оптимизировать взаимодействие между распределенными подразделениями;
  • Оперативно актуализировать данные для работы специалистов разных отделов;
  • «Разграничить» разные виды учета.*

*В случае, когда данные одного вида учета существенно отличаются от другого, необходимо обеспечить конфиденциальность информации и «разграничить» информационные потоки. Например, обмен данными между 1С УТ и 1С Бухгалтерия не требует выгрузки в базу регламентного учета управленческих данных, т.е. синхронизация в 1С тут будет неполная .

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

  • Согласование состава обмена;
  • Определение транспорта (протоколов обмена);
  • Установка правил;
  • Составление расписания.

Выявление состава обмена 1С

Объекты обмена можно условно поделить на «источник» и «приемник». При этом они могут исполнять две роли одновременно, что будет называться – двусторонним обменом. Определение источника и приемника происходит логическим путем в зависимости от необходимости или от функциональных возможностей системы.*

*Например, при интеграции «WA: Финансист» – решения для ведения финансового учета и управления процессами казначейства, разработанного на базе «1С:Предприятие», эксперты WiseAdvice рекомендуют именно его в качестве мастер-системы. Это обусловлено наличием инструментов контроля для соблюдения правил заявочной политики, а соответственно, и для обеспечения эффективности работы решения.

Далее на основе полученных и зафиксированных требований со стороны пользователей создается список данных для обмена, определяется их объем, требования к частоте обмена, прописывается процесс работы с ошибками и обработки исключительных ситуаций (коллизий).

На этом же этапе в зависимости от парка имеющихся систем и структуры предприятия определяются с форматом обмена:

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

  • РИБ подразумевает обмен между идентичными конфигурациями баз данных 1С, с четкой структурой управления «главный-подчиненный» для каждой пары обмена. Являясь элементом технологической платформы, РИБ помимо данных может передавать изменения в конфигурации и административную информацию БД (но только от главного к подчиненному).

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

  • Механизм, позволяющий настроить обмен баз 1С, как с конфигурациями на платформе «1С:Предприятие», так и с системами сторонней разработки. Обмен осуществляется посредством перевода данных в универсальный xml-формат в соответствии с «Планами обмена».

EnterpriseData

  • Новейшая разработка фирмы 1С, предназначенная для реализации обмена данными в формате xml между продуктами, созданными на платформе «1С:Предприятие», с любыми системами автоматизации. Применение EnterpriseData упрощает доработки, связанные с обменом. Ранее при включении в систему новой конфигурации была необходима реализация механизма импорта и экспорта данных, как для нее, так и для уже имеющихся систем. Теперь системы, поддерживающие EnterpriseData, не нуждаются в доработках, имея только одну точку «входа-выхода».

Определение транспорта (протоколов обмена)

Для системы на платформе «1С:Предприятие 8» предусмотрен широкий спектр возможностей для организации обмена с любыми информационными ресурсами посредством общепринятых универсальных стандартов (xml, текстовые файлы, Excel, ADO-соединение и т.д.). Поэтому при определении транспорта для данных обмена следует отталкиваться от возможностей базы данных сторонней системы.

Синхронизация справочников

Основным принципом эффективной синхронизации справочников является наличие одной точки ввода. Но если речь идет о работе со справочниками, исторически заполнявшимися по разным правилам, необходимо четко определить поля синхронизации для приведения обмена к «общему знаменателю».*

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

Установка правил

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

Гарантирует отсутствие потерь данных при обмене План обмена. Это составная часть любой конфигурации на платформе «1С:Предприятие», полностью описывающая порядок обмена 1С: состав данных (документы с «опознавательными» реквизитами) и узлы (информационные базы приемники-передатчики), а также активацию РИБ для избранных направлений обмена.

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

Расписание обмена в 1С

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

Рассмотрев стандартный процесс реализации обмена, обратим внимание на факторы, которые потребуют доработок на разных этапах:

  • Не типовые, сильно доработанные конфигурации БД;
  • Разные версии платформы «1С:Предприятие»;
  • Давно не обновлявшиеся, не актуальные версии конфигурации;
  • Объекты обмена, ранее подвергшиеся доработкам;
  • Необходимость в нестандартных правилах обмена;
  • Сильно различающийся набор и состав реквизитов в имеющихся справочниках.

Поскольку даже стандартные действия по реализации первичного обмена данными требуют экспертных знаний, их рекомендуется проводить при участии специалистов 1С. Только после выполнения всех вышеописанных действий следует переходить к настройке обмена в конфигурации. Рассмотрим интеграцию баз данных на примере «1С:УПП» и «1С:Розница» (по этой же схеме настраивается обмен с «1С:УТ»). Также к типовой синхронизации относится обмен УПП - УПП, характерный для масштабных систем автоматизации на крупнейших промышленных предприятиях.

В подменю «Сервис» выбираем «Обмен данными c продуктами на платформе…» (выбор прямого обмена с «Розницей» зачастую грозит ошибками на уровне COM-объектов). Обратим внимание на служебное сообщение «Данная возможность недоступна».


Чтобы решить эту проблему, необходимо выбрать «Настройку обмена данными»


…и проставить галочку. Далее сообщение об ошибке игнорируем.


В настройках синхронизации данных выбираем «Создать обмен с «Розница»…



Перед настройкой параметров подключения через локальный или сетевой каталог следует убедиться, что на диске под каталог есть место. Хотя, как правило, он не занимает более 30-50 Мб, в исключительных случаях под него может потребоваться до 600 Мб. Создать необходимый каталог можно прямо из конфигуратора.



При подключении через сетевой каталог предложения настроить подключение посредством FTP-адреса и по электронной почте игнорируем, нажимая «Далее».


В настройках вручную проставляем префиксы – условные обозначения баз (как правило, БП, УПП, РО), задаем правила и начальную дату выгрузки данных. Префикс будет указываться в названии документов, для обозначения базы, в которой они были созданы. Если правила выгрузки не будут отредактированы, данные по умолчанию будут выгружаться по всем имеющимся параметрам.



Создаем файл настройки обмена для «Розницы», чтобы не повторять свои действия. При необходимости немедленной отправки данных сразу после настройки синхронизации – проставляем галочку.


Для автоматизации процесса обмена необходимо настроить расписание.


Меню «Розница».


Проставляем галочку и выбираем «Синхронизацию».


Производим «обратную» настройку, выбирая Управление производственным предприятием.




Загружаем файл с настройками, созданный в УПП.


Проставляем галочку, адрес система подхватывает автоматически.





Действуем так же, как в УПП.









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



В случае ошибки в синхронизации «Подробно…» будет заменено на «Никогда…».


«Подробно…» открывает журнал регистрации с уточненной информацией по обмену.


Готово.

2018-11-15T19:32:35+00:00

Универсальная обработка "Выгрузка и загрузка данных XML" производит полную или частичную выгрузку данных информационной базы в файл в формате XML. Впоследствии этот файл может быть загружен в информационную базу с помощью этой же обработки. Формат файла выгрузки отличается от формата файла, создаваемого при выгрузке по плану обмена, заголовочной частью.

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

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

Обработка поддерживает выгрузку данных с возможностью задания отбора по периоду. Также реализована проверка объектов на наличие недопустимых символов при обмене через XML.

С уважением, (преподаватель и разработчик ).

Если вы производите обмен данными между конфигурациями Управление торговлей 10.3 и Бухгалтерия предприятия 2.0, то после обновления одной из конфигураций, необходимо обновить правила обмена.

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

Заускаем 1С Управление торговлей 10.3. Выбираем пункт “Все настройки обмена данными” из меню Сервис => Прочие обмены данными.

Выбираем раздел “Все обмены”. Находим в списке ваш обмен данными, щеалкаем правой кнопкой мыши и нажимаем “Изменить”. Если вы будете пытаться изменить настройки обмена из раздела “Обмен данными с 1С: Бухгалтерия 8”,то при попытке изменения будет запускаться помощник настройки обмена данными, который нам не нужен.

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

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

Ни в коем случае не заменяйте их на типовые правила. Еслы вы не уверены в том что у вас типовые конфигурации, на всякий случай сохраните имеющиеся правила кнопкой “Сохранить правила в файл”.

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

Переходим по этому пути. Далее: 1С=>Accounting и выбираем папку с названием последнего установленного релиза Бухгалтерии. В случае если правила нужно взять из обновления конфигурации “1С:Управление торговлей”, папка будет называться Trade. Для конфигурации “1С:Розница” — Retail. В ней находится папка “Обмены данными”.

Далее “Обмен с конфигурацией Управление торговлей, ред. 10.3”. В ней видим ПРАВИЛА КОНВЕРТАЦИИ БП-УТ и ПРАВИЛА КОНВЕРТАЦИИ УТ-БП. Так как нам нужны правила выгрузки из УТ выбираем “ПРАВИЛА КОНВЕРТАЦИИ УТ-БП” и нажимаем открыть. Тоже самое проделываем для правил выгрузки из базы обмена в текущую базу только выбираем файл ПРАВИЛА КОНВЕРТАЦИИ БП-УТ и нажимаем открыть.

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

  • Цели совместного использования
  • Общее описание
  • Переход с прошлых версий двустороннего обмена данными
  • Предварительные действия
  • Порядок настройки обмена данными между конфигурациями
  • Синхронизация данных
  • Совместная работа конфигураций “Управление торговлей” и “Бухгалтерия предприятия”
  • Примеры сценариев работы пользователей
  • Таблица соответствия выгружаемых документов УТ — БП (редакция 1.6, редакция 2.0) Таблица соответствия выгружаемых документов БП (редакция 1.6, редакция 2.0) — УТ
  • Особенности выгрузки документов и справочников
  • Таблица соответствия выгружаемых документов БП (редакция 1.6, редакция 2.0) — УТ
  • Перенос документов “Счет на оплату покупателю” и “Заказ покупателя”
  • Перенос себестоимости списания товаров
  • Контроль результатов обмена данными

Проверяем правила кнопками проверить. И нажимаем ОК. Новые правила сохранены. Запускаем обмен данными и проверяем их работу.

О том,как настроить двухсторонний обмен данными между конфигурациями Управление торговлей 10.3 и Бухгалтерия предприятия 2.0 написано в другой моей статье.

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

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

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

Скачать данную обработку можно на диске ИТС, либо по ссылкам:

Она является универсальной и подойдёт для любой конфигурации.

Рассмотрим пример выгрузки справочника «Номенклатура» из одной информационной базы 1С 8.3 Бухгалтерия 3.0 в другую. Обязательным условием будет отбор по родителю (группе) «Деревообработка».

Выгрузка данных из 1С в XML

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

Откройте обработку выгрузки и загрузки данных XML (Ctrl+O).

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

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

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

Колонка «Выгружать при необходимости» означает, необходимо ли перегружать данный объект, если на него ссылается реквизит перегружаемого нами справочника. Например, позиция перегружаемой вами номенклатуры имеет такую единицу измерения, которой нет в базе – приемнике. Если напротив справочника с единицами измерения будет установлен флаг в колонке «Выгружать при необходимости», создастся новая позиция. В противном случае в качестве значения реквизита будет надпись «<Объект не найден>» и его уникальный идентификатор.

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

В данном примере нужно отобрать только ту номенклатуру, которая находится в папке «Деревообработка».

Аналогичная обработка для 8.2 позволяет в удобной форме устанавливать отборы для каждого объекта конфигурации. В 8.3, к сожалению, такого функционала нет. Одним из вариантов выхода в данной ситуации будет отбор необходимых позиций на вкладке «Дополнительные объекты для выгрузки».

Добавить объекты здесь можно как вручную (кнопка «Добавить»), так и запросом («Добавить запросом…»). При большом их количестве предпочтительнее второй вариант.

В данном случае запрос будет следующим. Заполните параметры, выполните запрос, проверив данные, и нажмите на кнопку «Выбрать результат».

После того, как вы указали все необходимые объекты и дополнительные элементы для выгрузки, нажмите на кнопку «Выгрузить данные». Они попадут в XML файл, имя и путь нахождения которого указывали ранее. Результаты данной операции отобразятся в сообщениях.

В данном примере необходимо было выгрузить только 3 позиции, но выгрузилось пять. Всё потому, что напротив справочника «Номенклатура» в колонке «Выгружать при необходимости» был установлен флаг. Вместе с нужными позициями перегрузились их родители.

Загрузка справочника из XML

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

Откройте обработку в базе – приемнике. Данная обработка используется как для выгрузки, так и для загрузки данных. Перейдите на вкладку «Загрузить» и укажите путь к XML файлу, в который ранее были выгружены данные. После этого нажмите на кнопку «Загрузить данные».

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

Справочник «Номенклатура» в базе – приемнике не был заполнен. Теперь в нем пять элементов: три номенклатурных позиции и две группы.