В каждом плане есть определенный список элементов, информацию об изменении которых он может хранить. Этот список называется «Состав плана обмена». Состав можно расширять, но при этом поддержка конфигурации снимается.
В «Макете плана» хранятся те самые правила, на основе которых работает синхронизация. Вот именно этот пакет конвертации (ПравилаРегистрации, ПравилаОбмена, ПравилаОбменаКорреспондента) нам и необходим для дальнейшего изучения.
Рассмотрим пример синхронизации данных между конфигурациями «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»:
Подведем итог. Результат поставленной задачи выполнен успешно. Мы доработали план обмена ЗУП - БП, добавив новый элемент для регистрации изменений и дописали правила конвертации для синхронизации данных.
Достаточно часто в работе крупных предприятий и торговых сетей возникает необходимость в обмене данными между базами. Каждый программист и администратор по-разному решает этот вопрос. Кто-то пишет выгрузки-загрузки через промежуточные файлы таблиц, кто-то использует режим COM соединения для подключения к базе источнику. Однако, в последнее время всё большую популярность набирает собственный 1С-овский механизм под названием «Универсальный обмен данными в формате XML».
В Полном интерфейсе открыть обработку можно по адресу Сервис->Прочие обмены данными-> Универсальный обмен данными в формате XML.
Форма обработки (Рис.1) содержит четыре закладки:
Интерфейс каждой из закладок сильно загружен элементами, а потому требует отдельного рассмотрения.
В самой верхней части закладки находится поле выбора файла правил обмена. Для нестандартных баз и обменов файл обмена придется создавать самому.
На следующей строке формы находятся два переключателя:
Как видно из приведенных выше рисунков, в зависимости от переключателя отличается внешний вид формы. В случае если выбран файловый вариант обмена, пользователю предлагается выбрать место нахождения файла, куда будет выполнена выгрузка и возможность его сжатия для экономии места и защиты паролем.
Вариант прямого подключения к базе-приемнику поддерживает и файловый и клиент-серверный вариант работы. В этом случае необходимо будет прописать адрес базы, заполнить поля «Пользователь» и «Пароль». Прежде чем приступить к обмену данными, желательно протестировать подключение.
Табличная часть расположенная ниже позволяет настроить отборы и остальные параметры выгрузки.
Для отладки алгоритмов и исправления ошибок можно воспользоваться встроенным в обработку обмена механизмом. Его активация производится установкой соответствующего флажка в нижней части формы. Нажатие на кнопку «Настройка отладки…» вызывает окно (Рис. 4).
Рис.4
Отличительной чертой этой формы является информативная справка в левой части макета, которая описывает каждый из трех возможных режимов отладки. В качестве файла внешней обработки с модулем может выступать любой файл формата epf.
Нажатие на кнопку «Готово» проверяет правильность и полноту заполненных данных.
В отличие от «Выгрузки», на данной закладке (Рис.5) нет табличной части, зато гораздо больше флажков, позволяющих регулировать параметры записи новых и измененных объектов.
Рис.5
В первую очередь необходимо выбрать файл, который послужит источником информации. Это можно сделать в поле ввода «Имя файла для загрузки». В случае если данные выгружались в архив, защищенный паролем, его необходимо будет ввести в соответствующее поле.
Соответствующие флажки позволяют настроить:
Как понятно из названия закладки, она содержит инструменты, использование которых позволяет точнее настроить процесс обмена. В частности:
Эти и некоторые другие функции включаются выставлением соответствующих флажков на форме (рис.6).
Рис.6
Эта закладка используется только разработчиками в режиме отладки. Позволяет удалять из базы ненужные объекты.
Использование стандартного обработчика очень упрощает жизнь программистам. В то же самое время, одним из самых сложных моментов для того, кто впервые столкнулся с «Универсальным обменом данным в формате XML» является вопрос: «Где взять файл правил обмена?».
В первую очередь, для самостоятельного изготовления правил обмена, необходима специальная конфигурация, которая носит название «Конвертация данных». В ее составе есть несколько интересных файлов, которые позволяют настроить практически любой обмен между различными базами 1С 7 и 8 версий:
Запустив соответствующие обработки необходимо выгрузить структуры метаданных для исходной базы и базы приемника. Затем в конфигурации «Конвертация» необходимо внести информацию о конфигурациях источника и приемника в справочник «Конфигурации».
Затем в справочнике Конвертации создается элемент, содержащий информацию о направлении обмена данными. Для него можно настроить Правила обмена.
В некоторых случаях (допустим при большом документообороте или при сложном учете) конечному пользователю гораздо удобнее распределить учет между несколькими приложениями, время от времени выполняя обмен данными между ними. До выхода в свет платформы 1С версии 8.3 стандартный обмен данными происходил исключительно по желанию пользователя через выгрузку-загрузку информации с использованием файлов формата XML. В последнее время все чаще используется механизм синхронизации данных в 1С.
Причин популярности синхронизации несколько:
На входе мы имеем две стандартных конфигурации базы данных:
Обе базы работают в файловом режиме. Настройку синхронизации можно проводить из любой базы.
Если синхронизация будет настраиваться из «Бухгалтерии» в «ЗУП» должна быть активирован флажок «Синхронизация» и наоборот.
В «Бухгалтерии» заходим в подсистему «Администрирование», в меню «Настройка» и находим пункт «Синхронизация данных» (Рис. 1)
Откроется окно настройки синхронизации (Рис. 2)
Рис. 2
Здесь мы можем:
Запустив синхронизацию установкой соответствующего флажка и определив префикс, мы можем закрывать бухгалтерию. Дальнейшая работа будет производиться в «Зарплате».
Окно настроек синхронизации данных представлено на Рис. 3
Рис. 3
Рассмотрим его подробнее.
Начнем по порядку:
Отдельно хотелось бы заострить внимание читателя на окне «Регистрация изменений» (Рис. 5). В верхней части которого есть номера отправленного и принятых сообщений, после удачного обмена номера в базе-источнике и базе-приемнике должны совпадать. В некоторых случаях (синхронизация произошла с копией базы, сбои в работе) нумерация в базах нарушается. Исправить эту ситуацию можно простым щелчком на гиперссылке с номерами. Это действие позволяет вручную установить текущий номер отправленного и входящего сообщений (Рис. 6)
Рис. 6
На закладке «Настройки синхронизации данных» есть две команды:
Запуск команды «Загрузить правила» открывает форму (Рис. 7)
Рис. 7
Здесь мы можем выбрать, собираемся ли мы использовать типовые правила обмена, поставляемые в конфигурации, или будем выполнять синхронизацию по собственным правилам, хранящимся в архивном файле.
Остальные настройки происходят по щелчку по кнопке «Настроить» (Рис. 8).
Рис. 8
В первом открывшемся окне можно:
Команда «Загрузить комплект правил» аналогична такой же команде в предыдущем окне настройки.
Подробнее стоит остановиться на параметрах подключения (Рис. 9)
Рис. 9
В нашем случае база приемник и база источник находятся на одном компьютере и работают в файловом режиме, поэтому синхронизация между ними происходит через прямое подключение.
Нам необходимо:
Если обмен происходит через другие типы подключения, необходимо настроить их параметры на соответствующих закладках.
И в конце пара слов про настройки расписания синхронизации, оно выполняется в соответствующей закладке окна (Рис. 3) и ничем не отличается от соответствующей формы настройки расписания прочих регламентных заданий.
Задача
Передать информацию о контрагентах из УП в БП . Данные передаются в одностороннем порядке, идентификация производится по уникальному идентификатору.Настройка правил конвертации выполняется с помощью специальной конфигурации Конвертация данных, редакция 3.0 (далее – КД 3.0 ).
Для настройки правил конвертации в конфигурации КД 3.0 должны содержаться сведения о структуре информационных баз, между которыми производится синхронизация данных, а также о структуре формата Enterprise Data .
Для выгрузки информации о структуре информационной базы используется обработкаMD83Exp.epf , входящая в комплект поставки конфигурации КД 3.0 .
Для каждой информационной базы (УП и БП ) необходимо выполнить следующие действия:
Для выгрузки схемы формата обмена используются стандартные возможности платформы.
Необходимо выполнить следующие действия:
Загрузка выполняется в конфигурацию КД 3.0 в режиме “Предприятие”. Перечисленные ниже действия следует выполнить для каждой из конфигураций, для которых настраиваются правила конвертации (УП и БП ).
Для решения описанной задачи необходимо создать две конвертации:
Создание конвертаций производится в разделе Конвертации , команда Конвертации . Для новой конвертации необходимо указать наименование, конфигурацию и формат обмена. Например, конвертация для конфигурации УП:
Для перехода к комплекту правил конкретной конвертации необходимо перейти в разделКонвертации , выбрать команду Настройка правил конвертации и выбрать в списке конкретную конвертацию, для которой будут настраиваться правила. В результате будет открыта форма Настройка правил обмена , в которой собраны все правила для конкретной конвертации.
Порядок действий одинаков для обоих конвертаций.
Модуль менеджера обмена данными необходим для обмена данными между конфигурациями в соответствии с настроенными в КД 3.0 правилами.
Порядок действий одинаков для обеих конвертаций:
Выгрузка модуля в буфер обмена также может производиться из формы настройки правил обмена по кнопке Сохранить модуль менеджера обмена .
Для того чтобы по настроенным правилам выполнялся обмен данными, необходимо в обеих информационных базах в режиме “Предприятие” настроить синхронизацию данных через универсальный формат.
При разработке правил обмена 1С 8 широко используется возможность программного переопределения поведения правил обмена — механизм обработчиков. Обработчики событий существенно расширяют функционал и являются незаменимым инструментом настройки правил обмена в тех случаях, когда интерактивных возможностей конфигурации недостаточно.
Обработчики и алгоритмы пишутся на языке той платформы, в которой они будут выполняться при обмене.
Если это платформа «1С: Предприятие 7.7», то код обработчиков интегрируется в код обработки выгрузки или загрузки. Соответственно, каждый обработчик или алгоритм выделяется в отдельную функцию и доступен для отладки при обмене.
Если выгрузка или загрузка происходят на платформе «1С: Предприятие 8», то код обработчиков не интегрируется в код обработки обмена данными, а выгружается в файл правил обмена. В процессе обмена данными код обработчиков или алгоритмов берется из файла правил и выполняется непосредственно в контексте оператора «Выполнить». Для отладки кода обработчиков и алгоритмов можно воспользоваться обработкой «Универсальный обмен данными XML».