Имя: Пароль:
1C
1С v8
Табличное поле - можно ли использовать разные типы в одной колонке?
0 Gorr
 
25.06.14
10:58
Как сделать табличное поле в котором будут две колонки. Первая будет описывать значение, а вторая использоваться для выбора конкретного значения пользователем? Понятно, что типы выбираемых значений будут различны в строках второй колонки.
Возможно ли? (форма обычная)
1 Asmody
 
25.06.14
10:59
см. составной тип данных
2 Asmody
 
25.06.14
11:00
и, похоже, что тебе поможет план видов характеристик
3 Gorr
 
25.06.14
11:09
Хотелось бы пример наполнения табличного поля. Я так понимаю, в каждую ячейку надо программно добавлять поле ввода, а также обработчики событий?
4 Fish
 
25.06.14
11:13
(3) "в каждую ячейку надо программно добавлять поле ввода, а также обработчики событий" -  Можно и программно, но необязательно.
5 Defender aka LINN
 
25.06.14
11:14
Связь по типу
6 Gorr
 
25.06.14
11:19
(4) дело в том, что заранее типы не известны.
7 Maxus43
 
25.06.14
11:20
(6) когда выбираешь субконто - тоже заранее неизвество какой счет быдет выбран, всё давно сделано в типовых
8 Gorr
 
25.06.14
13:48
1. добавляю на форму табличное поле. Источник данных ТЗ.
2. добавляю 2 колонки Реквизит, Значение. По умолчанию тип строка.
3. в коде добавляю строки в тз + синоним в Реквизит. Колонка Значение остается незаполненной с типом значения Строка.

Непонятно как задать тип значения поля ввода колонки "Значение" соответствующее описанию типов?

Пытался так:
Процедура ТаблицаОтборовПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
     элемент.Колонки.Значение.ЭлементУправления.ТипЗначения = ДанныеСтроки.ОписаниеТипов;
КонецПроцедуры

возникает ошибка "Нельзя изменять тип связанного с данными элемента управления"
9 Gorr
 
25.06.14
14:04
Видимо нельзя в разных строках табличного поля одной колонки иметь и выбирать разные типы значений.
10 mikecool
 
25.06.14
14:06
(9) ты упертый?
11 Gorr
 
25.06.14
14:12
очистил "Данные" у колонки "Значение" ошибку больше не выдает, но во всех строках табличного поля все значения выбираются из одного справочника, что подтверждает что тип значения влияет на всю колонку целиком.
(10) как задать тип значения для ячейки, а не всей колонки?
12 akaBrr
 
25.06.14
14:16
Процедура ОбщиеРеквизитыПередНачаломИзменения(Элемент, Отказ)
    Если Элемент.ТекущаяКолонка.Имя = "УстанавливаемоеЗначение" Тогда
        Элемент.ТекущаяКолонка.ЭлементУправления.ОграничениеТипа = Элемент.ТекущиеДанные.Тип;
        Элемент.ТекущаяКолонка.ЭлементУправления.ВыбиратьТип = Ложь;
        
        Если ЗначениеЗаполнено(Элемент.ТекущиеДанные.Владелец) Тогда
            
            Владелец = рцОбщегоНазначения.ЗначениеИзТЗПоКлючу(ОбщиеРеквизиты,Элемент.ТекущиеДанные.Владелец,"Идентификатор","УстанавливаемоеЗначение");
            
            Если ЗначениеЗаполнено(Владелец) Тогда
                
                Элемент.ТекущаяКолонка.ЭлементУправления.ВыборПоВладельцу = Владелец;
                
            Иначе
                
                Предупреждение("Не указан "+НРег(Элемент.ТекущиеДанные.Владелец)+"!",60,"Внимание!");
                
                Отказ = Истина;
                
            КонецЕсли;
            
        КонецЕсли;
        
    КонецЕсли;
КонецПроцедуры
13 Gorr
 
25.06.14
15:03
(12) благодарю сделал так же в обработчике передизменением табличного поля только сделал не через ОрганичениеТипа, а ТипЗначения.

Элемент.Колонки.Значение.ЭлементУправления.ТипЗначения = Элемент.ТекущиеДанные.ОписаниеТипов;

При этом список возможных значений при выборе открывается действительно корректно, но при окончании выбора поле "Значение" остается пустым.
14 Gorr
 
26.06.14
16:20
Сделал, но ощущение что через з..

Что сделал:

1. Добавил Табличное поле с именем ТаблицаОтбора и источником данных таблица значений на форму.

2. Вручную добавил 2 колонки. 1я колонка имя Реквизит, Данные Реквизит, тип строка, ЭлементУправления Поле ввода. 2я колонка имя ЗначениеОтбора, Данные значение не заполнено (пусто) иначе невозможно назначить ТипЗначения для поля ввода, ЭлементУправления Поле ввода.

3. в модуле формы добавил
ТаблицаОтбора.Колонки.Добавить("Тип");
ТаблицаОтбора.Колонки.Добавить("ЗначениеОтбора");

4. в модуле формы в процедуре заполнения таблицы отбора
стр = ТаблицаОтбора.Добавить();
стр.Реквизит = изм.Синоним;
стр.Тип = изм.Тип;

5. в модуле формы добавил обрабочики табличного поля:
Процедура ТаблицаОтборовПередНачаломИзменения(Элемент, Отказ)
    Элемент.Колонки.ЗначениеОтбора.ЭлементУправления.ТипЗначения = Элемент.ТекущиеДанные.Тип;
КонецПроцедуры

Процедура ТаблицаОтборовЗначение1ОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
    ЭлементыФормы.ТаблицаОтбора.ТекущиеДанные.ЗначениеОтбора = ВыбранноеЗначение;
КонецПроцедуры

Процедура ТаблицаОтборовПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    ОформлениеСтроки.Ячейки.ЗначениеОтбора.Текст = ДанныеСтроки.ЗначениеОтбора;
    ОформлениеСтроки.Ячейки.ЗначениеОтбора.ОтображатьТекст = Истина;
КонецПроцедуры

Вопрос можно ли реализовать проще?
15 acsent
 
26.06.14
16:41
см документ АвансовыйОтчет в БП, закладка прочее
16 Gorr
 
26.06.14
16:46
(15) элемент управления табличное поле используется там в качестве заменителя множества полей ввода?
17 Gorr
 
27.06.14
00:14
(15) это не то. там табличное поле используется для отображения данных табличной части. Меня же интересует использование табличного поля для отображения данных формы. В качестве этакого мультиполя ввода произвольных значений.
18 Asmody
 
27.06.14
02:16
И чего люди не сделают, лишь бы документацию не читать.
Собственно, сам отбор не проще к таб.полю прицепить?
19 Gorr
 
04.07.14
09:45
(18) нет не проще. вы идеи не поняли. использовать это можно для чего угодно.
http://pro1c.org.ua/index.php?showtopic=308
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан