|
V7 - в форме документа при вызове Записать() не выполняется ПриЗаписи() - может кто помнит |
☑ |
0
Джордж1
10.01.22
✎
15:50
|
Документ. Перед Печатью записываем документ методом Записать(), но почему то при этом не вызывается предопределенная процедура ПриЗаписи()
В справке написано что Записать() аналогичен интерактивной записи
|
|
1
Kigo_Kigo
10.01.22
✎
15:53
|
Насколько я помню, при Записать() в процедуру ПриЗаписи() не входит
|
|
2
Kigo_Kigo
10.01.22
✎
15:54
|
|
|
3
Джордж1
10.01.22
✎
15:55
|
И как тогда ее вызвать да еще со проверкой выполнения
При обычной записи все проверки в ПриЗаписи() и там СтатусВозврата(0) и отмена записи если нужно
|
|
4
Kigo_Kigo
10.01.22
✎
15:56
|
(3) Читай в (2) там все отоветы
|
|
5
Джордж1
10.01.22
✎
15:57
|
(4)Не весело. Сейчас вся коонфа унифицирована, а тут придется костыли делать
|
|
6
Kigo_Kigo
10.01.22
✎
15:58
|
(5) Так в лоб вызывай ПриЗаписи(), тя никто за это не укусит
|
|
7
Джордж1
10.01.22
✎
15:59
|
(6)Так мне надо проверить - как она отраблотала
|
|
8
Харлампий Дымба
10.01.22
✎
16:04
|
В типовой ЗиКе так
Процедура ПриЗаписи()
ПередЗаписью();
КонецПроцедуры // ПриЗаписи
а в Функция ПередЗаписью() запихиваешь всё, что было в ПриЗаписи(), и если СтатусВозврата(0) то возвращай себе 0.
И тогда в Печать():
Если ПриЗаписи()=1 Тогда
Записать();
Печать();
|
|
9
Джордж1
10.01.22
✎
16:05
|
Вот так малой кровью вроде работает
ПриЗаписи();
Если СтатусВозврата()=1 Тогда
Записать();
Иначе
Возврат;
КонецЕсли;
|
|
10
trad
10.01.22
✎
16:06
|
(7) СтатусВозврата() - это еще и функция
|
|
11
Харлампий Дымба
10.01.22
✎
16:07
|
(9) Идеально
|
|
12
Джордж1
10.01.22
✎
16:08
|
(10)это да. только вот за пределами процедуры вызова - непонятно что она возвращает
|
|
13
серый КТУЛХУ
10.01.22
✎
16:38
|
(12): ну, вообще-то - известно.
при начале выполнения любого куска кода (включая модальные вызовы) СтатусВозврата() возвращает единицу. в процессе выполнения кода он может бытьть изменен программно или встроенными средствами 1с.
|
|
14
Джордж1
10.01.22
✎
16:50
|
(13)в документации сказано про некое "действие" - а вот что это такое - непонятно.
|
|
15
Харлампий Дымба
10.01.22
✎
22:51
|
(14) Некое действие - это вызов СтатусВозврата(0), ну или СтатусВозврата(1). То есть ты в одной из процедур/функций делаешь СтатусВозврата(0), то потом тебе по всему стеку вызовов функция СтатусВозврата() будет возвращать ноль. После выхода из последней процедуры значение СтатусВозврата() опять вернётся в единицу. Если после установки СтатусВозврата(0) в этом же стеке вызовов будет выполняться предопределенная процедура, то при завершении отработки этой процедуры, системно событие выполняться не будет.
В документации написано, что устанавливать СтатусВозврата() имеет смысл только в теле предопределенных процедур, но это немного не так. СтатусВозврата() прекрасно отрабатывает свои функции и в пользовательских процедурах, вызванных из предопределенных.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший