Имя: Пароль:
1C
1С v8
Управляемая форма Как задать тип колонке в ТЗ, если колонка имеет тип «Список значений" ?
,
0 vem2012
 
08.08.17
20:52
В Таблице значений (ТаблЗнач)есть колонки: ВидСравнения и РезультатВыбора.

ВидСравнения" - два значения: "Равно" и "В списке"
"РезультатВыбора" имеет составной тип, первый тип - "СправочникСсылка.Склады", второй тип -"Список значений"

Процедура ТаблЗначРезультатВыбораНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

      ТекВидСравн = Элементы.ТаблЗнач.ТекущиеДанные.ВидСравнения;

      Если ТекВидСравн = "Равно" Тогда
           Элементы.ТаблЗначРезультатВыбора.ОграничениеТипа =
           Новый ОписаниеТипов("СправочникСсылка.Склады");
      ИначеЕсли ТекВидСравн = "В списке" Тогда
           Элементы.ТаблЗначРезультатВыбора.ОграничениеТипа =
           Новый ОписаниеТипов("СписокЗначений");
      КонецЕсли;

В случае когда ТекВидСравн = "В списке", открывается список значений, но надо выбирать тип. Как привязать тип "Справочник.Склады" к "Списку значений",чтобы не выбирать тип?

P.S. В случае обычного поля на форме, имеющего составной тип, один
из типов которого "Список значений", у меня все работает. Интересует именно для колонки в таблице значений.
1 runoff_runoff
 
08.08.17
23:26
(0) присвоить полю ТаблЗначРезультатВыбора список значений с заданным свойством ТипЗначения..
2 vem2012
 
09.08.17
09:43
(1) ТаблЗначРезультатВыбора = Новый СписокЗначений;
ТаблЗначРезультатВыбора.ТипЗначения = Новый ОписаниеТипов("СправочникСсылка.Склады");

Это не работает для колонки в Таблице значений. Работает для обычного поля на форме.
3 AsadRoman
 
09.08.17
09:50
(0) В Таблице значений (ТаблЗнач)есть колонки: ВидСравнения и РезультатВыбора.

Извините, мне просто для образования и расширения кругозора: зачем такие типы в таблицезначений?
4 Fedor-1971
 
09.08.17
09:53
(2) ты присваиваешь тип элементу формы. Пробуй так:
стрТаблицы=Элементы.ТаблЗнач.ТекущиеДаннные;
стрТаблицы.РезультатВыбора=новый СписокЗначений
стрТаблицы.РезультатВыбора.Добавить(....);
т.е. просто присвой значение в колонку конкретной строки

(3) например, для указания в отборе нескольких значений. ТС вроде делает что-то подобное стандартным настройкам отчёта
5 vem2012
 
09.08.17
10:35
(4) стрТаблицы=Элементы.ТаблЗнач.ТекущиеДаннные;
стрТаблицы.РезультатВыбора = новый СписокЗначений
стрТаблицы.РезультатВыбора.Добавить(Справочники.Склады.НайтиПоНаименованию("Оптовый склад"));

Список значений открывается. Тип "Склады" не присвоен списку.
6 Fedor-1971
 
09.08.17
11:37
(5) стандартной процедуры ввода списка нет, поэтому надо сделать некую форму заполнения СпискаЗначений и в ПриНачалеВыбора обработать, что открываем, т.е. для поля реализуется примерно следующий алгоритм: Выбираем тип, анализируем:
- выбран справочник, тогда в ячейку пихаем пустую ссылку на справочник и дальше стандартный выбор
- выбран список значений, тогда отключаем стандартную работу и открываем свою форму для заполнения списка
Условным оформлением как-то отмечаем, что выбрано

Или, как вариант, на форму выводим дополнительное поле типа "Представление результата выбора" и заполняем его программно, т.е. получаем единообразие в работе с представлением выбранного (список отображаем как нам хочется, а не как реализовано в системе)
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой