Выпадающий список в колонке табличной части УПРАВЛЯЕМОЙ формы
Здравствуйте!
Подскажите, пожалуйста, мне необходимо в ТЧ документа в одной из колонок сделать выпадающий список с несколькими значениями, написала вот так, но это неправильно:
&НаСервере
Функция ВернутьСпособыПогашенияЗадолженности()
СписокДляВыбора = Новый ТаблицаЗначений;
СписокДляВыбора.Колонки.Добавить("СпособПогашенияЗадолженности");
СписокДляВыбора.Добавить().СпособПогашенияЗадолженности = Перечисления.СпособыПогашенияЗадолженности.ПоДокументу;
СписокДляВыбора.Добавить().СпособПогашенияЗадолженности = Перечисления.СпособыПогашенияЗадолженности.НеПогашать;
Возврат СписокДляВыбора;
КонецФункции
&НаКлиенте
Процедура ОплатаПоставщикамСпособПогашенияЗадолженностиНачалоВыбораИзС писка(Элемент, СтандартнаяОбработка)
Элемент.РежимВыбораИзСписка = Истина;
Элемент.СписокВыбора = ВернутьСпособыПогашенияЗадолженности();
КонецПроцедуры
Так не прокатывает, т.к. ТЗ не передать с сервера на клиент. Пробовала передавать Элемент на сервер, чтобы там ему присвоить ТЗ в СписокВыбора, но с клиента на сервер Элемент не передать...
Как тогда быть?
Подскажите, пожалуйста, мне необходимо в ТЧ документа в одной из колонок сделать выпадающий список с несколькими значениями, написала вот так, но это неправильно:
&НаСервере
Функция ВернутьСпособыПогашенияЗадолженности()
СписокДляВыбора = Новый ТаблицаЗначений;
СписокДляВыбора.Колонки.Добавить("СпособПогашенияЗадолженности");
СписокДляВыбора.Добавить().СпособПогашенияЗадолженности = Перечисления.СпособыПогашенияЗадолженности.ПоДокументу;
СписокДляВыбора.Добавить().СпособПогашенияЗадолженности = Перечисления.СпособыПогашенияЗадолженности.НеПогашать;
Возврат СписокДляВыбора;
КонецФункции
&НаКлиенте
Процедура ОплатаПоставщикамСпособПогашенияЗадолженностиНачалоВыбораИзС
Элемент.РежимВыбораИзСписка = Истина;
Элемент.СписокВыбора = ВернутьСпособыПогашенияЗадолженности();
КонецПроцедуры
Так не прокатывает, т.к. ТЗ не передать с сервера на клиент. Пробовала передавать Элемент на сервер, чтобы там ему присвоить ТЗ в СписокВыбора, но с клиента на сервер Элемент не передать...
Как тогда быть?
По теме из базы знаний
- Групповая обработка справочников и документов (Управляемая форма) v 3.9 (+English version)
- Обработка получения структуры данных (управляемые и обычные формы)
- Выбор Адреса контрагента из Контактной информации. Пример работы с "Оповестить о выборе"
- Тестер: частые вопросы
- Гарри Поттер и подкапотное пространство веб-клиента
Ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
Да можно без кода тупо заполнить список выбора нужными значениями.
А если программно надо, то в модуле менеджера перечисления в процедуре ОбработкаПолученияДанныхВыбора, пишите:
А если программно надо, то в модуле менеджера перечисления в процедуре ОбработкаПолученияДанныхВыбора, пишите:
СтандартнаяОбработка = Ложь;
ДанныеВыбора = Новый СписокЗначений;
ДанныеВыбора.Добавить(Перечисления.СпособыПогашенияЗадолженности.ПоДокументу);
ДанныеВыбора.Добавить(Перечисления.СпособыПогашенияЗадолженности.НеПогашать);
Прикрепленные файлы:
Я запарился искать ответ на этот же вопрос только в управляемых формах на платформе 8,3,13 и в расширении.
У меня вообще не заходит в обработчик "НачалоВыбораИзСписка"
на ИТС этот вопрос не рассматривается....
Но эксперементально удалось выяснить вот что:
1 В обработчике "НачалоВыбора" поля табличной части прописать отказ стандартной обработки и создать свой список значений (из ссылок типа самого поля конечно) и засунуть в параметр "ДанныеВыбора".
ВСЕ! И ничего больше делать не нужно, все работает по кнопке выбор.
если хочется красивый список выбора как раньше смотри скрин.
значение свойства "БыстрыйВыбор" в значении НЕТ (это значение будет в режиме Авто) показывает команду "показать все", а в значении ДА убирает эту команду! причем если ткнуть "показать все" то в нашем случае список выпадает заново и все равно состоит из наших значений по моему это идиотизм...
Я был искренне удивлен от такого логичного функционала, быстрого выбора и выбора из списка.
по-моему 8,2 был лучше...
У меня вообще не заходит в обработчик "НачалоВыбораИзСписка"
на ИТС этот вопрос не рассматривается....
Но эксперементально удалось выяснить вот что:
1 В обработчике "НачалоВыбора" поля табличной части прописать отказ стандартной обработки и создать свой список значений (из ссылок типа самого поля конечно) и засунуть в параметр "ДанныеВыбора".
ВСЕ! И ничего больше делать не нужно, все работает по кнопке выбор.
если хочется красивый список выбора как раньше смотри скрин.
значение свойства "БыстрыйВыбор" в значении НЕТ (это значение будет в режиме Авто) показывает команду "показать все", а в значении ДА убирает эту команду! причем если ткнуть "показать все" то в нашем случае список выпадает заново и все равно состоит из наших значений по моему это идиотизм...
Я был искренне удивлен от такого логичного функционала, быстрого выбора и выбора из списка.
по-моему 8,2 был лучше...
Прикрепленные файлы:
(7) Отличный пример, но так должна работать кнопка выпадающего списка, а не кнопка выбора. Что-то намудрили создатели платформы. Причем быстрый выбор по этой схеме не запускает еще раз процедуру НачалоВыбора, а кнопка выдает список не под полем, а в углу экрана))
ПоляДанных - ТаблицаЗначений с двумя колонками (тип "строка") НомерКолонки и ТипДанныхКолонки
так более-менее работает
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ЭтаФорма.Элементы.ПоляДанных.ПодчиненныеЭлементы.ПоляДанныхТипДанныхКолонки.РежимВыбораИзСписка = Истина;
СтруктураДанных.Добавить("Наименование");
СтруктураДанных.Добавить("ИнвентарныйНомер");
СтруктураДанных.Добавить("Количество");
СтруктураДанных.Добавить("СерийныйНомер");
СтруктураДанных.Добавить("МестоХранения");
СтруктураДанных.Добавить("Сотрудник");
СтруктураДанных.Добавить("Комментарий");
ДоступныеСтруктураДанных = СтруктураДанных.Скопировать();
КонецПроцедуры
&НаКлиенте
Процедура ПоляДанныхТипДанныхКолонкиНачалоВыбора(Элемент, СтандартнаяОбработка)
Элемент.СписокВыбора.Очистить();
Для каждого Элем Из ДоступныеСтруктураДанных Цикл
Элемент.СписокВыбора.Добавить(Элем);
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ПоляДанныхТипДанныхКолонкиОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ЭтаФорма.Элементы.ПоляДанных.ТекущиеДанные.ТипДанныхКолонки = ВыбранноеЗначение;
//автозавершение выбора
Shell= Новый COMОбъект("Wscript.Shell");
Shell.SendKeys("{ENTER}");
КонецПроцедуры
Показатьтак более-менее работает
Вакансии
1С-Программист (интегратор Битрикс24)
Санкт-Петербург
зарплата от 150 000 руб. до 250 000 руб.
Полный день
Санкт-Петербург
зарплата от 150 000 руб. до 250 000 руб.
Полный день