Имя: Пароль:
1C
1C 7.7
v7: Выполнить действия над документом после закрытия его формы
0 ildary
 
06.01.13
21:06
Уважаемые специалисты, дайте пожалуйста совет, как сделать следующее - при нажатии кнопки в документе, необходимо закрыть его форму и изменить дату этого документа. При этом если сделать тупое Форма.Закрыть() - то действия над объектом Документ ругаются на ошибку "Объект заблокирован", если вызвать эти действия из процедуры ПослеЗакрытия() (подключен Формекс, в его документации сказано "процедура вызывается после физического разрушения окна формы" - то есть блокировка уже должна сняться, но ошибка "Объект заблокирован" повторяется.

Текущая логика работы такая: В документе:
Процедура ПослеЗакрытия()
   
   Если ПустоеЗначение( НадоПеренестиДатуНаСегодня ) = 0 Тогда
       
       глПеренестиЗаявкуНаСегодня( ТекущийДокумент() );
       
   КонецЕсли;
   
КонецПроцедуры //ПослеЗакрытия

В ГМ процедура
Функция   глПеренестиЗаявкуНаСегодня( Конт ) Экспорт
   
   Док1 = СоздатьОбъект( "Документ" );
   Док1.НайтиДокумент( Конт );

   Если Док1.Проведен() = 1 Тогда //Док1.СделатьНепроведенным()
       
       Док1.СделатьНепроведенным(); //ТУТ ОШИБКА
       НадоПровести = 1;
       
   КонецЕсли;
1 ildary
 
06.01.13
21:26
Сам спросил - сам нашел: Книга знаний: Отмена проведения из открытой формы документа, спасибо Rovan-у, Волшебнику и romix-у :)
2 Злопчинский
 
06.01.13
23:53
(1) с факиром проще и кузявее. ОО - бяка..
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший