![]() |
![]() |
![]() |
|
Задать тип колонке в таблице значений | ☑ | ||
---|---|---|---|---|
0
Viktosha
18.12.09
✎
10:58
|
На форме есть таблица значений. При изменении одной из колонок непосредственно из формы происходит назначение типа остальным:
ТекущаяСтрока = ЭлементыФормы.Испытания.ТекущаяСтрока; Если ЗначениеЗаполнено(ТекущаяСтрока.ПоказательИспытания)ТОгда Если ТекущаяСтрока.ПоказательИспытания.видРезультатаАнализа = ПланыВидовХарактеристик.ВидыРезультатовАнализаНоменклатуры.ЗначениеИзСписка Тогда ТипКолонки = Новый ОписаниеТипов("СправочникСсылка.ЗначенияПоказателейАнализовНоменклатуры"); Иначе ТипКолонки = Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(15,4)); КонецЕсли; Для Каждого КолонкаИспы Из ЭлементыФормы.Испытания.Колонки Цикл ПризнакКолонки = Лев(КолонкаИспы.Имя, 10); Если ПризнакКолонки = "Показатель" Тогда КолонкаИспы.ЭлементУправления.ОграничениеТипа = ТипКолонки; КолонкаИспы.ЭлементУправления.Значение = ТипКолонки.ПривестиЗначение(КолонкаИспы.ЭлементУправления.Значение); КонецЕсли; КонецЦикла; ЭлементыФормы.Испытания.Колонки.Значение.ЭлементУправления.ОграничениеТипа = ТипКолонки; ЭлементыФормы.Испытания.Колонки.Значение.ЭлементУправления.Значение = ТипКолонки.ПривестиЗначение(ЭлементыФормы.Испытания.Колонки.Значение.ЭлементУправления.Значение); КонецЕсли; Это все работает. Затем я программно хочу добавить строки, где сразу заполнить значение этой колонки и соответственно сразу назначить тип остальным колонкам. Вызываю эту же процедуру, но ругается. Как правильно надо ее написать и где вызывать? |
|||
1
Aprobator
18.12.09
✎
11:00
|
(0) в каждой строке типы колонок разные что ли?
|
|||
2
Viktosha
18.12.09
✎
11:05
|
(1) ну вообще чисто теоретически может быть, там 2 типа и из них выбирается, либо число, либо справочник. Но в целом в таблице будет один тип, но вот какой - задается именно Показателем испытания, т.е. зависит от значения в изменяемой колонке
|
|||
3
Aprobator
18.12.09
✎
11:15
|
(2) что значит изменение одной из колонок? Список колонок что ли динамически формируется?
|
|||
4
Viktosha
18.12.09
✎
11:16
|
Когда на форме изменяешь все хорошо, но когда программно, то не получается, попробовала написать в процедуре при выводе строки:
ТекущаяСтрока = Элемент.ТекущаяСтрока; Если ЗначениеЗаполнено(ТекущаяСтрока.ПоказательИспытания)ТОгда Если ТекущаяСтрока.ПоказательИспытания.видРезультатаАнализа = ПланыВидовХарактеристик.ВидыРезультатовАнализаНоменклатуры.ЗначениеИзСписка Тогда ТипКолонки = Новый ОписаниеТипов("СправочникСсылка.ЗначенияПоказателейАнализовНоменклатуры"); Иначе ТипКолонки = Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(15,4)); КонецЕсли; Для Каждого КолонкаИспы Из ЭлементыФормы.Испытания.Колонки Цикл ПризнакКолонки = Лев(КолонкаИспы.Имя, 10); Если ПризнакКолонки = "Показатель" и КолонкаИспы.Имя <> "ПоказательИспытания" Тогда КолонкаИспы.ЭлементУправления.ОграничениеТипа = ТипКолонки; КолонкаИспы.ЭлементУправления.Значение = ТипКолонки.ПривестиЗначение(КолонкаИспы.ЭлементУправления.Значение); КонецЕсли; КонецЦикла; ЭлементыФормы.Испытания.Колонки.Значение.ЭлементУправления.ОграничениеТипа = ТипКолонки; ЭлементыФормы.Испытания.Колонки.Значение.ЭлементУправления.Значение = ТипКолонки.ПривестиЗначение(ЭлементыФормы.Испытания.Колонки.Значение.ЭлементУправления.Значение); КонецЕсли; Но получается, что все равно приходится выбирать тип, хотя он и ограничен. Т.е. если это число, то будет в выборе типа стоять только число. А мне надо чтобы сразу на форме было задано ограничение. Помогите пож-та, уже второй день воюю(((((((( |
|||
5
Viktosha
18.12.09
✎
11:18
|
(3) Да, динамически
|
|||
6
Aprobator
18.12.09
✎
11:19
|
(5) Тип то ограничен, а вот Свойство Элемента управления ВыбиратьТип - где в ложь выставлено?
|
|||
7
mooo
18.12.09
✎
11:20
|
Может приводить тип к нужному стоит при начале редактирования.
|
|||
8
Viktosha
18.12.09
✎
11:24
|
Написала: КолонкаИспы.ЭлементУправления.выбиратьТип = Ложь;
И теперь вообще никакого типа нет, пока на крестик не нажмешь в колонке |
|||
9
Viktosha
18.12.09
✎
11:27
|
(7) Тоже не получается((
|
|||
10
SoftIce
18.12.09
✎
11:31
|
а к какому событию привязана приведенная процедура?
|
|||
11
SoftIce
18.12.09
✎
11:37
|
и потом если в разных строках у вас ПоказательИспытания будет приводить к разным значениям ТипКолонки, то фигня получится!
Тип значения у колонки один на всю колонку, а не на каждую строку отдельно. |
|||
12
mooo
18.12.09
✎
11:41
|
Попробуй замени это
на это
|
|||
13
mooo
18.12.09
✎
11:43
|
(11) не правда, колонка составного типа
|
|||
14
Viktosha
18.12.09
✎
12:20
|
(13) Спасибо большое, все получилось. Я что-то подобное пробовала, но видимо не так написала)))) Еще раз спасибо)))))
|
|||
15
SoftIce
18.12.09
✎
12:27
|
В цикле задаешь значение
ТекСтрока = Испытания.Добавить(); ТекСтрока.ПоказательИспытания = НужноеЗначение; -- определить нужный ТипКолонки ТекСтрока.Показатель = ТипКолонки.ПривестиЗначение(НужноеЗначение); так? |
|||
16
SoftIce
18.12.09
✎
12:28
|
уже сделали?
Сорри, видимо страничка не обновлялась. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |