Версия для печати темы (https://pro1c.org.ua/index.php?s=76e8575ec8d1faa428f84141c93a3f58&showtopic=46697)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование обычных форм 1С 8.2 и не интерфейсной логики _ Подписка на событие: ошибка при обмене РИБ

Автор: Constantus 16.07.18, 12:00

Приветствую, форумчане!
"Управление торговлей 10.3", (Моби-С 5.5). "ABBYY Ukraine", 2003-2014 (2.3.20.1)

Сделал подписку на события с целью "мягкой" проверки правильного заполнения статей движения денежных средств с возможностью отказа запрета "ПередЗаписью":

Код

Для Каждого СТЧ из Источник.РасшифровкаПлатежа Цикл
        Если СТЧ.СтатьяДвиженияДенежныхСредств.ВаловаяПрибыль
            И НЕ ЗначениеЗаполнено(Источник.ДатаВП) Тогда
            Сообщить("Данная статья (" + СТЧ.СтатьяДвиженияДенежныхСредств + ") предусматривает участие в Отчете по валовой прибыли." + Символы.ПС + "Рекомендуется указать период учета по данной статье. Иначе данные средства не войдут в учет по валовой прибыли.");
            
            Ответ = Вопрос("Требуется ли указать период учета?", РежимДиалогаВопрос.ДаНет,0);
            Если Ответ = КодВозвратаДиалога.Нет Тогда
                Отказ = Ложь;
            Иначе
                Отказ = Истина;  
            КонецЕсли;
            
        КонецЕсли;    
    КонецЦикла;


Ну т.е. была попытка только рекомендовать, если не надо, то и не надо, документ проводится спокойно.

Когда тестировал, всё срабатывало без проблем. Обновил конфигурацию. Запустил обмен РИБ. Сначала автообмен с полными правами и выдало ошибку:


Цитата
{ОбщийМодуль.Мой.Модуль(958,57)}: Переменная не определена (РежимДиалогаВопрос)
Ответ = Вопрос("Требуется ли указать период учета?", <<?>>РежимДиалогаВопрос.ДаНет,0);
{ОбщийМодуль.Мой.Модуль(959,17)}: Переменная не определена (КодВозвратаДиалога)
Если Ответ = <<?>>КодВозвратаДиалога.Нет Тогда
{ОбщийМодуль.Мой.Модуль(958,12)}: Процедура или функция с указанным именем не определена (Вопрос)
Ответ = <<?>>Вопрос("Требуется ли указать период учета?", РежимДиалогаВопрос.ДаНет,0);


Отключил у всех своих обменников "обмен с полными правами". Обмены работают, но автообмен нет, теперь вынужден только в ручную обмен задействовать.

Почему такое случилось? Почему неопределенность переменных и функции "Вопрос" увиделось только при обмене данными? Ну и соответственно автообмен упал.
Что нужно предпринять?

Автор: Petre 16.07.18, 12:58

QUOTE (Constantus @ 16.07.18, 12:00) *
Что нужно предпринять?

Использовать инструкции препроцессора.

Автор: Constantus 16.07.18, 13:05

Petre @ Сегодня, 15:58 * ,


#Если Клиент Тогда???

Куда вставить лучше? На весь код подписок на событие или только на код диалога?

Автор: sava1 16.07.18, 13:17

Если обмен - вооще отказаться от проверки - нафика ?

Автор: Constantus 16.07.18, 14:58

Цитата(sava1 @ 16.07.18, 16:17) *
Если обмен - вооще отказаться от проверки - нафика ?


Вот не совсем понял эту фразу icon_beer17.gif
Так как правильно поступить?

ПС: зря я кажется связался с этими подписками...

Автор: Constantus 17.07.18, 7:40

Что-то я совсем не понял ситуацию... Взял эту ошибочную конфигурацию, сделал для нее узел РИБ, запустил обмен, никаких ошибок по вышеизложенному не стал давать. Всё работает как часы...

Что тогда могло случится?

Автор: Vofka 17.07.18, 8:24

Цитата(Constantus @ 16.07.18, 15:58) *
Вот не совсем понял эту фразу
Так как правильно поступить?

Если обмен происходит в атоматическом режиме по расписанию, то кому по вашему будет адресован Вопрос? Точнее даже так: кто на него ответит?

Автор: sava1 17.07.18, 10:05

Цитата(Constantus @ 16.07.18, 15:58) *
Вот не совсем понял эту фразу icon_beer17.gif


перед записью:

Если ОбменДанными.Загрузка Тогда
        Возврат;
    КонецЕсли;

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua