Организацию полностью автоматического обмена данными я рассматриваю на примере обмена 1С: Управление Производственным Предприятием (УПП) ==> 1С: Бухгалтерия (БП) 2.0 с использованием произвольных правил обмена.
Есть 2 базы: 1С:УПП и Бухгалтерия предприятия 2.0. В УПП создаются ряд документов: Реализация товаров и услуг, Поступление товаров и услуг, Счета-фактуры. В бухгалтерии создаются документы по движению денежных средств: РКО, ПКО и платежки.
Структура документов в этих конфигурациях несколько отличается и поэтому были написаны произвольные правила обмена при помощи продукта "Конвертация данных 2.1".
ШАГ 1. Настройка узлов обмена.
Для обмена данными будет использовать план обмена "Полный". Для этого в БП зайдем операции ==> Планы Обмена ==> Полный.
План обмена ВСЕГДА содержит один предопределенный узел обмена. Здесь есть три момента:
1) В настройке обмена нельзя использовать предопределенный узел
2) Код этого узла по умолчанию не указан и обязательно должен быть задан
3) В базах, между которыми организуется обмен данными, коды предопределенных узлов не должны совпадать, это приведен к ошибке.
В Плане обмена "Полный" в БП выполнем следующие действия:
1) Укажем код и наименование предопределенного узла. Скажем, наименование = "Предопределенный", Код = 001.
2) Создадим новый узел обмена, назовем его "УПП" и зададим ему код 003.
Аналогично откроем план обмена "Полный" 1С: УПП и выполним следующие действия:
1) Укажем код и наименование предопределенного узла. Например, Наименование = "Предопределенный", код = "002".
2) Создадим новый узел обмена, назовем его "БП" и зададим ему код 003.
КОДЫ непредопределенных узлов обмена в базе УПП и БП должны совпадать.
ШАГ 2. Создание настройки автоматического обмена данными.
В базе УПП в интерфейсе "Полный". Меню «Сервис» ==> «Прочие обмены данными» ==> «Все настройки обмена данными».
В открывшейся форме выбрать пункт «Распределенные информационные базы» и нажать кнопку «Добавить».
В появившемся окне необходимо указать наименование настройки. В поле «Узел» необходимо выбрать план обмена «Полный» и указать созданный ранее узел обмена.
В отрывшемся диалоговом окне необходимо выбрать произвольные правила обмена данными.
В Поле «Тип обмена» выбрать пункт «Обмен через подключение к информационной базе» и указать параметры подключения: Тип инф базы, версию платформы, путь или адрес на сервере, пользователя и пароль.
Далее нужно перейти на вкладку «Обмен по правилам» и нажать на кнопку «Загрузить настройки». В правилах обмена не должно быть правилом со способом выборки "произвольный запрос" . Это приведет к ошибке
После загрузки настроек можно сохранить настройки и попробовать выгрузить данные. Для этого необходимо изменить какой-либо из объектов информационной системы, перечисленных в настройках выгрузки и нажать на кнопку "Выполнить обмен" на панели формы.
ШАГ 3. Настройка обмена данными.
Для настройки автоматического обмена данными нужно перейти на вкладку «Автоматический обмен», нажать кнопку «Добавить». В появившемся окне можно задать расписание обмена (время, периодичность) или обмен данными при наступлении какого-либо события (например, вход пользователя в систему)
Теперь можно проверить созданные настройки
В каждом плане есть определенный список элементов, информацию об изменении которых он может хранить. Этот список называется «Состав плана обмена». Состав можно расширять, но при этом поддержка конфигурации снимается.
В «Макете плана» хранятся те самые правила, на основе которых работает синхронизация. Вот именно этот пакет конвертации (ПравилаРегистрации, ПравилаОбмена, ПравилаОбменаКорреспондента) нам и необходим для дальнейшего изучения.
Рассмотрим пример синхронизации данных между конфигурациями «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»:
Подведем итог. Результат поставленной задачи выполнен успешно. Мы доработали план обмена ЗУП - БП, добавив новый элемент для регистрации изменений и дописали правила конвертации для синхронизации данных.
Обмен данными между базами 1С – главный нюанс во время работы с информационной базой. Без этой процедуры невозможно организовать полноценную работу. Почти всегда на предприятии есть разделенные филиалы либо дистанционные точки на местности самой организации. Между ними требуется выполнять обмен информацией для того чтобы получить актуальную информацию. Это легко если следовать ниже представленной инструкции.
Обмен данными между базами 1С 8.3: инструкция настройки
Настроить обмен данными между базами 1С 8.3 можно следующим образом:
- Зайти в программу 1С "Бухгалтерия предприятия 3.0" (приемник).
- Нажать на «Все Функции-План-Обмен-Полный ». Создать периферийный узел.
- Выбрать каталог (какой необходим – сетевой либо локальный) и ждать, пока придет оповещение в виде сообщения о создании узла.
- Бывает так, что пункт «Все функции » недоступный. В этом случае нужно перейти в «Файл-Сервисы-Параметров » и установить «птичку » внизу.
- Успешно создав узел надо доставить его в необходимое место. Для этого следует перейти в «Администрирование ».
- Нажать на «Настройка синхронизации данных ».
- Поставить галку в «Синхронизация данных» . Здесь выбрать «Настроить синхр. данных » и затем «Полный ».
- Выбрать каталог обмена, можно ftp либо обмен посредством почтовых сообщений. По окончанию настройки система попросит ввести необходимый префикс. Вам понадобится еще развыполнить аналогичные манипуляции в периферийном узле. При необходимости автообмена расписание установите на тематической вкладке.
Вот и все, Вы успешно выполнили настройку.
Необходимость в обмене между различными конфигурациями возникла с момента появления 1С версии 7.5. Разрабатывались различные способы и механизмы. В статье описываются современные (для платформы 1С:Предприятие 8.2) механизмы, используемые для обмена между различными конфигурациями. Статья предназначена для начинающих программистов, создающих свои обмены или анализирующих типовые. В описании процедуры обмена используется некоторое утопичное представление об обмене, эдакий сферический обмен в вакууме.
Постановка задачи обмена данными
Обмен происходит между двумя различными конфигурациями, условно назовем их Источником и Приемником. По умолчанию считаем направление обмена односторонним. Структура метаданных конфигураций Источника и Приемника различны. Необходимо регулярно обмениваться некоторыми видами документов.
В общем виде, задача двустороннего обмена разбивается на две задачи одностороннего обмена, только меняются местами источник и приемник.
Трудности
- Документы в конфигурации имеют различный набор и состав реквизитов
- Некоторые реквизиты документов составного типа (справочники).
- Если уже переданный документ был изменен документ в конфигурации Источник, его необходимо повторно передать в конфигурацию Приемник
- Возможно дублирование элементов в том случае, если справочники заполнялись в двух базах одновременно. Как вариант, при наличие дублей в справочнике (элементов справочника с одинаковым набором реквизитов), в документ попадет “ненужный” элемент - например, давно не используемый и помеченный на удаление.
Методы решения
Этап 1. Соответствие объектов
Для составления правил отображения реквизитов документа конфигурации Источника в реквизиты документов конфигурации Приемника создаются правила обмена. Правила обмена специальный файл в формате XML описывающий соответствия и правила преобразования объектов Источника в объекты Приемника. Автоматизируется создание правил обмена с помощью конфигурации “Конвертация данных”. Из конфигураций Приемника и Источника с помощью специальной обработки выгружаются XML файлы, описывающие структуру метаданных соответствующих конфигураций и загружаются в “Конвертацию данных”.
При описании правил обмена необходимо указать реквизиты (так называемые ключевые реквизиты) по которым система будет искать в Приемнике объекты соответствующие объектам Источника.
В современных схемах обмена, сопоставление по реквизитам используется только при начальной настройке обмена. В процессе работы ключевые реквизиты справочников могут меняться, а терять связь объекты между собой не должны. Для этого в конфигурации Приемника заполняется регистр “Соответствие объектов обмена”. В регистре указаны: уникальный идентификатор объекта (GUID) конфигурации Источника и глобальный уникальный идентификатор объекта, соответствующего ему в Приемнике.
Этап 2. Регистрация измененных объектов
В платформе 1С:Предприятие 8 существует объект метаданных, специально предназначенный для организации обмена - План обмена. Планы обмена содержат информацию об узлах, которые могут участвовать в обмене данными, определяют состав данных, которыми будет производиться обмен, и указывают, следует ли задействовать механизм распределенной информационной базы при обмене. В одном прикладном решении может существовать несколько планов обмена, каждый из которых может описывать свой порядок обмена данными. Например, если выполняется обмен данными с удаленными складами и удаленными офисами, то, скорее всего, будет существовать два плана обмена (один для обмена со складами, другой - для офисов), поскольку состав данных, которыми производится обмен со складами, будет значительно "уже", чем состав данных, предназначенных для обмена с офисами.
В самом простом виде, План обмена (не использующий механизм распределенных баз данных) можно представить в виде таблицы из двух колонок: идентификатора узла-приемника данных и идентификатора объекта, предназначенного для выгрузки. План обмена настраивается на мониторинг определенных объектов метаданных. При изменении какого-либо объекта метаданных, включенного в план обмена, глобальный идентификатор измененного объекта попадает в план обмена с признаком измененности. После выгрузки данных признак измененности сбрасывается.
Этап 3. Транспорт
Топологии обменов данными очень причудливы. Возможен как прямой доступ к базе-Приемнику из Источника, так и опосредованный. В первом случае возможно использовать ADO-соединение - прямое подключение из Источника к Приемнику. Вариант очень удобный с пользовательской точки зрения: один раз настроив параметры обмена и авторизацию пользователя в Приемнике, одним нажатием кнопки (или по расписанию) провести обмен.
Когда прямой доступ к Приемнику невозможен, данные выгружаются в промежуточный файл XML, передаются на сторону приемника и загружается. Также, возможно, использование общего ftp-ресурса.
Перед тем как настроить обмен
Дубли и объекты, помеченные на удаление
Перед тем как настроить обмен - избавьтесь от дублирующихся элементов в справочниках. Удалите объекты, помеченные на удаление.
Ввод справочников и регистров сведений
Источник ввода справочников и регистров сведений должен быть один. Тогда вы избавитесь от необходимости постоянно исправлять неверно синхронизированные элементы, из-за которых в оборотно-сальдовой ведомости не “схлопываются”, казалось бы идентичные движения.
Заключение
В итоге, создание схемы обмена выглядит следующий образом:- Создаются правила обмена в конфигурации “Конвертация данных”
- Создается и инициализируется план обмена
- Информационные базы подготавливаются к обмену. Удаление дублей
- При инициализации обмена, заполняется регистр сведений “Соответствие объектов обмена”
- Выбирается соответствующий транспорт (прямой доступ, через файл)
- Выполняется регулярный обмен данными
Библиография
P.S. Конструктивная критика и дополнения приветствуются.
Если в Вашей организации работает более 5 человек то, скорее всего Вы пользуетесь продукцией фирмы «1С». Практически всегда в организациях устанавливаются несколько баз 1С, ведь каждая из них решает определенный спектр задач. Например, компания занимается розничными продажами и ведет бухгалтерию, в такой ситуации клиент обычно устанавливает УТ (Управление торговлей) и БП (Бухгалтерия предприятия). В роли такой компании вполне может выступать даже простое ИП с несколькими работниками!
Зачем мне настраивать обмен данными?
Давайте продолжим рассматривать ситуацию с УТ и БП. Представим, что сейчас у нас обмен не настроен , какие действия нам необходимо выполнить чтобы отразить операции по учету в обеих базах? Правильно, сначала мы заполним данные в УТ, а потом те же самые данные нам придется заносить и в БП, ведь мы не можем например занести приход товаров в УТ, а в БП этого не сделать.
Даже если Вы решили использовать типовой обмен данными (настройка типового обмена данными (синхронизации 1С)), это еще не означает, что его возможно настроить у Вас в базе. Проблемы появляются в том случае, если Вы например давно не обновляли базу (для поддержания типового обмена Ваши базы должны быть актуальными) или объекты которые Вы собираетесь перегружать из одной базы в другую являются доработанными (в этом случае типовой обмен не будет работать корректно), кроме всего этого даже если версии платформы баз различаются (7.7 – 8.3), то обмен данными скорее всего также придется дорабатывать или разрабатывать с нуля .
Кому необходимо пользоваться обменом данными между базами 1С?
Если утверждения, приведенные ниже для Вас являются актуальными, тогда Вам необходимо провести настройку обмена между Вашими конфигурациями:
- У Вас более 1 одной базы 1С
- Требуется быстрый перенос информации из одной базы в другую и наоборот
- Нужен авто-обмен или обмен в реальном времени
Разработка и настройка обмена данными между конфигурациями 1С
Правильно разработанный обмен данными позволит Вам:
- Проводить выгрузку и загрузку объектов из одной базы в другую
- Выполнять обмен между разными версиями 1С
- Обмениваться данными в реальном времени
- Значительно сократить затраты на зарплату работникам, ведь теперь у них будет больше свободного времени
- Сэкономить Ваше время и бюджет
Разработка правил обмена данными на примере доработанных баз УТ и БП
У нас есть две базы, в которых документ «Поступление товаров и услуг» является доработанным, в частности в документах и табличных частях добавлены новые реквизиты, некоторые типовые реквизиты удалены, в следствии чего стандартный обмен данными не работает. Мы разработали новое правило обмена и записали его в файл.