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

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

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

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

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

  • Зачем нужны обмены данных и как их использовать?
  • Виды обменов между 1С.
  • Как произвести настройку обмена данными между базами 1С?

Ответы на эти вопросы Вы узнаете ниже.

Причин для внедрения обменов, как правило, две:

Организация имеет филиальную сеть

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

Разделение по видам учета

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

Какие бывают механизмы обмена между базами 1С?

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

Механизмы обмена данными 1С

Как правило, при обмене используется два механизма:

  • Распределенная информационная база (РИБ) — механизм, позволяющий настроить обмен данными между филиалами. Механизм подразумевает, что обмениваются абсолютно идентичные конфигурации БД. Механизм умеет передавать изменения конфигурации баз данных. Механизм реализован на уровне технологической платформы.
  • Универсальный механизм обмена между конфигурациями — механизм является разработкой фирмы 1С для прикладных решения. Он универсален и основан на . Обмен данными осуществляется с помощью правил xml, которые создаются в специальной конфигурации — . С помощью данного механизма можно реализовать как одноразовый обмен, так и постоянный обмен между 1С конфигурациями. Механизм реализован на уровне конфигурации, встроить в свою конфигурацию можно из технологической конфигурации .

Транспорт для обмена данными

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

Получите 267 видеоуроков по 1С бесплатно:

  • Локальный или сетевой каталог — самый простой транспорт. Одна ИБ создает файл на диске, вторая считывает его и добавляет свой файл.
  • FTP-ресурс — обмен, аналогичен обмену через каталог. Отличие — обмен осуществляется через FTP протокол.
  • Почтовые сообщения или E-mail — обмен проходит по средствам электронной почты. Конфигурации посылают друг другу почтовые сообщения и регулярно проверяют почтовый адрес на наличие новых сообщений.
  • Прямое подключение (COM) — обмен осуществляется через прямое подключение одной базы к другой по средствам .
  • Интернет (Web service) — транспортом является веб-служба. Одна информационная база подключается к , веб-сервис подключается к второй базе и транспортирует сообщение. Для осуществления такого транспорта необходимо иметь .

Как настроить обмен данными между базами 1С?

Азы настройки обмена данными в 1С с помощью конфигурации «1С Конвертации данных» на примере смотрите в видео:

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

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

Для клиент-серверного варианта

В справочнике «Настройки обмена данными», на вкладке «Автоматический обмен» необходимо создать новое регламентное задание, где указать расписание:

Для файлового варианта

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

Давайте рассмотрим простой пример из реальной жизни. Допустим у нас есть фирма которая занимается оптово-розничной торговлей, также в этой фирме как и в любой другой ведется бухгалтерия. На предприятии установлены две типовые базы, это УТ (управление торговлей) и БП (бухгалтерия предприятия), соответственно в каждой из баз ведется свой учет, в УТ управленческий для отражения всех операций связанных с торговлей, в БП бухгалтерский. Чтобы не делать двойную работу, т.е. не создавать одни и теже документы в двух базах (ведь движения должны быть по управленческому и по бухгалтерскому учету) мы как раз и настроим синхронизацию между этими базами .

Обмен данными будем настраивать односторонний , из УТ ---> БП. Также возможно настроить двухсторонний обмен, но на практике это не так часто требуется, поэтому в нашем примере мы его рассматривать не будем.

Подготовительные действия для настройки обмена в БП

Давайте приступим к настройке синхронизации, сначала зайдем в базу 1С "Бухгалтерия предприятия 3.0" (приемник), нам необходимо проверить включена ли синхронизация для этой базы, для того чтобы это сделать нам нужно сначала зайти в базу. Как только база откроется переходим на вкладку "Администрирование" ---> "Настройки синхронизации данных"


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

Продолжаем настройку синхронизации данных в УТ


После того как мы сделали все необходимые действия в базе приемнике (БП 3.0), для продолжения настройки обмена данными нам необходимо открыть базу источник (УТ 11.1). Заходим на вкладку "Администрирование", слева в меню выбираем пункт "Настройки синхронизации данных" . Если синхронизация не включена, то включаем ее с помощью флажка, также не забываем указать префикс базы источника. Как только мы выполнили все пункты 1-4 как показано на изображении ниже, необходимо нажать на гиперссылку "Синхронизация данных" (пункт 5).


В новом отобразившемся окне необходимо нажать на зеленый плюсик (Настроить синхронизацию данных), в выпавшем меню выбираем пункт "Бухгалтерия предприятия 3.0".

Настройка важных моментов в обмене данными между УТ и БП


Теперь мы видим окно с настройкой синхронизации данных в 1С, выбираем пункт "Указать настройки вручную" и жмем "Далее".


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


