Выпадающий список в колонке табличной части УПРАВЛЯЕМОЙ формы

1. 21.11.13 18:34 Сейчас в теме
Здравствуйте!
Подскажите, пожалуйста, мне необходимо в ТЧ документа в одной из колонок сделать выпадающий список с несколькими значениями, написала вот так, но это неправильно:
&НаСервере
Функция ВернутьСпособыПогашенияЗадолженности()
СписокДляВыбора = Новый ТаблицаЗначений;
СписокДляВыбора.Колонки.Добавить("СпособПогашенияЗадолженности");
СписокДляВыбора.Добавить().СпособПогашенияЗадолженности = Перечисления.СпособыПогашенияЗадолженности.ПоДокументу;
СписокДляВыбора.Добавить().СпособПогашенияЗадолженности = Перечисления.СпособыПогашенияЗадолженности.НеПогашать;
Возврат СписокДляВыбора;
КонецФункции

&НаКлиенте
Процедура ОплатаПоставщикамСпособПогашенияЗадолженностиНачалоВыбораИзС­писка(Элемент, СтандартнаяОбработка)
Элемент.РежимВыбораИзСписка = Истина;
Элемент.СписокВыбора = ВернутьСпособыПогашенияЗадолженности();
КонецПроцедуры

Так не прокатывает, т.к. ТЗ не передать с сервера на клиент. Пробовала передавать Элемент на сервер, чтобы там ему присвоить ТЗ в СписокВыбора, но с клиента на сервер Элемент не передать...
Как тогда быть?
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. AllexSoft 21.11.13 18:43 Сейчас в теме
(1) ~ZasrAnka~, ну зачем так все усложнять( все делается без кода... у тебя тип реквизита к которому привязана колонка должен быть ПеречисленияСсылка.СпособыПогашенияЗадолженности
и все!
3. ~ZasrAnka~ 21.11.13 20:56 Сейчас в теме
Я то это понимаю. А вот бухи в бп 2.0 захотели, чтобы у них не было значения Не погашать. Что и сделали программисты, убрали это значение. А теперь необходимо эти изменения перенести на 3.0.
4. ~ZasrAnka~ 21.11.13 20:58 Сейчас в теме
Точнее, чтобы не было Автоматически. Чтобы осталось По документу и не погашать.
5. Alexey_ 25 21.11.13 21:20 Сейчас в теме
Да можно без кода тупо заполнить список выбора нужными значениями.
А если программно надо, то в модуле менеджера перечисления в процедуре ОбработкаПолученияДанныхВыбора, пишите:
СтандартнаяОбработка = Ложь;
ДанныеВыбора = Новый СписокЗначений;
ДанныеВыбора.Добавить(Перечисления.СпособыПогашенияЗадолженности.ПоДокументу);
ДанныеВыбора.Добавить(Перечисления.СпособыПогашенияЗадолженности.НеПогашать);
Прикрепленные файлы:
bakshook; +1 Ответить
6. ~ZasrAnka~ 21.11.13 22:26 Сейчас в теме
7. T_Guest 22.03.19 10:28 Сейчас в теме
Я запарился искать ответ на этот же вопрос только в управляемых формах на платформе 8,3,13 и в расширении.

У меня вообще не заходит в обработчик "НачалоВыбораИзСписка"
на ИТС этот вопрос не рассматривается....
Но эксперементально удалось выяснить вот что:

1 В обработчике "НачалоВыбора" поля табличной части прописать отказ стандартной обработки и создать свой список значений (из ссылок типа самого поля конечно) и засунуть в параметр "ДанныеВыбора".

ВСЕ! И ничего больше делать не нужно, все работает по кнопке выбор.

если хочется красивый список выбора как раньше смотри скрин.

значение свойства "БыстрыйВыбор" в значении НЕТ (это значение будет в режиме Авто) показывает команду "показать все", а в значении ДА убирает эту команду! причем если ткнуть "показать все" то в нашем случае список выпадает заново и все равно состоит из наших значений по моему это идиотизм...

Я был искренне удивлен от такого логичного функционала, быстрого выбора и выбора из списка.
по-моему 8,2 был лучше...
Прикрепленные файлы:
Ку, дядя Вова!; +1 Ответить
9. Ку, дядя Вова! 22.02.22 12:26 Сейчас в теме
(7) Спасибо тебе огромное, добрый человек!
8. user1070412 4 01.11.19 14:35 Сейчас в теме
ПоляДанных - ТаблицаЗначений с двумя колонками (тип "строка") НомерКолонки и ТипДанныхКолонки

&НаКлиенте
Процедура ПриОткрытии(Отказ)

	ЭтаФорма.Элементы.ПоляДанных.ПодчиненныеЭлементы.ПоляДанныхТипДанныхКолонки.РежимВыбораИзСписка = Истина;
	
	СтруктураДанных.Добавить("Наименование");
	СтруктураДанных.Добавить("ИнвентарныйНомер");
	СтруктураДанных.Добавить("Количество");
	СтруктураДанных.Добавить("СерийныйНомер");
	СтруктураДанных.Добавить("МестоХранения");
	СтруктураДанных.Добавить("Сотрудник");
	СтруктураДанных.Добавить("Комментарий");
	
	ДоступныеСтруктураДанных = СтруктураДанных.Скопировать();

КонецПроцедуры

&НаКлиенте
Процедура ПоляДанныхТипДанныхКолонкиНачалоВыбора(Элемент, СтандартнаяОбработка)
	
	Элемент.СписокВыбора.Очистить();
	Для каждого Элем Из ДоступныеСтруктураДанных Цикл
		Элемент.СписокВыбора.Добавить(Элем);	
	КонецЦикла; 
	
КонецПроцедуры

&НаКлиенте
Процедура ПоляДанныхТипДанныхКолонкиОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)

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

Показать

так более-менее работает
Оставьте свое сообщение
Вакансии
Ведущий разработчик 1С (Внутренний учет)
Москва
зарплата от 200 000 руб.
Полный день

Консультант по внедрению информационных систем 1С:ТОИР (аналитик по внедрению)
Иркутск
зарплата от 153 000 руб. до 186 000 руб.
Полный день

Программист 1С
Краснодар
зарплата от 150 000 руб.
Полный день

Программист 1С
Москва
зарплата от 200 000 руб.
Полный день

Консультант-аналитик 1С
Ставрополь
зарплата от 200 000 руб.
Полный день