Андрей Смирнов
Время чтения: ~9 мин.
Просмотров: 32

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

1cv82-avtoobmen-1-000.jpgТехнология распределенных информационных баз (РИБ) позволяет создать территориально распределенную систему на базе конфигураций 1С Предприятие. Это позволяет иметь общее информационное пространство даже с теми подразделениями, которые не имеют надежного канала связи, сочетая высокую автономность узлов с возможностью оперативного обмена информацией. В наших статьях мы рассмотрим особенности и практическую реализацию этого механизма на платформе 8.2 Прежде всего зададимся вопросом: почему именно автообмен? Современные технологии, в сочетании с недорогим и быстрым интернетом, позволяют организовать удаленную работу без каких либо затруднений. Выбор способов как никогда широк: RDP, тонкий и веб-клиенты, объединение сетей при помощи VPN — есть над чем задуматься. Однако все эти способы имеют один существенный недостаток — сильная зависимость от качества канала связи. Даже при идеальной работе местного провайдера гарантировать 100% доступность канала связи невозможно. Проблемы у магистрального провайдера, отсутствие электроснабжения, физическое повреждение линии связи и многие другие факторы делают эту задачу неразрешимой. В тоже время недоступность информационной базы на удаленном складе или в розничном магазине приводит к вполне ощутимым убыткам. Ну и наконец не будем забывать, что есть места (например промзоны на окраине городов) в которые подвести качественный канал связи дорого и/или проблематично.Механизм РИБ позволяет избавиться от указанных недостатков, каждое подразделение имеет собственный экземпляр информационной базы с которой можно работать автономно даже при полном отсутствии связи с внешним миром. А небольшой объем передаваемой информации позволяет использовать для обмена любой канал связи, в том числе мобильный интернет. РИБ на платформе 8.2 не является чем-то принципиально новым, представляя собой дальнейшее развитие УРИБ платформы 7.7, только теперь эта технология стала доступней и проще. В отличии от компоненты УРИБ, которую нужно было приобретать отдельно, РИБ является неотъемлемой частью многих типовых конфигураций и работает полностью в пользовательском режиме, позволяя обойтись без Конфигуратора даже на этапе настройки. На этом месте пора бы было перейти к практической части, но придется сделать еще одно отступление. Дело в том, что переход на платформу 8.2, который вроде бы уже произошел, по факту привел к появлению двух типов конфигураций: на основе управляемого приложения, «родные» для платформы 8.2, и адаптированные с 8.1, продолжая использовать устаревшие технологии и механизмы. Так как существенная часть конфигураций (Бухгалтерия предприятия, Зарплата и управление персоналом) являются адаптированными или переходными, то сбрасывать их со счетов нельзя, поэтому первая часть нашей статьи будет посвящена этим конфигурациям (по сути платформе 8.1), в то время как во второй мы разберем настройку автообмена для конфигураций на основе управляемого приложения (платформе 8.2).Рассмотрим практическую задачу: настроить автообмен через FTP для конфигурации Бухгалтерия предприятия 2.0. Несмотря на то, что РИБ позволяет производить обмен с использованием электронной почты или общих файловых ресурсов, мы рекомендуем использовать именно FTP, как наиболее простой и надежный способ связи. Как настроить собственный FTP-сервер вы можете прочитать в этой статье, либо можно использовать FTP сервис любого хостинг провайдера. В первую очередь нам нужно настроить узлы обмена. Для этого запустим конфигурацию с правами администратора и выберем Операции — Планы обмена.1cv82-avtoobmen-1-001-thumb-450x327-2183.jpgВ появившемся списке выберем Полный план или По организации, если в одной базе ведется учет по нескольким фирмам и обмен нужно производить только для одной из них. В открывшемся окне уже существует один узел — центральный, нам нужно его отредактировать, указав код и название.1cv82-avtoobmen-1-002-thumb-450x286-2186.jpgПосле чего создадим еще один узел для филиала, заполнив его аналогичным образом (для добавления нажмите зеленый кружок с плюсом). Следующим шагом будет создание начального образа для данного узла, который представляет собой готовую информационную базу в файловом режиме. Для этого кликните правой кнопкой мыши на нужном узле и в выпадающем списке выберите Создать начальный образ. 1cv82-avtoobmen-1-003-thumb-450x337-2189.jpgТеперь перейдем Сервис — Распределенная информационная база (РИБ) — Настроить узлы РИБ.1cv82-avtoobmen-1-004-thumb-450x280-2192.jpgВ открывшемся окне нажмите кнопку Добавить и настройте новый обмен, указав удаленный узел, тип обмена (через FTP) и параметры подключения к серверу.1cv82-avtoobmen-1-005-thumb-450x369-2195.jpgЗакладка Автоматический обмен позволяет настроить расписание обменов, обмен по событиям (начало и завершение работы и т.п.), данные настройки производятся для пользователя от чьего имени будет выполняться обмен, поэтому убедитесь в наличии у него прав для обмена данными. 1cv82-avtoobmen-1-006-thumb-450x528-2198.jpgНе забудьте указать префикс узла для нумерации документов (иначе вы получите разные документы с одинаковыми номерами) в Сервис — Настройки программы, здесь же можно настроить и некоторые другие параметры обмена. На этой же закладке следует выбрать пользователя для выполнения заданий обмена, если вы этого не сделаете расписание работать не будет. Помните, что обмен будет производиться только в том случае, если данный пользователь выполнил вход в программу.1cv82-avtoobmen-1-007-thumb-450x318-2201.jpgНа этом настройка центрального узла закончена, теперь нужно произвести аналогичные настройки для периферийного узла, подключив начальный образ как существующую ИБ. После чего можно приступать к обмену данными. Для контроля следует воспользоваться Монитором обмена данными, он позволяет не только контролировать успешность прохождения выгрузки/загрузки, но и показывает возникшие коллизии или отложенные движения (если пользователю производившему обмен не хватает прав для совершения каких либо действий в базе). Наличие данного инструмента позволяет быстро и эффективно решать различного рода проблемы, возникающие при автообмене. 1cv82-avtoobmen-1-008-thumb-450x357-2204.jpgНа этом настройку обмена можно считать законченной и приступать к работе в распределенном режиме. Отдельно стоит остановиться на обновлении или внесении изменений в конфигурацию. Эти действия доступны только на центральном узле, все внесенные изменения будут автоматически распространены на периферийные узлы при следующем обмене. Для автоматического внесения изменений требуется чтобы периферийная база находилась в монопольном режиме, в противном случае нужно будет запустить Конфигуратор и выполнить Обновление конфигурации базы данных вручную.Дополнительные материалы:

  1. 1С:Предприятие 8.2. Настраиваем автообмен. Часть 1.
  2. 1С:Предприятие 8.2. Настраиваем автообмен. Часть 2.

Планы обмена — это общие объекты конфигурации. Они используются для реализации механизмов обмена данными.

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

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

Назначение

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

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

000000151_1.png

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

Также в плане обмена указывается состав данных, которыми предполагается вести обмен:

000000151_2.png

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

Механизмы, реализуемые планом обмена

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

И

Инфраструктура сообщений

Р

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

С

Служба регистрации изменений

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

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

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

Рассмотрим подробнее структуру плана обмена:

Объект метаданных план обмена расположен в ветке «Общие» конфигуратора.

ScreenshotPlan1-2.jpg

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

ScreenshotPlan2-1.jpg

В таблице «Выбранные объекты» отображается текущий состав плана обмена. В колонке «Авторегистрация» можно выбрать значения «Разрешить» и «Запретить». Если для объекта включенного в состав плана обмена авторегистрация установлена в значение «Разрешить», то при записи/проведении такой объект автоматически будет регистрироваться во всех узлах данного плана обмена. Если же авторегистрация установлена в значение «Запретить», то регистрировать такой объект нужно либо программно, либо через стандартную обработку «Регистрация изменений для обмена данными».

Программная регистрация изменений в конкретном узле плана обмена

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

Также зарегистрировать элемент в плане обмена можно в пользовательском режиме при помощи обработки «Регистрация изменений для обмена данными».

ScreenshotPlan3-1.jpg

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

Чтение зарегистрированных изменений из узла плана обмена

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

Виртуальная таблица изменений доступна в конструкторе запросов в следующем виде:ScreenshotPlan4.jpg

Удаление зарегистрированных изменений из узла плана обмена

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

Используемые источники:

  • https://interface31.ru/tech_it/2012/03/1s-predpriyatie-82-nastraivaem-avtoobmen-chast-1.html
  • https://v8.1c.ru/platforma/plan-obmena/
  • https://wiki.programstore.ru/rabota-s-planami-obmena-v-1s/

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации