Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: V7 - в форме документа при вызове Записать() не выполняется ПриЗаписи() - может кто помнит

v7: V7 - в форме документа при вызове Записать() не выполняется ПриЗаписи() - может кто помнит
Я
   Джордж1
 
10.01.22 - 15:50
Документ. Перед Печатью записываем документ методом Записать(), но почему то при этом не вызывается предопределенная процедура ПриЗаписи()

В справке написано что Записать() аналогичен интерактивной записи
   Kigo_Kigo
 
1 - 10.01.22 - 15:53
Насколько я помню, при Записать() в процедуру ПриЗаписи() не входит
   Kigo_Kigo
 
2 - 10.01.22 - 15:54
   Джордж1
 
3 - 10.01.22 - 15:55
И как тогда ее вызвать да еще со проверкой выполнения
При обычной записи все проверки в ПриЗаписи() и там СтатусВозврата(0) и отмена записи если нужно
   Kigo_Kigo
 
4 - 10.01.22 - 15:56
(3) Читай в (2) там все отоветы
   Джордж1
 
5 - 10.01.22 - 15:57
(4)Не весело. Сейчас вся коонфа унифицирована, а тут придется костыли делать
   Kigo_Kigo
 
6 - 10.01.22 - 15:58
(5) Так в лоб вызывай ПриЗаписи(), тя никто за это не укусит
   Джордж1
 
7 - 10.01.22 - 15:59
(6)Так мне надо проверить - как она отраблотала
   Харлампий Дымба
 
8 - 10.01.22 - 16:04
В типовой ЗиКе так
Процедура ПриЗаписи()
ПередЗаписью();
КонецПроцедуры    // ПриЗаписи


а в Функция ПередЗаписью() запихиваешь всё, что было в ПриЗаписи(), и если СтатусВозврата(0) то возвращай себе 0. 
И тогда в Печать():
Если ПриЗаписи()=1 Тогда
Записать();
Печать();
   Джордж1
 
9 - 10.01.22 - 16:05
Вот так малой кровью вроде работает

            ПриЗаписи();
            Если СтатусВозврата()=1 Тогда
                Записать();
            Иначе
                Возврат;
            КонецЕсли;
   trad
 
10 - 10.01.22 - 16:06
(7) СтатусВозврата() - это еще и функция
   Харлампий Дымба
 
11 - 10.01.22 - 16:07
(9) Идеально
   Джордж1
 
12 - 10.01.22 - 16:08
(10)это да. только вот за пределами процедуры вызова - непонятно что она возвращает
   серый КТУЛХУ
 
13 - 10.01.22 - 16:38
(12): ну, вообще-то - известно.
при начале выполнения любого куска кода (включая модальные вызовы) СтатусВозврата() возвращает единицу. в процессе выполнения кода он может бытьть изменен программно или встроенными средствами 1с.
   Джордж1
 
14 - 10.01.22 - 16:50
(13)в документации сказано про некое "действие" - а вот что это такое - непонятно.
   Харлампий Дымба
 
15 - 10.01.22 - 22:51
(14) Некое действие - это вызов СтатусВозврата(0), ну или СтатусВозврата(1). То есть ты в одной из процедур/функций делаешь СтатусВозврата(0), то потом тебе по всему стеку вызовов функция СтатусВозврата() будет возвращать ноль. После выхода из последней процедуры значение СтатусВозврата() опять вернётся в единицу. Если после установки СтатусВозврата(0) в этом же стеке вызовов будет выполняться предопределенная процедура, то при завершении отработки этой  процедуры, системно событие выполняться не будет.
В документации написано, что устанавливать СтатусВозврата() имеет смысл только в теле предопределенных процедур, но это немного не так. СтатусВозврата() прекрасно отрабатывает свои функции и в пользовательских процедурах, вызванных из предопределенных.

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.