Доступ к таблицам плана обмена 1С


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

Как узнать какие элементы базы были изменены?

Типовой способ ПланыОбмена.ВыбратьИзменения() работает медленно. Для начала само получение списка происходит не быстро. А потом еще и в цикле получение каждого (!) объекта. Как известно, получение объекта это — затратная операция в базе, а тут еще и в цикле.

Например у нас 10.000 измененных элементов. Нам нужно просто узнать – какие элементы справочника «Номенклатура» были изменены.

Непосильная задача?

 

Хранение изменений в базе данных

Как известно все данные 1С хранятся в базе данных в виде таблиц. Таким образом, справочник Номенклатура – это также таблица (или несколько, если есть табличные части).

Однако план обмена, в отличие от остальных объектов как документы, справочники, регистры – не является самостоятельной таблицей.

Для каждого объекта существует таблица с названием ИмяОбъекта.Изменения.

Например: Справочник.Номенклатура.Изменения.

Допустим, Вы создали два плана обмена, в каждом из них есть по одному узлу, например узел «1» и узел «2».

При изменении товара «Лопата», в такую таблицу попадут две строки:

Строка 1: «Товар лопата, узел 1»
Строка 2: «Товар лопата, узел 2»
.

 

Доступ к таблицам плана обмена

К таблицам плана обмена можно обращаться из обычного запроса и выбирать нужные нам изменения.
Пример запроса для выборки изменения по справочнику номенклатуры:

ВЫБРАТЬ
     Ссылка КАК Номенклатура
ИЗ
     Справочник.Номенклатура.Изменения
ГДЕ
     Узел = &НужныйУзелПланаОбмена
.

Если Вы предпочитаете создавать запросы через конструктор запроса, то в нем есть специальная секретная кнопочка, которая включает доступ к таблицам планов обмена:

 


Проголосовать за этот пост:

1 Star2 Stars3 Stars4 Stars5 Stars (56 голосов, среднее: 4,43 из 5)
Загрузка...

Добавить комментарий