Отключить запись версий объектов при выполнении групповых обработок

1. sonGodv 43 01.12.17 11:57 Сейчас в теме
Приветствую, коллеги!
Столкнулся с такой задачей, которую хотелось бы решить.
Изменяю и записываю большое количество номенклатуры в базе УТ 11.3. При этом включена функциональная опция "Хранить историю изменений", соответственно создаются версии. В целях оптимизации обработки, хотелось бы в коде отключить запись версий.
Никто не сталкивался с такой задачей?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. dandykry 10 01.12.17 12:05 Сейчас в теме
(1) Есть подписка на событие, которая делает записи. В ее коде есть такой код:

Если Источник.ОбменДанными.Загрузка
И Источник.ДополнительныеСвойства.Свойство("ПропуститьЗаписьВерсииОбъекта")
И ПривилегированныйРежим() Тогда
Возврат;
КонецЕсли;

Соответственно, когда записываете номенклатуру сделайте

ОбъектНоменклатура.ДополнительныеСвойства.Вставить("ПропуститьЗаписьВерсииОбъекта")
ОбъектНоменклатура.Записать();
(2) Тоже поможет.
4. japopov 68 01.12.17 15:25 Сейчас в теме
(3)
Ну, так, тут же все условия и написаны! :-)
УстановитьПривилегированныйРежим(Истина);
//-- Ваш код
Для Каждого ПозицияНоменклатуры Из ОткудаВыТамПолучаетеПереченьОбрабатываемойНоменклатуры Цикл
    ОбрабатываемыйОбъект = ПозицияНоменклатуры.ПолучитьОбъект();
    //-- тут Ваш код
    ОбрабатываемыйОбъект.ДополнительныеСвойства.Вставить("ПропуститьЗаписьВерсииОбъекта",Истина);
    ОбрабатываемыйОбъект.ОбменДанными.Загрузка = Истина;
    ОбрабатываемыйОбъект.Записать()
КонецЦикла;
//--
УстановитьПривилегированныйРежим(Ложь);
Показать
2. fromtomike 48 01.12.17 12:02 Сейчас в теме
Возможно поможет установка такого свойства объекта перед записью:

СправочникОбъект.ОбменДанными.Загрузка = Истина;
5. sonGodv 43 01.12.17 15:32 Сейчас в теме
Отлично. Подписку сегодня обнаружил, но не успел посмотреть. Благодарю за помощь!
6. sonGodv 43 02.12.17 00:41 Сейчас в теме
А как быть в ситуации, когда я запись делаю в Подписке, ПриЗаписи? Тут похоже никак не отключить запись версии, так как подписка ЗапасатьВерсию срабатывает Перед записью
7. sonGodv 43 25.01.18 13:01 Сейчас в теме
Снова столкнулся с такой задачей. В данном случае, делаю обработку загрузки номенклатуры из Excel. Кроме основных данных заполняются также ДРС (дополнительные реквизиты и сведения). При записи ДРС использую процедуру БСП УправлениеСвойствами.ЗаписатьСвойстваУОбъекта.
В такой ситуации вышепредложенные методы не работают, так как у при записи ДРС объект получается по ссылке со значениям
ОбменДанными.Загрузка = Истина

Однако решение найдено в процедуре записи версии есть еще одна проверка, в которой проверяется параметр сеанса.
Если установить его в Истину, то лишние версии не записываются.

ПараметрыСеанса.ВыполняетсяЗаписьОбъекта = Истина;
УправлениеСвойствами.ЗаписатьСвойстваУОбъекта(НовыйЭлемент.Ссылка, МассивДопРеквизитов);
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот