Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
21 июн 2025, 01:50

не выбираются значения из выпадающего списка

Автор simfman, 22 мая 2025, 07:54

0 Пользователей и 1 гость просматривают эту тему.

simfman

Здравствуйте!
Помогите пожалуйста начинающему.

При выборе значения в выпадающем списке колонки Партия в табличной части документа значения не выбираются, поле остается пустым.
ДанныеВыбора содержит значения типа Дата, получаемые из регистра накопления. Реквизит Партия ТЧ документа тоже Дата.

Что не так делаю?

 
 

alexandr_ll

simfman, Что за регистр накопления, что в нем?

simfman

Цитата: alexandr_ll от 22 мая 2025, 10:32simfman, Что за регистр накопления, что в нем?

Регистр Остатков, Измерения Товар и СрокГодности (тип дата), ресурс Количество.
При выборе Товара в ТЧ мне нужно в поле партии подгрузить в выпадающий список все даты поступлений, чтобы можно было выбрать конкретную дату и из этой партии списывать товар.

Из вирт. таблицы остатков  функцией получаю сроки годности (партии) товара в виде дат. Функция возвращает список значений из дат и в выпадающий список они попадают, но при клике не отображаются в поле.

Максим75

simfman, смотрите, это Вы подготовили список выбора, а теперь надо организовать сам выбор.
ну что-то в таком духе

ВыбранноеЗначение = ВыбратьИзСписка(ДанныеВыбора, ЭлементыФормы.ПолеВводаКонтрагент);

Если ВыбранноеЗначение <> Неопределено Тогда
   ПолеВводаКонтрагент = ВыбранноеЗначение.Значение;
КонецЕсли;

simfman

Цитата: Максим75 от 22 мая 2025, 14:28simfman, смотрите, это Вы подготовили список выбора, а теперь надо организовать сам выбор.
ну что-то в таком духе

ВыбранноеЗначение = ВыбратьИзСписка(ДанныеВыбора, ЭлементыФормы.ПолеВводаКонтрагент);

Если ВыбранноеЗначение <> Неопределено Тогда
   ПолеВводаКонтрагент = ВыбранноеЗначение.Значение;
КонецЕсли;

Спасибо большое за наводку!
Попробовал по разному, желаемого эффекта пока нет. Написал как на скрине, после выбора значения из выпадающего списка оно не отображается в поле, пока не переведу фокус или не нажму Enter. Хотя бы так пока работает. Буду еще пробовать.

simfman

Все заработало, всем спасибо!

В событии НачалоВыбора - подготовка данных для выпадающего списка,
в событии ОбработкаВыбора - обработка выбранного значения и автозавершение ввода



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




&НаКлиенте
Процедура СписокТоваровПартияОбработкаВыбора(Элемент, ВыбранноеЗначение, ДополнительныеДанные, ВыборДобавлением, СтандартнаяОбработка)
    СтандартнаяОбработка=Ложь;
    ТекСтрока=Элементы.СписокТоваров.ТекущиеДанные;       
    ТекСтрока.Партия=ВыбранноеЗначение;                   //полю Партия присваивается выбранное значение из списка
    Shell=Новый COMОбъект("Wscript.Shell");               //Для отображения выбранного значения используется автозавершение выбора,
    Shell.SendKeys("{ENTER}");                            //чтобы после клика на выбранном значении оно сразу отобразилось в поле
   
КонецПроцедуры


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск