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

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

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 7.7 _ Подбор значения

Автор: vadim007 09.04.14, 9:35

Здравствуйте. Конфигурация ПУБ 7.70.47.
Процедура ОбработкаПодбора(Выб) не вызывается, если вызывать ОткрытьПодбор("Справочник.ТМЦ","ДляПодбора",Контекст,0,ТМЦ); из процедуры ПриНачалеВыбораЗначения(Рекв,ФлагСтандОбр).
Если вызов ОткрытьПодбор("Справочник.ТМЦ","ДляПодбора",Контекст,0,ТМЦ) привязать к кнопке "Подбор" - то все Ок.
Почему?

Автор: alex040269 09.04.14, 9:46

Цитата(vadim007 @ 09.04.14, 10:35) *
ПриНачалеВыбораЗначения(Рекв,ФлагСтандОбр).

Скорее всего потому, что ПриНачалеВыбораЗначения вызывается, когда нужно выбрать только одно значение, а подбор - несколько!

Автор: mister-x 09.04.14, 10:11

потрібно перепризначити стандартну обробку системної процедури, ось так

ПриНачалеВыбораЗначения(Рекв,ФлагСтандОбр)
ФлагСтандОбр = 0;
ОткрытьПодбор
...

в типових конфах таке зустрічається

Автор: vadim007 09.04.14, 10:14

Именно так и делаю. Процедура ОбработкаПодбора(..) не вызывается sad.gif

Автор: Sanyk 09.04.14, 15:10

Що "Отладчик" говорить?

Автор: mister-x 09.04.14, 16:34

хм, дійсно не заходить в ОбработкаПодбора у відлагоджувачі, певно це один із нюансів (де їх потрібно використовувати або де вони не працюють) як із процедурою Активизировать, який не описаний в документації

Цитата(mister-x @ 09.04.14, 10:11) *
в типових конфах таке зустрічається

поспішив із відповіддю, не знайшов такого використання

Автор: sava1 09.04.14, 18:00

Цитата(mister-x @ 09.04.14, 17:34) *
поспішив із відповіддю, не знайшов такого використання

МодернизацияНеоборотныхАктивов - работает

Автор: vadim007 10.04.14, 7:10

Решил проблему. 1С строго следует вызовам пар процедур: ПриНачалеВыбораЗначения(..) -> ОбработкаВыбораЗначения(..) и ОткрытьПодбор(..) -> ОбработкаПодбора(..).
При вызове из ПриНачалеВыбораЗначения(..) процедуры ОткрытьПодбор(..) вызывается ОбработкаВыбораЗначения(..), а не ОбработкаПодбора(..).

Автор: mister-x 10.04.14, 11:47

Цитата(sava1 @ 09.04.14, 18:00) *
МодернизацияНеоборотныхАктивов - работает

немає там підбору, там є пара ПриНачалеВыбораЗначения(..) -> ОбработкаВыбораЗначения(..)

ЗІ. але так як автор теми знайшов спосіб для вирішення питання, то далі вже лірика

Автор: vadim007 23.04.14, 14:20

В продолжение темы подбора.
Нужно, чтобы при выборе в форме подбора (выбора) элемента ТМЦ делался анализ на правильность выбора. Например, выбрали ТМЦ вида Услуга, а нужно вида Товар.
Нужно выполнять проверку именно в форме подбора, а не в документе. Чтобы лишний раз не открывать форму подбора.
Как понимаю, стандартных средств нет?

Автор: alex040269 23.04.14, 14:46

делать проверку в ОбработкаПодбора(..).

Автор: vadim007 23.04.14, 14:56

При этом форма подбора, вызываемая из ОткрытьПодбор(...), закроется. А мне это не нужно, если выбранное значение не удовлетворяет условию.

Автор: sava1 23.04.14, 15:04

а ПриВыбореСтроки - не проходит?

Автор: vadim007 23.04.14, 15:13

Вот сейчас отлаживаю. В форме подбора в ПриВыбореСтроки() процесс не заходит. Не могу понять почему?

Нашел ошибку - вызывал не ту форму подбора. Блиииин!

Автор: Cthulhu 03.05.14, 22:15

все формы, которые открываются из ПриНачалеВыбораЗначения - открываются в режиме выбора значения. на этом основан финт "подмена формы выбора" - обнуление в ПриНачалеВыбора ФСО и "ОткрытьФорму" чего надо (если надо - с получением контекста открытой формы сразу после этого оператора и изменением через контекст чего угодно в открытой для выбора форме). при этом выбор в открытой форме значения передает управление на ОбработкуВыбораЗначения.

передача из подбора в ОбработкаПодбора может быть реализована программным отказом от выбора (в ПриНачалеВыбораЗначения обнулить ФСО) плюс (там же) "Форма.ОбработкаОжидания("ОткрытьКакойНадоПодбор",1), и в модуль добавить процедуру "ОткрытьКакойНадоПодбор", в которой ОткрытьПодбор как надо (не забыв с самого начала "Форма.ОбработкаОжидания("",0)" ). в этом случае подбор откроется через секунду и отработает стандартно с передачей управления в ОбработкаПодбора.
прим.: хотя на моей памяти и попадались "шустрики", опережавшие секундное ожидание - это лечилось предупреждением(таймаут=1сек) о переходе к подбору. но это было необходимо на практике очень редко.

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