Имя: Пароль:
1C
1С v8
Программное закрытие выскакивающего окна
0 argon4ik
 
28.04.21
16:18
Доброго времени суток, уважаемые форумчане! Прошу подсказки. Имеется внешняя обработка в конфигурации 1С:УНФ. В заказе покупателя при заполненной табличной части после выбора организации вылезает окно "Цены и валюта". Пытаюсь в процедуре "ОрганизацияПриИзменении" отловить момент открытия формы и закрыть ее. Но особо не получается. Сейчас появляется ошибка отсутствия объекта "ДатаДокумента".
Закрывать пытаюсь так:
Форма = ПолучитьФорму("ОбщаяФорма.ФормаЦеныИВалюта");
  Если Форма.Открыта() Тогда
    Сообщить(Форма.Открыта());
    Форма.Закрыть();                        
  КонецЕсли;
1 del123
 
28.04.21
17:31
Как вариант, поставить точку остановки у формы ФормаЦеныИвалюта в процедуре "ПриСозданииНаСервере" и посотреть Стек вызовов, что бы понять откуда именно она открывается.
2 argon4ik
 
28.04.21
17:40
Откуда открывается - знаю: Процедура ОбработатьИзмененияПоКнопкеЦеныИВалюты(Знач ВалютаРасчетовПередИзменением, ПересчитатьЦены = Ложь, ПерезаполнитьЦены = Ложь, ТекстПредупреждения = "")
Открывается этой строчкой: ОткрытьФорму("ОбщаяФорма.ФормаЦеныИВалюта", СтруктураПараметров, ЭтотОбъект, , , , ОписаниеОповещения, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);

Вот в том и вопрос, как из внешней обработки отменить этот исходный код?..
3 del123
 
28.04.21
18:17
Так, видимо, нужно доработать внешнюю обработку, что бы данная процедура не выполнялась? Полагаю, изменить способ заполнения документа Заказ покупателя
4 dmt
 
28.04.21
18:30
Окна = ПолучитьОкна();
    Для каждого Ок Из Окна Цикл
        Если Ок.Заголовок = "Мое" Тогда
            Ок.Содержимое[0].Закрыть();
        КонецЕсли;
    КонецЦикла;
5 argon4ik
 
29.04.21
14:27
(4)Большое спасибо! То, что нужно!
6 argon4ik
 
29.04.21
14:28
(3) (4) Но вот все-таки очень стал интересовать вопрос, как из обработки можно отменить выполнение строки исходного кода конфигурации?
7 argon4ik
 
29.04.21
15:49
(6) Сделал аннотацией &Вместо, но заменил всю процедуру..
2 + 2 = 3.9999999999999999999999999999999...