Планы обмена 1С 8.3
Планы обмена в 1С 8.3 — объект метаданных конфигурации, служащий для реализации синхронизации данных в системе 1С 8.
План обмена можно сравнить со справочником, где элементы — это узлы информационных баз. Однако в работе с планами обмена имеется множество нюансов, о них мы поговорим ниже.
Обычно обмен в 1С построен с использованием специальных правил обмена, которые формируются с помощью конфигурации Конвертация данных.
Содержание
Настройки и свойства планов обмена в 1С
Как ранее было замечено, план обмена очень похож на обычный справочник в 1С, и поэтому мы рассмотрим только главные отличия обмена.
Как работать с планом обмена
План обмена умеет хранить информацию и изменения элементов из состава плана обмена, а так же хранит информацию о номере текущего сообщения. В общем случае схема работы такова:
- Изменяем данные (справочники, документы и т.д) в базе — план обмена запоминает изменения. Либо авторегистрацией, либо программным кодом (например метод ПланыОбмена.ЗарегистрироватьИзменения).
- Когда приходит время, получаем список измененных элементов — метод ПрочитатьИзменения(), выгружаем эти данные.
- При выгрузке/загрузке для исключения коллизий сверяем номера сообщений у плана обмена. Если они не совпадают, отменяем обмен данными, если совпадают, снимаем регистрацию изменений и увеличиваем номер сообщения.
Распределенная информационная база
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
Если этот флаг установлен в настройках, то данный план обмена является распределенной информационной базой (РИБ).
Распределенная информационная база — территориально распределенная система на основе одинаковой конфигурации 1С 8.3. РИБ помимо изменений данных умеет передавать и изменений конфигурации, что очень удобно, например, при обновлении релиза конфигурации.
Состав плана обмена
Настройка, с помощью которой разработчик управляет набором объектов для обмена:
В составе плана обмена может быть 3 состояния объекта:
- Не включен в план обмена — соответственно, никаким образом для такого объекта Вы не сможете настроить обмен данными по этому плану обмена.
- Авторегистрация Запретить — это значит, что регистрировать изменения для данного узла необходимо только программным кодом по какому-то условию, как правило, подпиской на событие «При Записи». Используется метод ПланыОбмена.ЗарегистрироватьИзменения().
- Авторегистрация Разрешить — если установлена данная галка, то любые изменения элемента автоматически попадут в список изменений плана обмена.
Планы обмена и производительность 1С
Из-за системных особенностей реализации планов обмена не рекомендуется злоупотреблять выгрузкой изменений по планам обмена. Дело в том, что при чтении изменений блокируются все таблицы изменений. Т.е. при выгрузке план обмена не дает записать новые изменений, а следовательно, блокирует и сами элементы — справочники, документы и т.д.
Выгрузку рекомендуется производить в нерабочее время или совсем маленькими партиями данных, чтобы блокировки были на максимально короткий срок.
Другие статьи по 1С:
Видеолекции по технологии обмена в 1С 8.2:
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
СПРОСИТЕ в комментариях!
Hesen036:
Доброго времени суток.У меня такая проблема после обновление далиона не идет обмен с бухгалтерией .Тоесть загрузка нормально а выгрузка нет последнее успешное выгрузка 07,09,2017 в ночь когда обновляли а ошибка выдает эту :
{Обработка.КонвертацияОбъектовИнформационныхБаз.Мо дульОбъекта(13686)}: Ошибка при вызове метода контекста (НачатьЗапись)
ЗаписьСообщения.НачатьЗапись(ЗаписьXML, УзелДляОбмена);
по причине:
Не удалось заблокировать запись. Действие (изменение, удаление или блокировка записи) не выполнено.
Ошибка блокировки объекта. Объект уже заблокирован:
компьютер: SERVER, сеанс: 65, начат: 11.09.2017 в 16:21:48, приложение: Фоновое задание
Дима:
не актуально уже
Эдуард:
Добрый день! подскажите, а как может быть такое что в РИБ при полном обмене, один вид документов (а именно «отчёт о розничных возвратах») не передаётся ни с одного узла? в Плане через конфигуратор, галочка на выбора стоит на этих документах, а когда сохраняешь в файл План Обмена через предприятие, то там в строках его нет.
ZEFF:
Поэтому я и считаю, что 1с отвратителен