Modber Сообщество
профессионалов по 1С

Как получить данные об измененных объектах



Платформы: 1С:Предприятие 8.2, 1С:Предприятие 8.1
Конфигурации: 1С:Бухгалтерия, 1С:Комплексная автоматизация, 1С:Управление торговлей, Другие конфигурации
2012-11-17
7167 

 

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

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

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

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

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

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

Давайте предположим, что вы уже для себя создали два плана обмена, в каждом из которых есть по одному узлу, например узел «1» и узел «2». Соответственно при изменении товара «Яблоко» в следующую таблицу попадут две строки:

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

Таблицы плана обмена

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

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

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




Бесплатная юридическая
консультация по телефону

8 (499) 350-80-26(Москва)
8 (812) 627-15-62(Спб)

звонок бесплатный

В центре внимания

Комментарии (0)