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

v7: Напомните, как победить фичу 77 при выборе реквизита ТЧ ссылочного типа

v7: Напомните, как победить фичу 77 при выборе реквизита ТЧ ссылочного типа
Я
   2S
 
15.03.20 - 21:43
срабатывает дважды. Первый раз - при выборе как и положено, второй - перед окончанием редактирования строки, когда пытаюсь снять фокус с поля таблицы
вот элементарный код
Процедура ПриВыбореПартии()

    Если Материал.Выбран() = 1 Тогда
        Если Вопрос("Какой-то нужный вопрос. Продолжить?", "Да+Нет") = "Да" Тогда
            ТекМатериал = СоздатьОбъект("Справочник.Материалы");
            ТекМатериал.НайтиЭлемент(Материал);
            //чего-то делаем
            ТекМатериал.Записать();  
            Форма.Обновить();
        КонецЕсли;  
        
    КонецЕсли;    
    
КонецПроцедуры
 
 
   Garykom
 
1 - 15.03.20 - 22:07
(0) Условием победи
   Garykom
 
2 - 15.03.20 - 22:07
(1)+ Через Перем
   Злопчинский
 
3 - 15.03.20 - 22:08
пока немного в сторону...
меня напрочь вымораживают много этажные конструкции. в которых не поймешь что делается пока не дойдешь до конца.
я (имхо) пишу линейнее
.
Процедура ПриВыбореПартии()

    Если Материал.Выбран() = 0 Тогда Возврат; КонецЕсли;//уже все ясно

    Если Вопрос("Какой-то нужный вопрос. Продолжить?", "Да+Нет") <> "Да" Тогда Возврат; КонецЕсли;//уже все ясно


    ТекМатериал = СоздатьОбъект("Справочник.Материалы");
    ТекМатериал.НайтиЭлемент(Материал);
    //чего-то делаем

    ТекМатериал.Записать();  
    Форма.Обновить();//это мне сильно не нравится


КонецПроцедуры
   Злопчинский
 
4 - 15.03.20 - 22:09
"перед оконанием" - нет такого, есть после окончания редактирования, когда фокус ушел
   Злопчинский
 
5 - 15.03.20 - 22:10
(0) ПриВыбореПартии() - отрабатывает на последнем реквизите ввода по строке?
   2S
 
6 - 15.03.20 - 22:13
(3) Сергей, те же яйца
Форма.Обновить не влияет, проверено.
Нужно программно менять наименование ТМЦ, поэтому и обновляем форму.
(5) Да, крайний реквизит в ТЧ, но это тоже не панацея.
   2S
 
7 - 15.03.20 - 22:13
(1) не, я помню, была какая-то микстура
   Сияющий в темноте
 
8 - 15.03.20 - 22:19
а почему при выборе,а не при начале выбора?
   Злопчинский
 
9 - 15.03.20 - 22:21
(6) это ж понятно что те же яйца, это ж не по сути проблемы замечание...
   Злопчинский
 
10 - 15.03.20 - 22:22
проверил, действительно 2 раза срабатывает.. занятно, никогда не сталкивался...
.
я вообще по строке ввоожу только тривиальные вещи типа "классификаторов".
.
вводить в форме элемента - не выход?
   2S
 
11 - 15.03.20 - 22:23
(8) вооот, что-то похожее на отмену стандартной обработки было...

но уже сделано в лоб, как Garykom посоветовал
Процедура ПриНачалеРедактированияСтроки()   
    
    ПартияВыбрана = 0;
    
КонецПроцедуры


Процедура ПриВыбореПартии()

    Если (ПартияВыбрана = 0) И (Материал.Выбран() = 1) Тогда 

и т.д.

закрываем, спасибо
   Злопчинский
 
12 - 15.03.20 - 22:24
(8) тут хз, ТС же не указывает ПриВыбореПартии() - на каком реквизите и когда отрабатывает и как связан с другими реквизитами.
Если ПриВыбореПартии() - на реквизите "Материал" - то ПриНачале - очевидно - не покатит.. ибо материал еще не выбран/не изменен.

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