|   |   | 
| 
 | 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) в этом же стеке вызовов будет выполняться предопределенная процедура, то при завершении отработки этой  процедуры, системно событие выполняться не будет.
 В документации написано, что устанавливать СтатусВозврата() имеет смысл только в теле предопределенных процедур, но это немного не так. СтатусВозврата() прекрасно отрабатывает свои функции и в пользовательских процедурах, вызванных из предопределенных. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |