|
Записать на управляемой форме документа | ☑ | ||
---|---|---|---|---|
0
SeraFim
03.03.14
✎
16:21
|
Есть такой вот метод в управляемой форме документа:
Расширение управляемой формы для документа (Managed form extension for documents)
Сделал на форме кнопочку, а в обработке проведения - сразу отказ от проведения:
Казалось бы, всё просто и логично - записать с проведением не получилось, метод должен вернуть ЛОЖЬ, но не тут-то было, валится с ошибкой:
Что не так-то? То ли лыжи не едут, то ли я? |
|||
1
SeraFim
03.03.14
✎
16:22
|
P.S. 1С:Предприятие 8.2 (8.2.18.102)
|
|||
2
alexei366
03.03.14
✎
16:33
|
А если на сервере тож самое или как?
|
|||
3
SeraFim
03.03.14
✎
16:35
|
(2) да
|
|||
4
alexei366
03.03.14
✎
16:37
|
(3) Я по другому делаю, чтоб описание ошибки на форму попадала при обработке модуля объекта (могу рассказать как, если надо)
|
|||
5
SeraFim
03.03.14
✎
16:43
|
(4) спасибо, но вопрос не в этом (не связан с выводом описания ошибки)
|
|||
6
Дмитрий666
03.03.14
✎
17:07
|
все верно, попробуй интерактивно провести документ, у которого прописано отказ=истина, выйдет ошибка "не удалось провести..."
|
|||
7
Avganec
03.03.14
✎
17:44
|
(0) а по-моему все логично
|
|||
8
SeraFim
03.03.14
✎
17:53
|
(6) разного рода ошибки (не будет "Ошибка при вызове метода контекста (Записать)")
(7) а по-моему - нет. Почему в данной ситуации не возвращается Ложь? Ведь записать с такими параметрами не удалось! |
|||
9
Avganec
03.03.14
✎
17:54
|
(8) это уже механизм проведения документа, а до этого еще отдельно механизм записи документа. вешай попытки, продумывай логику.
|
|||
10
SeraFim
03.03.14
✎
17:59
|
(9) механизм записи документа включает в себя механизм проведения документа.
параметр так и называется: РежимЗАПИСИДокумента.Проведение |
|||
11
ifso
03.03.14
✎
18:16
|
(10) Любой документ обязан быть проведен?
|
|||
12
hhhh
03.03.14
✎
18:25
|
(10) а откуда инфа, что Записать() возвращает булево?
|
|||
13
SeraFim
04.03.14
✎
06:37
|
(12)из синтакс-помощника) не путать с методом объекта! Это метод формы!
|
|||
14
Feunoir
04.03.14
✎
07:08
|
(13) Попробуй ради интереса поставить отказ в обработчике ПередЗаписью и записать без проведения. Просто ради эксперимента.
|
|||
15
1dvd
04.03.14
✎
07:28
|
(13) так ты и делай для формы тогда
Если ЭтаФорма.Записать(... |
|||
16
Feunoir
04.03.14
✎
07:35
|
(15) А ты как думаешь, если в УФ просто вызвать метод Записать(), то какой метод вызовется на самом деле?
|
|||
17
Дмитрий666
04.03.14
✎
08:25
|
ошибка одна и та же "не удалось провести...", какая разница при вызове контекста записать() или нет. А сообщение не выходит потому что когда выходит ошибка, то останавливается выполнение кода и не доходит то строчки
Сообщить("Провелось!"); Иначе Сообщить("Не провелось!"); КонецЕсли; Возвращаемое значение: Тип: Булево. Истина - успешно записан; Ложь - в противном случае. Истина или ложь - если успешно записан/не записан, а не проведен |
|||
18
Feunoir
04.03.14
✎
08:39
|
(17) В СП написано, что при неуспешной записи метод должен возвращать Ложь, а про то, что выбрасывается исключение там не написано. То есть поведение системы не соответствует документации. Вот поэтому тема и началась. По факту получается, что при успешной записи Истина, при неуспешной - исключение.
|
|||
19
Дмитрий666
04.03.14
✎
09:45
|
(18) ошибка вызывается при не успешном проведении документа, а не записи
|
|||
20
Дмитрий666
04.03.14
✎
09:56
|
прописал такой код:
&НаКлиенте Процедура Команда2(Команда) Если Записать() тогда Сообщить("Провелось!"); Иначе Сообщить("Не провелось!"); КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) отказ=истина; КонецПроцедуры все ок, выходит "не провелось", ну это типа не записалось, лень было текст менять... если прописать в модуле объекта Процедура ПриЗаписи(Отказ) отказ=истина; КонецПроцедуры тогда ошибка "не удалось записать..." метод возвращает истина или ложь только если запись отменяется в форме, а не в объекте, я так понял |
|||
21
SeraFim
04.03.14
✎
09:57
|
(14) о как) Тоже ошибка)
(19) опередил) |
|||
22
SeraFim
04.03.14
✎
09:57
|
(21) (19)=(20)
|
|||
23
Дмитрий666
04.03.14
✎
09:58
|
и кстати
Параметры записи можно обработать в событиях формы ПередЗаписью, ПередЗаписьюНаСервере, ПриЗаписиНаСервере, ПослеЗаписиНаСервере, ПослеЗаписи. |
|||
24
SeraFim
04.03.14
✎
10:02
|
(20)
ДокументОбъект.<Имя документа> (DocumentObject.<Имя документа>) ПриЗаписи (OnWrite) Возникает при записи объекта. Процедура-обработчик вызывается после записи объекта в базу данных, но до окончания транзакции записи. Получается, как-то вот так: Физически объект записан в базу - значит все нормально. Если же отказались уже после записи в базу (неважно в какой момент, при проведении или же сразу после записи), значит, возникает ошибка - записать же удалось! Но такие вот особенности должны быть прописаны в документации. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |