Имя: Пароль:
1C
 
вопрос при выборе из справочника на управляемых формах
0 Tornadius
 
19.02.24
06:27
Добрый день!
1с:БП КОРП
Подскажите, кто знает, как организовать программно показ и обработку вопроса на управляемых формах ПЕРЕД выбором из справочника. На форме есть поле ввода (реквизит типа справочник) и есть табличная часть. нужно перед выбором в данном поле задать вопрос, что таб.часть не пуста и будет очищена, продолжить или нет.
Самая сложность перехватить начало выбора в поле ввода.
даже есть использовать свойство "Автоподбор" то после появления вопроса все равно открывается список истории ввода и ввод продолжается. А нужно, что бы данный список вываливался после ответа на вопрос, что была возможность отменить ввод в данном поле.
Это не список. РежимВыбораИЗСписка = Ложь;

Кто нибуть сталкивался с подобными задачами?
1 DJ Anthon
 
19.02.24
06:38
СтандартнаяОбработка = Ложь;
И делай, как хочешь
2 Tornadius
 
19.02.24
06:55
(1) Увы это не помогает.
3 Мимохожий Однако
 
19.02.24
07:12
(2) В типовых конфигурациях в каждом документе с товаром есть кнопка Подбор. Посмотри и сделай по аналогии.
Догадаться, что тебе не помогает, нет возможности. Ты даже не показал какие попытки для решения задачи делал
4 Tornadius
 
19.02.24
07:18
(3) Это отдельная кнопка "Подбор", а нужно сделать полем ввода.

Пробовал вот так:

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

КонецПроцедуры
5 Tornadius
 
19.02.24
09:03
Пока вышел из положения так:

1) отключил у поля ввода всЁ, что связано с историей ввода. Заблокировал кнопку выпадающего списка, вывел кнопку выбора (три точки "...")
2) в событии "НачалоВыбора" (стандартнаяобработка = ложь) задаю вопрос и через оповещение вызываю процедуру очистки табличной части.
3) сразу после нее (там же в процедуре оповещения от вопроса) открываю программно форму выбора справочника, к которой привязано еще одно оповещение (параметр ОповещениеОЗакрытии) которое устанавливает выбранное значение в поле ввода.



к, сожалению, не удалось сделать с использованием списка истории выбора.
Основная теорема систематики: Новые системы плодят новые проблемы.