Имя: Пароль:
1C
1С v8
СписокЗначений как колонка в ТаблицеЗначений
0 AllJoke
 
17.11.11
12:36
День добрый всем. Вот столкнулся с проблемой такой. Добавли я в ТЗ колонку ФормаПечати. Элемент управления - ПолеВыбора. Тип значения - Список Значений. Но при заполнении, у меня данные идут в строку а не в выпадающий список. Когда же щёлкаю на треугольник вниз (т.е. делаю выпадения) то значений нет.


           Если ТипЗнч(мДеревоМакетов)=Тип("ДеревоЗначений") Тогда                
               Для каждого Элт Из мДеревоМакетов.Строки Цикл
                   НоваяСтрока.ФормаПечати.Добавить(Элт.Имя,Элт.Текст);
               КонецЦикла;            
           КонецЕсли;


Как же этот списокзначений заполнить красиво, чотобы они выападали.
1 Ахиллес
 
17.11.11
12:41
сделай тип значения - строка.
2 Ахиллес
 
17.11.11
12:44
А заполнять надо .СписокВыбора
х.з. мож это вырезание гланд через анус, но у меня так сделано:

&НаКлиенте
Процедура ГруппаНоменклатурыНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
   Элементы.ГруппаНоменклатуры.СписокВыбора.Очистить();
   Выборка = ВернутьГруппы();
   для сч = 0 по Выборка.Количество()-1 Цикл
       ТекЭлемент = Выборка.Получить(сч);
Элементы.ГруппаНоменклатуры.СписокВыбора.Добавить(ТекЭлемент.Значение,ТекЭлемент.Представление);
   Конеццикла;
КонецПроцедуры

ГруппаНоменклатуры имеет тип - Строка.
3 AllJoke
 
17.11.11
12:48
А как ты его очищаешь, если у тебя типзначения - Строка??
4 AllJoke
 
17.11.11
12:51
Код:


   Для каждого ЭлементСписка Из СписокВсехДокументов Цикл
       Если ЭлементСписка.Пометка Тогда
           НоваяСтрока = КлючУникальности.Добавить();
           НоваяСтрока.Значение = ЭлементСписка.Значение;
           НоваяСтрока.Представление = ЭлементСписка.Представление;
           //Список печатных форм
           
           НоваяСтрока.ФормаПечати.СписокВыбора.Очистить();
           ВидДокумента = ЭлементСписка.Значение;
           ПустойДокумент = Документы[ВидДокумента].СоздатьДокумент();


НоваяСтрока.ФормаПечати - Строка. У нее нет такого как СписокВыбора.
5 hhhh
 
17.11.11
12:55
(4) у поля ввода смотри.
6 AllJoke
 
17.11.11
12:55
(5) Так у меня колонка - ПолеВыбора.
7 AllJoke
 
17.11.11
12:56
Каким образом у поля ввода появится выпадающий список???
8 Ахиллес
 
17.11.11
13:03
СписокВыбора существует для визуальных элементов на форме.
К визуальным элементам доступ через: Элементы.
Пример: Элементы.МоёПолеВыбораНаФорме.СписокВыбора.Очистить();
9 AllJoke
 
17.11.11
13:03
Так у меня список то в колонке ТЗ.
10 Ахиллес
 
17.11.11
13:06
Ну значит ты сам себе злобный буратино :-)
Не знаю, как к текущей строке таким образом обратится, смотри стандартные обработчики для ТЗна форме, мож там, что то найдёшь. А где ты такое вообще видел? В типовой какой нибудь такое реализовано?
11 Ахиллес
 
17.11.11
13:09
У тебя в каждой строке может быть собственный список выбора или один список для всех строк?
12 AllJoke
 
17.11.11
13:11
у меня в ТЗ 3 колонки. В одной - ФормаПечати - я хочу сделать список. Кликаю на шапке, выбираю Поле выбора, кликаю на ячейке, выбираю СписокЗначений. Вот исходя из этого у мну получается ситуация в (0)
13 zladenuw
 
17.11.11
13:15
Оставляешь как в (0)

Процедура ТабличноеПолеСписокНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)
   Если ЗначениеЗаполнено(ЭлементыФормы.ТабличноеПолеSQL.ТекущаяСтрока.АдресВSQL) Тогда
        ВремСписок = ЭлементыФормы.ТабличноеПолеSQL.ТекущаяСтрока.АдресВSQL;
        ВремСписок.СортироватьПоЗначению(НаправлениеСортировки.Возр);
        ЭлементыФормы.ТабличноеПолеSQL.Колонки.АдресВSQL.ЭлементУправления.СписокВыбора =  ВремСписок;
        ЭлементыФормы.ТабличноеПолеSQL.ТекущаяСтрока.АдресВSQL = ВремСписок;
   КонецЕсли;
КонецПроцедуры

Процедура ТабличноеПолеАдресВSQLОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
   ЭлементыФормы.ТабличноеПолеSQL.ТекущаяСтрока.СоотвествиеВSQL =  ВыбранноеЗначение;
КонецПроцедуры
14 zladenuw
 
17.11.11
13:23
можно и так

Процедура ТабличноеПоле1Колонка2НачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)
   //ЭлементыФормы.ТабличноеПоле1.Колонки.Колонка2.ЭлементУправления.СписокВыбора = спЗн;
   Элемент.СписокВыбора = спЗн;
   
   //ЭлементыФормы.ТабличноеПоле1.ТекущаяСтрока.Колонка2 = СпЗн;
КонецПроцедуры


Я делал так. потому что для каждой строки свой спзн
15 AllJoke
 
17.11.11
14:06
(14) Я вот вообще не понял. Можно приблизительно к моему коду?