Каталог решений - Заметка о процедуре ОбработкаУдаленияПроведения() из модуля документа ЗаявкаНаОткрытиеСчетов типового 1С:ЗУП (2.5.80.2)

Заметка о процедуре ОбработкаУдаленияПроведения() из модуля документа ЗаявкаНаОткрытиеСчетов типового 1С:ЗУП (2.5.80.2)

Заметка о процедуре ОбработкаУдаленияПроведения() из модуля документа ЗаявкаНаОткрытиеСчетов типового 1С:ЗУП (2.5.80.2)

В наличии

Включил замер производительности при тестировании обмена с банками заявками на открытие лицевых счетов и…

Категория:

Описание

И увидел постоянный вызов ОбработкаУдаленияПроведения модуля документа «ЗаявкаНаОткрытиеСчетов» при попытке перезаписи ранее проведенных документов «ЗаявкаНаОткрытиеСчетов».
С чего это вдруг? Ведь документ как был проведенным, так и остается. В табличке документа программно редактируется реквизит и далее он просто перезаписывается.
Стек вызов быстро дает ответ. Собственно код из модуля документа «ЗаявкаНаОткрытиеСчетов»:

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
 
 Если ОбменДанными.Загрузка Тогда
  Возврат;
 КонецЕсли;
 
 Если Проведен Тогда     
  ОбъектВБазе = Ссылка.ПолучитьОбъект();
  мОрганизация = ОбъектВБазе.Организация;
  мБанк = ОбъектВБазе.Банк;
  ОбработкаУдаленияПроведения(Ложь);
 КонецЕсли;
 
 Если РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда
  Запрос = Новый Запрос;

Становится очевидно, что обработка ОбработкаУдаленияПроведения() вызывается при любых действиях с уже проведенным документом.
В том числе и когда мы хотим просто перезаписать документ программно.
По ряду причин лучше переписать в типовой код так:

 Если НЕ РежимЗаписи = РежимЗаписиДокумента.ЗаписьТогда    

 // 

 ОбработкаУдаленияПроведения(Ложь);
КонецЕсли;

вместо 
  Если Проведен Тогда

//

ОбработкаУдаленияПроведения(Ложь);
КонецЕсли;

 

Дожидаться выпуска обновления, если конфа снята с поддержки не имеет смысла.

Если делаете частую перезапись «ЗаявокНаОткрытиеСчетов», то рекомендую.

has been added to your cart:
Оформление заказа