На следующей странице мы должны заполнить правила отправки и получения данных из конфигурации БП 3.0 (приемник). Жмем "изменить правила выгрузки данных".


Перед нами открылось окно "Правила отправки данных", в нем мы задаем следующие параметры:

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

После того как мы сделали настройки нажимаем "Записать и закрыть".


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


В новом окне нам предлагается настроить правила для базы приемника (БП). В пункте 1 называем обзываем как-нибудь нашу базу, задаем ей префикс. ПРЕФИКС должен быть таким же каким мы его задавали в самой базе БП в начале этой статьи, если префиксфы будут отличаться синхронизация данных в программе 1С работать не будет. После этого жмем пункт 2, а потом пункт 3.



В пункте 3 нам необходимо разрешить проведение документов при их загрузке в базу. Нажимаем "Записать и закрыть".


Теперь окно должно иметь примерно такой вид как показано ниже, жмем "Далее".


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


На следующем шаге программа предложит выполнить синхронизацию сразу после создания настройки обмена данными . Согласимся с этим и нажмем "Готово".

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

Давайте рассмотрим пример, допустим в УТ есть контрагент с наименованием "ООО ФармГрупп" и ИНН 1234567, а в БП также есть контрагент с ИНН 1234567, но наименованием "ФармГрупп", если мы при сопоставлении данных на этапе синхронизации не сопоставить эти два объекта, то после синхронизации в приемнике (Бухгалетрия предприятия 3.0) мы будем иметь два контрагента с ИНН 1234567 и двумя наименованиями "ООО ФармГрупп" и "ФармГрупп" соответственно. Для того чтобы не возникало подобных ситуаций и был изобретен механизм сопоставления объектов.


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

Заключительный этап выполнения обмена данными между 1С


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

Учебник по 1С Конвертации данных (редакция 2) Подробное знакомство с правилами обмена

Мы знаем что такое правила обмена и зачем они нужны. Познакомимся более подробно с дополнительным функционалом работы с правилами обмена. Откроем настройки правил обмена данными (конвертации):

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

Закладка "Дополнительно":

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

Закладка "Параметры":

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

Для этого случая нам придется освоить два новых приема работы с конфигурацией "Конвертация данных" - использование обработчиков и настройку параметров.

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

Для редактирования параметров откроем форму элемента справочника Конвертации для редактируемых правил обмена и перейдем на закладку параметры. Создадим новый элемент справочника Параметры. Присвоим имя параметра – ВыгружатьУслуги. Имя параметра служит для обращения к нему в структуре Параметры при написании программного кода в обработчиках. Наименование будет отображаться в табличной части Параметров в форме обработки универсального обмена данными. Для того, чтобы параметр был виден в диалоге при настройке выгрузки нужно установить флажок "Устанавливать в диалоге" и выбрать тип значения параметра. Для работы с параметрами в диалоге необходимо также установить флажок "Выгружать параметры в формате версии 2.01" в форме элемента справочника Конвертации.

Недостаточно просто указать параметры, надо чтобы алгоритм выполнения выгрузки "понимал", в каком случаем выгружать элемент, а в каком нет. Для подобных (и многих других) случаев используется механизм обработчиков. Суть его заключается в том, что в ключевых точках выполнения всех базовых алгоритмов выгрузки и загрузки данных обрабатывается код, написанный разработчиком при создании правил обмена. Естественно, что использование такого тонкого инструмента требует осторожности и продуманности. Мы рекомендуем перед написанием собственных обработчиков внимательно ознакомится со справкой к конфигурации "Конвертация данных 2.0", где описаны все доступные в обработчиках переменные и способы их использования, а также перечислены виды обработчиков и особенности их вызова в алгоритмах обмена данными.

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

Что же делает наш обработчик? При написании программного кода мы использовали переменные алгоритмов выгрузки данных. Структура Параметры служит для обращения к параметру ВыгружатьУслуги, который задается в форме обработки обмена данными. Переменная объект предоставляет доступ к выгружаемому объекту. А переменная Отказ позволяет контролировать отказ от выгрузки текущего объекта. Обработчик исполняется непосредственно перед началом выгрузки объекта, что и дает возможность отменить выгрузку объекта.

ТОЛЬКО ДЛЯ ОБМЕНА V8 - V8 И ОБРАБОТКИ ВЫГРУЗКИ И ЗАГРУЗКИ НЕ НИЖЕ 2.0.18.1

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

На закладке Параметры выгрузки появился параметр, изменяя значения которого услуги либо выгружаются, либо не выгружаются.

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

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

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

Живой пример потребности в доработке типовых правил обмена

Например, заказчик обратился к нам с такой проблемой: при синхронизации между ЗУП и БП нет возможности передать данные справочника «Регистрации в налоговом органе», которые необходимы для заполнения документа «Отражение зарплаты в бухучете». Сейчас табличная часть этого документа на стороне приемника БП содержит пустую «Регистрацию…» и пользователям приходится вручную создавать такие записи в справочнике. Согласитесь, это неудобно. Можем доработать этот момент.

Решение проблемы: доработаем пакет конвертации из плана обмена ОбменЗарплата3Бухгалтерия3. Добавим в типовые «Правила обмена 1С» новое «Правило конвертации объектов» (ПКО) для справочника «Регистрации в налоговом органе» и соответственно «Конвертацию свойств» этого справочника (ПКС). Обязательно доработаем типовые «Правила регистрации объектов», т.к. возникла необходимость зарегистрировать изменения справочника на узле обмена. И пересмотрим «Правила обмена 1С» базы корреспондента.

Где все это будем редактировать? для написания и изменения правил нам потребуется конфигурация «1С:Конвертация данных 2».

Доработка типовых правил конвертации из Плана обмена ЗУП - БП

Итак, доработку правил обмена 1С начнем с того, что в конфигураторе для плана обмена ОбменЗарплата3Бухгалтерия3 в состав добавим новый элемент - справочник РегистрацииВНалоговомОргане. Данное изменение сделаем в обоих конфигурациях «1С:Зарплата и управление предприятием 3» и «1С:Бухгалтерия предприятия 3».

Сохраним и обновим конфигурации.

В режиме предприятия для каждой базы выгрузим описание структуры метаданных с помощью обработки MD83Exp.epf для платформы «1С:Предприятие 8.3». Обработку можно найти в комплекте «1С:Конвертация данных».

На следующем этапе выгрузим пакет конвертации из ЗУП и БП. Пакет должен состоять из 3 файлов: ПравилаРегистрации, ПравилаОбмена, ПравилаОбменаКорреспондента.

В рамках данной статьи не будет описания как настраивается синхронизация данных, это можно прочитать на сайте компании «Кодерлайн» в разделе «Статьи экспертов» либо посмотреть записи вебинаров . Сейчас в базах уже настроена данная опция. Поэтому переходим в настройку синхронизации (Администрирование -> Синхронизация данных -> Настройка синхронизации данных), нажимаем кнопку «Загрузить правила». Перед нами откроется форма «Правил для синхронизации». По кнопке «Еще» выберем пункт «Сохранить правила в файл».


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

Аналогичные действия выполним и для другой информационной базы «1С:Бухгалтерия предприятия».
В итоге все подготовительные работы для редактирования правил готовы. У нас есть:

Описание структуры метаданных для загрузки в «1С:Конвертация данных 2» (для ЗУП и БП);

Пакет конвертации, который содержит правила обмена 1С и правила регистрации, необходимые для загрузки в «1С:Конвертация данных 2» (для ЗУП и БП).

Переходим в «1С:Конвертация данных 2» . Выполним следующие действия по порядку для обоих информационных баз:

Загружаем структуры метаданных наших конфигураций;

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

Создаем регистрации и загружаем правила регистрации из пакетов конвертации (файл правил называется RegistrationRules).


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

Переходим к правилам регистрации нового элемента. Добавляем справочник «Регистрации в налоговом органе». Выгружаем правила регистрации в соответствующий файл из пакета RegistrationRules. Это действие также выполняем для обоих баз.

Доработанные правила обмена и правила регистрации готовы. Теперь в правила корреспондента (CorrespondentExchangeRules) из пакета ЗУП копируем содержимое правил обмена (ExchangeRules) из пакета БП. В правила корреспондента (CorrespondentExchangeRules) из пакета БП копируем содержимое правил обмена (ExchangeRules) из пакета ЗУП.

В итоге должно получиться следующее:

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

Архивируем файлы из пакетов в Архив ZIP и загружаем в ЗУП и БП свои пакеты конвертации.

Все готово. Осталось протестировать.

Вспомним условия задачи. Необходимо было зарегистрировать к выгрузке справочник «Регистрации в налоговом органе» и проверить, как заполняется ТЧ документа «Отражение зарплаты в бухучете» на стороне «1С:Бухгалтерия предприятия 3».

В источнике «1С:Зарплата и управление предприятием 3» регистрируем к выгрузке наш справочник. Выполняем синхронизацию. Переходим в базу приемник и тоже выполняем синхронизацию для получения данных. Обратим внимание, что теперь в плане обмена появился нужный справочник для регистрации изменений.

Проверяем на стороне «1С:Бухгалтерия предприятия 3»:


Подведем итог. Результат поставленной задачи выполнен успешно. Мы доработали план обмена ЗУП - БП, добавив новый элемент для регистрации изменений и дописали правила конвертации для синхронизации данных.