Записать на управляемой форме документа #700657


#0 by SeraFim
Есть такой вот метод в управляемой форме документа: Сделал на форме кнопочку, а в обработке проведения - сразу отказ от проведения: Казалось бы, всё просто и логично - записать с проведением не получилось, метод должен вернуть ЛОЖЬ, но не тут-то было, валится с ошибкой: Что не так-то? То ли лыжи не едут, то ли я?
#1 by SeraFim
P.S. 1С:Предприятие 8.2 (8.2.18.102)
#2 by alexei366
А если на сервере тож самое или как?
#3 by SeraFim
да
#4 by alexei366
Я по другому делаю, чтоб описание ошибки на форму попадала при обработке модуля объекта (могу рассказать как, если надо)
#5 by SeraFim
спасибо, но вопрос не в этом (не связан с выводом описания ошибки)
#6 by Дмитрий666
все верно, попробуй интерактивно провести документ, у которого прописано отказ=истина, выйдет ошибка "не удалось провести..."
#7 by Avganec
а по-моему все логично
#8 by SeraFim
разного рода ошибки (не будет "Ошибка при вызове метода контекста (Записать)") а по-моему - нет. Почему в данной ситуации не возвращается Ложь? Ведь записать с такими параметрами не удалось!
#9 by Avganec
это уже механизм проведения документа, а до этого еще отдельно механизм записи документа. вешай попытки, продумывай логику.
#10 by SeraFim
механизм записи документа включает в себя механизм проведения документа. параметр так и называется: РежимЗАПИСИДокумента.Проведение
#11 by ifso
Любой документ обязан быть проведен?
#12 by hhhh
а откуда инфа, что Записать возвращает булево?
#13 by SeraFim
из синтакс-помощника) не путать с методом объекта! Это метод формы!
#14 by Feunoir
Попробуй ради интереса поставить отказ в обработчике ПередЗаписью и записать без проведения. Просто ради эксперимента.
#15 by 1dvd
так ты и делай для формы тогда Если ЭтаФорма.Записать(...
#16 by Feunoir
А ты как думаешь, если в УФ просто вызвать метод Записать, то какой метод вызовется на самом деле?
#17 by Дмитрий666
ошибка одна и та же "не удалось провести...", какая разница при вызове контекста записать или нет. А сообщение не выходит потому что когда выходит ошибка, то останавливается выполнение кода и не доходит то строчки Сообщить("Провелось!"); Возвращаемое значение: Тип: Булево. Истина - успешно записан; Ложь - в противном случае. Истина или ложь - если успешно записан/не записан, а не проведен
#18 by Feunoir
В СП написано, что при неуспешной записи метод должен возвращать Ложь, а про то, что выбрасывается исключение там не написано. То есть поведение системы не соответствует документации. Вот поэтому тема и началась. По факту получается, что при успешной записи Истина, при неуспешной - исключение.
#19 by Дмитрий666
ошибка вызывается при не успешном проведении документа, а не записи
#20 by Дмитрий666
прописал такой код: все ок, выходит "не провелось", ну это типа не записалось, лень было текст менять... если прописать в модуле объекта Процедура ПриЗаписи(Отказ) КонецПроцедуры тогда ошибка "не удалось записать..." метод возвращает истина или ложь только если запись отменяется в форме, а не в объекте, я так понял
#21 by SeraFim
о как) Тоже ошибка) опередил)
#22 by SeraFim
=
#23 by Дмитрий666
Параметры записи можно обработать в событиях формы ПередЗаписью, ПередЗаписьюНаСервере, ПриЗаписиНаСервере, ПослеЗаписиНаСервере, ПослеЗаписи.
#24 by SeraFim
ДокументОбъект.<Имя документа> (DocumentObject.<Имя документа>) ПриЗаписи (OnWrite) Возникает при записи объекта. Процедура-обработчик вызывается после записи объекта в базу данных, но до окончания транзакции записи. Получается, как-то вот так: Физически объект записан в базу - значит все нормально. Если же отказались уже после записи в базу (неважно в какой момент, при проведении или же сразу после записи), значит, возникает ошибка - записать же удалось! Но такие вот особенности должны быть прописаны в документации.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С