|
v7: Напомните, как победить фичу 77 при выборе реквизита ТЧ ссылочного типа |
☑ |
0
2S
15.03.20
✎
21:43
|
срабатывает дважды. Первый раз - при выборе как и положено, второй - перед окончанием редактирования строки, когда пытаюсь снять фокус с поля таблицы
вот элементарный код
Процедура ПриВыбореПартии()
Если Материал.Выбран() = 1 Тогда
Если Вопрос("Какой-то нужный вопрос. Продолжить?", "Да+Нет") = "Да" Тогда
ТекМатериал = СоздатьОбъект("Справочник.Материалы");
ТекМатериал.НайтиЭлемент(Материал);
//чего-то делаем
ТекМатериал.Записать();
Форма.Обновить();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
|
|
1
Garykom
гуру
15.03.20
✎
22:07
|
(0) Условием победи
|
|
2
Garykom
гуру
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) ПриВыбореПартии() - отрабатывает на последнем реквизите ввода по строке?
|
|
6
2S
15.03.20
✎
22:13
|
(3) Сергей, те же яйца
Форма.Обновить не влияет, проверено.
Нужно программно менять наименование ТМЦ, поэтому и обновляем форму.
(5) Да, крайний реквизит в ТЧ, но это тоже не панацея.
|
|
7
2S
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 раза срабатывает.. занятно, никогда не сталкивался...
.
я вообще по строке ввоожу только тривиальные вещи типа "классификаторов".
.
вводить в форме элемента - не выход?
|
|
11
2S
15.03.20
✎
22:23
|
(8) вооот, что-то похожее на отмену стандартной обработки было...
но уже сделано в лоб, как Garykom посоветовал
Процедура ПриНачалеРедактированияСтроки()
ПартияВыбрана = 0;
КонецПроцедуры
Процедура ПриВыбореПартии()
Если (ПартияВыбрана = 0) И (Материал.Выбран() = 1) Тогда
и т.д.
закрываем, спасибо
|
|
12
Злопчинский
15.03.20
✎
22:24
|
(8) тут хз, ТС же не указывает ПриВыбореПартии() - на каком реквизите и когда отрабатывает и как связан с другими реквизитами.
Если ПриВыбореПартии() - на реквизите "Материал" - то ПриНачале - очевидно - не покатит.. ибо материал еще не выбран/не изменен.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший