Удалить регистрацию объекта из плана обмена 1с

Обновлено: 05.07.2024

  • константа;
  • справочник;
  • документ;
  • план счетов;
  • план видов характеристик;
  • план видов расчета;
  • бизнес процесс;
  • задача.

А так же для наборов записей:

  • регистра сведений;
  • регистра бухгалтерии;
  • регистра накопления;
  • регистра расчета;
  • перерасчета.

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

Структура таблицы изменений подобна для всех объектов:

Запись в таблице изменений проходит следующие преобразования:

Как сделать запрос к таблице изменений

Таблицы изменений по умолчанию не видны в конструкторе запросов. Но их можно вывести с помощью кнопки Отображать таблицы изменений.

Как работает механизм регистрации изменений в 1С

Пример запроса к таблице изменений:

Как зарегистрировать изменение объекта в 1С

Изменения данных могут регистрироваться в автоматическом режиме. Для этого необходимо при включении объекта метаданных в состав плана обмена разрешить автоматическую регистрацию: установить для свойства Авторегистрация значение Разрешить.

Для того чтобы зарегистрироваться изменения вручную, программно у менеджера планов обмена существует функция ЗарегистрироватьИзменения() . Функция имеет два параметра:

Как зарегистрировать все изменения для узла

Как зарегистрировать все изменения объектов определенного типа

Как зарегистрировать все изменения конкретных объектов

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

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

Как удалить регистрацию изменений

Как удалить регистрацию изменений полностью

В этой статье поговорим о планах обмена. Зачем они нужны? И если нужны, то можно ли сделать свой, не копируя типовую реализацию? Статья предназначена в основном для разработчиков, но будет полезна всем, кто интересуется подобной темой.

Также в плане обмена есть несколько стандартных реквизитов. Например, «Номер принятого» и «Номер отправленного». Эти реквизиты удобно использовать для того, чтобы принимать только актуальную информацию, которая не была ранее принята. А теперь обо всем этом подробней и с примерами. Хоть планы обмена кому-то и кажутся чем-то страшным и необъяснимым, после прочтения статьи, думаю, все станет просто и понятно.

1. Создание и регистрация, узлы плана обмена.

Приведем пример, когда нам нужно выгружать измененные номенклатуры (для ТСД, мобильного устройства, промежуточной базы или пр.).

Ищем в дереве конфигурации ветку «Общие» -- «Планы обмена». Добавляем новый план обмена.

Назовем его «ОбменНоменклатурой_Тест». Включаем в состав нужные объекты. В этом примере справочник «Номенклатура».



//Здесь налаживаем отборы

//и сам код регистрации
Узел = ПланыОбмена.ОбменНоменклатурой_Тест.НайтиПоКоду("Тест");
ПланыОбмена.ЗарегистрироватьИзменения(Узел, Источник);

В режиме предприятия создадим новый узел плана обмена. Это, по сути, элемент плана обмена, который будет использоваться только для одного приемника. Хотя, если не требуется подтверждение о приеме данных, то с одного узла можно рассылать данные всем, но здесь мы такой вариант не рассматриваем, так как он намного проще и будет понятен по ходу статьи.





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



2. 1С Выгрузка планов обмена.

Например, создадим кнопку в списке плана обмена и назначим на нее обработчик на сервере.

Есть возможность выбирать изменения объектной моделью, вот так:

Пока ВыборкаИзменений.Следующий() Цикл
КонецЦикла;

Также есть возможность выбора изменений запросом:
В процедуре на сервере давайте откроем конструктор запроса с обработкой результата и посмотрим, как выбрать изменения. В конструкторе есть кнопка «Отображать таблицы изменений». После нажатия на эту кнопку мы увидим таблицы, в которых хранятся наши изменения.



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



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



3. Порядок снятия с регистрации.



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

В общем, повторюсь, план обмена помогает организовать обмен данными со сторонними системами. И в этой статье мы разобрали, как на самом деле просто с ним работать.

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

По выбранному узлу обмена:

По выбранному объекту:

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

Если в конфигурации используется Библиотека стандартных подсистем, то эти операции можно выполнить в подсистеме «Обмен данными».

  • константа;
  • справочник;
  • документ;
  • план счетов;
  • план видов характеристик;
  • план видов расчета;
  • бизнес процесс;
  • задача.

А так же для наборов записей:

  • регистра сведений;
  • регистра бухгалтерии;
  • регистра накопления;
  • регистра расчета;
  • перерасчета.

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

Структура таблицы изменений подобна для всех объектов:

Запись в таблице изменений проходит следующие преобразования:

Как сделать запрос к таблице изменений

Таблицы изменений по умолчанию не видны в конструкторе запросов. Но их можно вывести с помощью кнопки Отображать таблицы изменений.


Пример запроса к таблице изменений:

Как зарегистрировать изменение объекта в 1С

Изменения данных могут регистрироваться в автоматическом режиме. Для этого необходимо при включении объекта метаданных в состав плана обмена разрешить автоматическую регистрацию: установить для свойства Авторегистрация значение Разрешить.

Для того чтобы зарегистрироваться изменения вручную, программно у менеджера планов обмена существует функция ЗарегистрироватьИзменения() . Функция имеет два параметра:

Как зарегистрировать все изменения для узла

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

Как зарегистрировать все изменения объектов определенного типа

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

Как зарегистрировать все изменения конкретных объектов

Для того, чтобы зарегистрировать изменение конкретного объекта, нужно в первом параметре передать ссылку на узел, а во втором — ссылку на объект.

Для того, чтобы зарегистрировать изменение конкретного объекта, нужно в первом параметре передать ссылку на узел, а во втором — ссылку на объект.

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

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

Набор = РегистрыСведений . КомплектующиеНоменклатуры . СоздатьНаборЗаписей ( ) ;
Набор . Отбор . Номенклатура . Значение = Номенклатура ;
Набор . Отбор . Номенклатура . Использование = Истина ;
Набор . Отбор . ХарактеристикаНоменклатуры . Значение = ХарактеристикаНоменклатуры ;
Набор . Отбор . ХарактеристикаНоменклатуры . Использование = Истина ;

ПланыОбмена . ЗарегистрироватьИзменения ( Узел , Набор ) ;

Как удалить регистрацию изменений

Как удалить регистрацию изменений полностью

Всем привет, такая проблема: не могу удалить изменения из планов обмена. Пишу свою интеграцию 1с->битрикс. Нашёл метод ПланыОбмена.УдалитьРегистрациюИзменений. Но вот почему-то метод отказывается удалять. Установлена авторегистрация изменений. Ниже код выполняется уже в конце обмена, когда 1с получает ответ от битрикса

1с доработка правил типового обмена

Задание:

Есть обмен УТ10.3 - БП 2.0

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

Выполненение:

  1. Сохраняем типовые правила обмена в файл xml
  2. Загружаем и дорабатываем правила в конфигурации Конвертация данных 2
  3. Загружаем измененные правила в 1С УТ 10.3
  4. Проверяем обмен

1с сохранить правила обмена в ут 10.3

сохраняем правила обмена

1с тут сохранять и загружать правила

Загружаем их в конфигурацию Конвертация данных 2 и правим

загружаем правила в КД2

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

3

И пишем свое правило:

правило обмена

Определяем если объект - документ, то если он не проведен, то мы его не выгружаем.

Этого правила достаточно чтобы непроведенные документы не выгружались.

И со временем обмен будет происходить все медленнее.

Нужно удалять из регистрации непроведенные документы!

Немного меняем правило обмена:

1С доработка правил обмена

Загружаем правила обмена

загружаем правила обмена

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

5

Делаем обмен и смотрим что выгрузилось в файл обмена:

6

находим только 3 документа, которые проведены.

Снова смотрим регистрацию объектов на узле:

регистрация объектов для обмена

Читайте также: