| 
    
        
     
     | 
    
  | 
Ошибка кода из общего модуля при перепроведении | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        MAPATNK2    
     naïve 
    15.02.22 
            ✎
    17:00 
 | 
         
        1С:Предприятие 8.3 (8.3.17.1851)
 
        УПП (1.3.171.1) В общем модуле есть процедура проверки НДС в табличной части Заказа покупателя. Манагеры часто НДС у организаций путают. В случае обнаружения неверного НДС вызывается диалог, где предлагается изменить НДС. ВЫЗЫВАЕТСЯ ПриЗаписи() на ФОРМЕ документа. Не в модуле документа, а на форме. При перепроведении документов, летит ошибка этого кода, что {ОбщийМодуль._Общий.Модуль(2109,13)}: Переменная не определена (РежимДиалогаВопрос). НО как она вызывает эту процедуру, ведь она запускается только из формы??? В чем пробелма тут. Я даже попытку добавил, но попытку игнорит. В отладчике словить не могу, когда она лезет в эту процедуру.  | 
|||
| 
    1
    
        MAPATNK2    
     naïve 
    15.02.22 
            ✎
    17:00 
 | 
         
        help     
         | 
|||
| 
    2
    
        MAPATNK2    
     naïve 
    15.02.22 
            ✎
    17:04 
 | 
         
        Закинул процедуру в общий модуль, а не сразу на форму (там только вызов этой процедуры), т.к. планирую обновлять УПП, чтобы меньше проблем было при обнове.     
         | 
|||
| 
    3
    
        Casey1984    
     15.02.22 
            ✎
    17:05 
 | 
         
        (0) "Переменная не определена (РежимДиалогаВопрос)"
 
        Видать код на сервере выполняется, там нет этого РежимДиалогаВопрос.  | 
|||
| 
    4
    
        MAPATNK2    
     naïve 
    15.02.22 
            ✎
    17:08 
 | 
         
        (3) ДАк почему он вообще выполняется то? Он вызывается только из формы при записи. Всё. 
 
        При перепроведении документа код разве лезет в Форму?  | 
|||
| 
    5
    
        Kigo_Kigo    
     15.02.22 
            ✎
    17:10 
 | 
         
        В отладчике словить не могу, когда она лезет в эту процедуру.
 
        Отладку на сервере включи, и чую не в обработке на форме она выскакивает  | 
|||
| 
    6
    
        MAPATNK2    
     naïve 
    15.02.22 
            ✎
    17:15 
 | 
         
        (5) Отладка на сервере включена. В Автоподключении "Клиентские и внешние соединения на сервере" +" Фоновые задания".  Это не помогает. В процедуру не заходит якобы.
 
        Это возникает при ПЕРЕПРОВЕДЕНИИ ДОКУМЕНТОВ за период.  | 
|||
| 
    7
    
        MAPATNK2    
     naïve 
    15.02.22 
            ✎
    17:20 
 | 
         
        Проверил, при перепроведении по Форме не ходит. Поиском прошелся. Процедура проверки стоит только на форме "ПриЗАписи()". Во время отладки к ней не идет. Черт знает в чем пробелма.     
         | 
|||
| 
    8
    
        Kigo_Kigo    
     15.02.22 
            ✎
    17:22 
 | 
         
        включи стек вызовов и замер производительности и глЯди резкльтаты     
         | 
|||
| 
    9
    
        Kigo_Kigo    
     15.02.22 
            ✎
    17:22 
 | 
         
        *результаты     
         | 
|||
| 
    10
    
        MAPATNK2    
     naïve 
    15.02.22 
            ✎
    17:23 
 | 
         
        (8) А что мне это даст. Ну явно моя процедура вызывается. Вопрос почему вызывается процедура из формы документа при массовом перепроведении. И как это исправить?     
         | 
|||
| 
    11
    
        youalex    
     15.02.22 
            ✎
    17:26 
 | 
         
        Это не вызов процедуры, а ошибка инициализации ОМ. Можно предположить, что возникает при первом обращении к этому ОМ из серверного контекста.     
         | 
|||
| 
    12
    
        hhhh    
     15.02.22 
            ✎
    17:28 
 | 
         
        (10) может не процедура а сам общий модуль этот вызывается. Проконтролируй, чтобы эта твоя процедура была в отдельном общем модуле.     
         | 
|||
| 
    13
    
        MAPATNK2    
     naïve 
    15.02.22 
            ✎
    17:34 
 | 
         
        (12) Ага, вынес в отдельный общий модуль, заработало.
 
        Как разобраться, в чем все же проблема была?  | 
|||
| 
    14
    
        ДенисЧ    
     15.02.22 
            ✎
    17:36 
 | 
         
        (13) #Если Клиент Тогда
 
        забыл  | 
|||
| 
    15
    
        MAPATNK2    
     naïve 
    15.02.22 
            ✎
    17:41 
 | 
         
        (14) Блин. Да. Спасибо.     
         | 
|||
| 
    16
    
        MAPATNK2    
     naïve 
    16.02.22 
            ✎
    12:53 
 | 
         
        Чтобы в дальнейшем не запутаться. Проблема была именно в общем модуле. Там установлены флаги Клиент, Сервер. Пример из (14) "#Если Клиент Тогда" в такой модуль вставлять нельзя (Пруф https://its.1c.ru/db/v8std/content/439/hdoc), т.к. программа не может определить явно с клиента или сервера вызывается этот код, поэтому нужно вытаскивать в отдельный общий модуль с флагом "Клиент" и прописывать туда код.     
         | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |