Отключить запись версий объектов при выполнении групповых обработок
Приветствую, коллеги!
Столкнулся с такой задачей, которую хотелось бы решить.
Изменяю и записываю большое количество номенклатуры в базе УТ 11.3. При этом включена функциональная опция "Хранить историю изменений", соответственно создаются версии. В целях оптимизации обработки, хотелось бы в коде отключить запись версий.
Никто не сталкивался с такой задачей?
Столкнулся с такой задачей, которую хотелось бы решить.
Изменяю и записываю большое количество номенклатуры в базе УТ 11.3. При этом включена функциональная опция "Хранить историю изменений", соответственно создаются версии. В целях оптимизации обработки, хотелось бы в коде отключить запись версий.
Никто не сталкивался с такой задачей?
По теме из базы знаний
- Универсальный редактор реквизитов объектов. Мультиобработчик
- Проведение/снятие с проведения документов/очистки движений не проведенных, перезаписи ссылочных объектов с отборами для баз 1С 8.1-8.3 УТ 10.3/11, БП 2/3, КА 1.1/2, УНФ 1.6, ЗУП 3
- Версионирование справочников, документов и регистров сведений на SQL-сервере
- Хранилище внешних отчетов и обработок (интегрируемый модуль)
- Управление сборкой. Расширение для конфигурации СППР
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Есть подписка на событие, которая делает записи. В ее коде есть такой код:
Если Источник.ОбменДанными.Загрузка
И Источник.ДополнительныеСвойства.Свойство("ПропуститьЗаписьВерсииОбъекта")
И ПривилегированныйРежим() Тогда
Возврат;
КонецЕсли;
Соответственно, когда записываете номенклатуру сделайте
ОбъектНоменклатура.ДополнительныеСвойства.Вставить("ПропуститьЗаписьВерсииОбъекта")
ОбъектНоменклатура.Записать();
(2) Тоже поможет.
Если Источник.ОбменДанными.Загрузка
И Источник.ДополнительныеСвойства.Свойство("ПропуститьЗаписьВерсииОбъекта")
И ПривилегированныйРежим() Тогда
Возврат;
КонецЕсли;
Соответственно, когда записываете номенклатуру сделайте
ОбъектНоменклатура.ДополнительныеСвойства.Вставить("ПропуститьЗаписьВерсииОбъекта")
ОбъектНоменклатура.Записать();
(2) Тоже поможет.
(3)
Ну, так, тут же все условия и написаны! :-)
Ну, так, тут же все условия и написаны! :-)
УстановитьПривилегированныйРежим(Истина);
//-- Ваш код
Для Каждого ПозицияНоменклатуры Из ОткудаВыТамПолучаетеПереченьОбрабатываемойНоменклатуры Цикл
ОбрабатываемыйОбъект = ПозицияНоменклатуры.ПолучитьОбъект();
//-- тут Ваш код
ОбрабатываемыйОбъект.ДополнительныеСвойства.Вставить("ПропуститьЗаписьВерсииОбъекта",Истина);
ОбрабатываемыйОбъект.ОбменДанными.Загрузка = Истина;
ОбрабатываемыйОбъект.Записать()
КонецЦикла;
//--
УстановитьПривилегированныйРежим(Ложь);
Показать
Снова столкнулся с такой задачей. В данном случае, делаю обработку загрузки номенклатуры из Excel. Кроме основных данных заполняются также ДРС (дополнительные реквизиты и сведения). При записи ДРС использую процедуру БСП УправлениеСвойствами.ЗаписатьСвойстваУОбъекта.
В такой ситуации вышепредложенные методы не работают, так как у при записи ДРС объект получается по ссылке со значениям
ОбменДанными.Загрузка = Истина
Однако решение найдено в процедуре записи версии есть еще одна проверка, в которой проверяется параметр сеанса.
Если установить его в Истину, то лишние версии не записываются.
В такой ситуации вышепредложенные методы не работают, так как у при записи ДРС объект получается по ссылке со значениям
ОбменДанными.Загрузка = Истина
Однако решение найдено в процедуре записи версии есть еще одна проверка, в которой проверяется параметр сеанса.
Если установить его в Истину, то лишние версии не записываются.
ПараметрыСеанса.ВыполняетсяЗаписьОбъекта = Истина;
УправлениеСвойствами.ЗаписатьСвойстваУОбъекта(НовыйЭлемент.Ссылка, МассивДопРеквизитов);
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот