НачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
Требуется при выборе заполнять список своими значениями (зависит от того, что выбрано в строке), тип строка (тип данных в реквизите формы - строка). МассивФОП - список значений, в нем значения типа строка. Редактирование текста в элементе управления запрещено.
Делаю:
Проблему решил, добавив процедуру:
Но, во-первых, выглядит такой "костыль" крайне плохо, да и есть некоторые неудобства - при попытке отредактировать значение с последующей отменой (то есть ничего не выбрал, а просто ушел с элемента управления) - значение пропадает. Как правильно работать с этой штукой? Где я что-то не понял или не учел?
Делаю:
&НаКлиенте
Процедура НаправленияОригиналБаллНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Строка = Направления.НайтиПоИдентификатору(Элементы.Направления.ТекущаяСтрока);
ДанныеВыбора = Новый СписокЗначений;
Для Каждого ФОП Из МассивФОП Цикл
Если Строка[ФОП.Значение] Тогда
ДанныеВыбора.Добавить(ФОП.Значение);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
В итоге из списка значение выбирается, переносится в элемент управления, а когда сходишь с него - пропадает. В отладчике видно, что в данных стоит Неопределено.
ПоказатьПроблему решил, добавив процедуру:
&НаКлиенте
Процедура НаправленияПередОкончаниемРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования, Отказ)
// Some Indian Code Here
Направления.НайтиПоИдентификатору(Элемент.ТекущаяСтрока).ОригиналБалл = Элемент.ТекущийЭлемент.ТекстРедактирования;
// End of Indian Code
КонецПроцедуры
Но, во-первых, выглядит такой "костыль" крайне плохо, да и есть некоторые неудобства - при попытке отредактировать значение с последующей отменой (то есть ничего не выбрал, а просто ушел с элемента управления) - значение пропадает. Как правильно работать с этой штукой? Где я что-то не понял или не учел?
По теме из базы знаний
- Стыковка элементов управляемой формы и пользовательских настроек СКД
- Универсальные функции ЗУП 3.1 / ЗКГУ 3.1, которые помогут в разработке
- Обзор полезных методов БСП 3.1.4
- Перемещение товаров между филиалами в одной информационной базе 1С с применением RLS
- Разработка автоматизированного тестирования на основании настольного приложения при помощи платформы 1С: Предприятие 8.3 (версия 01.12)
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Проблему удалось решить, используя вместо ДанныеВыбора Элемент.СписокВыбора:
&НаКлиенте
Процедура НаправленияОригиналБаллНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
Строка = Направления.НайтиПоИдентификатору(Элементы.Направления.ТекущаяСтрока);
Элемент.СписокВыбора.Очистить();
Для Каждого ФОП Из МассивФОП Цикл
Если Строка[ФОП.Значение] Тогда
Элемент.СписокВыбора.Добавить(ФОП.Значение);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Показать
Хорошо если это список, а вот если просто значение? :)
Если создавать список значений в ДанныеВыбора то после выбора выпадает список с выбором одного единственного значения, а вот бы без него сразу в поле.
Если создавать список значений в ДанныеВыбора то после выбора выпадает список с выбором одного единственного значения, а вот бы без него сразу в поле.
Ну для начала, я бы посоветовал поменять кусок:
Во-вторых, проверьте, в элементе формы, случаем, не определён СписокВыбора?
ДанныеВыбора = Новый СписокЗначений;
Для Каждого ФОП Из МассивФОП Цикл
Если Строка[ФОП.Значение] Тогда
ДанныеВыбора.Добавить(ФОП.Значение);
КонецЕсли;
КонецЦикла;
на кусок:
СписокФОП = Новый СписокЗначений;
Для Каждого ФОП Из МассивФОП Цикл
Если Строка[ФОП.Значение] Тогда
СписокФОП .Добавить(ФОП.Значение);
КонецЕсли;
КонецЦикла;
ДанныеВыбора = СписокФОП;
ПоказатьВо-вторых, проверьте, в элементе формы, случаем, не определён СписокВыбора?
Внимание! Тема сдана в архив
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот