Внезапно: Док.ПриЗаписи() не отрабатывает если Док.НомерДок - не заполнен...

Автор Злоп, 09 февраля 2026, 23:22

« назад - далее »

Злоп

Собственно сабж.
У клиента сломанная напрочь типовая нумерация, пришлось писать "костыль", где номер документа присваивался по алгоритму в ПриЗаписи(). Выяснилось что в ПриЗаписи() даже не заходит (по штатной кнопке Записать), если НомерДок - пусто...

Харлампий Дымба

Ну там не отрабатывает системная команда #Записать, если номер не указан - курсор прыгает в НомерДок и ждёт ввода. При этом если на кнопку повесить программную команду Записать() - документ прекрасно запишется и с пустым номером. Предопределенная ПриЗаписи() при этом, правда, не вызывается.
Можно командную строку кнопки 'Записать' (и 'ОК' тоже) сделать типа "ПередЗаписью() #Записать" и в процедуре ПередЗаписью() заниматься номером документа, тогда последующая #Записать отработает как положено.
А лучше всего убрать ему автонумерацию и номер документа присваивать не в ПриЗаписи(), а в ВводНового() и ВводНаОсновании().

Злоп


Харлампий Дымба

Добавочек к:
Цитата
там не отрабатывает системная команда #Записать, если номер не указан - курсор прыгает в НомерДок и ждёт ввода
А  вот если реквизита НомерДок на форме нет, то #Записать при пустом номере документа спокойно отрабатывает и ПриЗаписи() тоже вызывается.
Значит можно ещё один вариант использовать:
Положить на форму поле НомерДок1 с формулой НомерДок=НомерДок1, ну и модуле формы при любых программных изменениях НомерДок изменять параллельно и НомерДок1.