![]() |
![]() |
![]() |
|
Таблица значений. Ограничение на составной тип значения в колонке. | ☑ | ||
---|---|---|---|---|
0
Pro-tone
02.06.11
✎
10:09
|
Есть таблица значений. 2 колонки. "Реквизит", "ЗначениеРеквизита". Заполняется данными из метаданных, ну допустим ревизитами отчетов.
Я ставлю: "Реквизит" - тип, строка. "ЗначениеРеквизита" - составной тип, выбираю все примитивные типы, документы и планы счетов. Теперь при заполнении этой таблицы значений хотелось бы установить конкретный тип ячейке "ЗначениеРеквизита", пишу код ТекущиеДанные = ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные; ТекВидОтчета = СокрЛП(ТекущиеДанные.ВидОтчета); Для каждого ТекСтрока из Метаданные.Отчеты[ТекВидОтчета].Реквизиты Цикл НоваяСтрока = ФормаНастроек.ТаблицаНастроек.Добавить(); НоваяСтрока.Реквизит = ТекСтрока.Имя; //ВОТ ТУТ КАК-ТО НАДО УСТАНОВИТЬ КОНКРЕТНЫЙ ТИП ЯЧЕЙКИ В КОЛОНКЕ "ЗначениеРеквизита", чтобы потом руками сразу выбрать значение КонецЦикла; |
|||
1
Undefined
02.06.11
✎
10:13
|
Если заранее не устанавливать тип ячейке таблицы значений, она сама типизируется значением которое ты в нее запишешь.
|
|||
2
Поручик
02.06.11
✎
10:14
|
Могу дать пример
КвалификаторыСтроки = Новый КвалификаторыСтроки(0, ДопустимаяДлина.Переменная); ОграничениеТипа = Новый ОписаниеТипов("Строка",,КвалификаторыСтроки); ЭлементыФормы.ЗначениеСтрока.ОграничениеТипа = ОграничениеТипа; |
|||
3
Pro-tone
02.06.11
✎
10:15
|
(1) в табличном поле уже есть тип значения колонки, и там нет "неопределено"
|
|||
4
Defender aka LINN
02.06.11
✎
10:16
|
(0) Это называется "установить значение".
|
|||
5
Undefined
02.06.11
✎
10:17
|
ну так говоричто ты имеешь ввиду табличное поле, в (0) ты говорил про таблицу значений. Тогда ответ в (2)
|
|||
6
Pro-tone
02.06.11
✎
10:19
|
(5) Табличное поле, имеющее тип "ТаблицаЗначений" =)
|
|||
7
Undefined
02.06.11
✎
10:22
|
помнится я решал такую задачу немного иначе, я просто записывал в ячейки значения по умолчанию и все. Если у тебя тип значения число записываешь туда 0, если ссылка, записываешь пустую ссылку. В свойствах колонки убираешь галочку выбирать тип чтобы пользователь не смог изменить тип значения.
|
|||
8
lxs
02.06.11
✎
10:23
|
(0) пустую ссылку присвой нужного типа
|
|||
9
lxs
02.06.11
✎
10:23
|
+(8) тема баян страшнейший, поиском учимся пользоваться по форуму.
|
|||
10
Pro-tone
02.06.11
✎
10:23
|
(7)(8) кстати это идея ! Спасибо ! А через Ограничение типа хотелось бы тоже разобраться как это сделать )
|
|||
11
lxs
02.06.11
✎
10:42
|
(10) Главное - это жизнеспособная идея.. и ее эта жизнеспособность проверена годами. Не парь себе мозг своими "хотелось бы". Решение должно быть оптимальным и простым.
|
|||
12
Pro-tone
02.06.11
✎
10:56
|
(11) решил задачу так:
В табличное поле добавил колонку "РеквизитТип", невидимая, "описание типов". В нее пишу тип реквизита объекта метаданных, и далее Процедура ТаблицаНастроекЗначениеРеквизитаНачалоВыбора(Элемент, СтандартнаяОбработка) // Вставить содержимое обработчика. ТипСтр = "СправочникСсылка.Номенклатура"; Элемент.ОграничениеТипа = ЭлементыФормы.ТаблицаНастроек.ТекущаяСтрока.РеквизитТип; Значение = Элемент.Значение; Элемент.Значение = Элемент.ОграничениеТипа.ПривестиЗначение(Значение); Элемент.ВыбиратьТип = Ложь; КонецПроцедуры |
|||
13
Pro-tone
02.06.11
✎
10:57
|
даже так, без типСтр
Процедура ТаблицаНастроекЗначениеРеквизитаНачалоВыбора(Элемент, СтандартнаяОбработка) // Вставить содержимое обработчика. Элемент.ОграничениеТипа = ЭлементыФормы.ТаблицаНастроек.ТекущаяСтрока.РеквизитТип; Значение = Элемент.Значение; Элемент.Значение = Элемент.ОграничениеТипа.ПривестиЗначение(Значение); Элемент.ВыбиратьТип = Ложь; КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |