Имя: Пароль:
1C
Админ
Табличное поле: изменить тип у нетекущей ячейки той же строки.
0 ice777
 
29.11.12
14:03
Спросили, посмотрел и удивился:

Если взять процедуру обработчика текущей ячейки "ПриИзменении", то текущее поле ввода ("Элемент") позволяет к себе применить такое:

Элемент.ОграничениеТипа.ПривестиЗначение(нужный тип)

А как применить  ОграничениеТипа.ПривестиЗначение к неактивному сейчас полю в той же строке? Или получить аналог "Элемента" из другой колонки той же строки?

Примечание: речь идет о полях, которые множественного типа.
1 cw014
 
29.11.12
14:04
ЭлементыФормы.ТабличноеПоле.ТекущаяСтрока.КолонкаККоторойНужноОбратиться
2 Kashemir
 
29.11.12
14:07
Примерно так ЭлементыФормы.ТабличноеПоле.Колонки("НужнаяКолонка").ЭлементУправления.ОграничениеТипа
3 ice777
 
29.11.12
14:10
(1) так можно только изменить значение. Но не см.выше.
4 ice777
 
29.11.12
14:11
(2) так всю колонку и перетипизирует )

а в разных строках в колонке могут быть разные типы.
5 Рэйв
 
29.11.12
14:15
ЭлементыФормы.ТабличноеПоле.ТекущаяСтрока.Имяколонки = ПустоеЗначениеНужногоТипа
6 ice777
 
29.11.12
14:19
(5) это как бы очевидно, но не прокатывает.

Может потому, что в первой, активной колонке справочник с записями-родителями, а во второй ячейке - подчиненный справочник. Впрочем, типы для второго указаны как родительский, так и подчиненного и еще несколько других.
7 ice777
 
29.11.12
14:26
ну киньте кто идею.


ps: я даже бекапы вовремя делаю..
8 ice777
 
29.11.12
14:33
Ладно, приведем задачу к возможно известной:

в первой ячейке строки один из типов: справочник Номенклатура;

во второй один из типов: справочник ВариантыНоменклатуры;
справочник ВариантыНоменклатуры является подчиненным справочнику Номенклатура.

При вводе в первую ячейку значения типа Номенклатура- вторая ячейка должна ограничить выбор только типом ВариантыНоменклатуры
9 Kashemir
 
29.11.12
14:38
(4) Наверно я не понял задачу. Думал автор хочет ограничение поставить для ячейки текущей строки.
10 cw014
 
29.11.12
14:52
(6) А почему не проканывает?
11 ice777
 
29.11.12
15:11
(9) Верно ты понял. А написал для всей колонки.. и всех строк.


(10) надо наложить ограничение типов. Впрочем и применение пустой ссылки не меняет тип в ячейке, как ни странно.
12 Kashemir
 
29.11.12
15:20
(11) ЭлементУправления поля ввода в любом случае един для всех строк табличной части
13 ice777
 
29.11.12
15:26
(12) То, что ты писал, относится к коллекции колонок.
ЭлементыФормы.ТабличноеПоле.Колонки....

- смотри сам.
14 Kashemir
 
29.11.12
15:27
(13) Есстественно. Элемент управления и привязан к колонке.
15 ice777
 
29.11.12
15:28
+ а у меня в колонке поле множественного типа. в разных строках колонка заполнена значениями разных типов. Поэтому методы, применяемые ко всей колонке- не катят.
16 ice777
 
29.11.12
15:28
а ты предлагаешь всей колонке ограничить тип
17 Kashemir
 
29.11.12
15:28
(15) ЭлементУправления один. Хочешь разные ограничения - меняй динамически при активизации очередной текущей строки.
18 Kashemir
 
29.11.12
15:29
(16) Я предлагаю ограничить нужный элемент управления, который связан с колонкой.
19 ice777
 
29.11.12
15:30
а вот, имея стандартный Элемент, передаваемый в обработчик изначально- мы можем ограничить тип исключительно в этомй ячейке.

задача- как сделать в другой, неактивной ячейке.
20 Kashemir
 
29.11.12
15:30
(19) Нет - этот элемент =  ЭлементыФормы.ТабличноеПоле.Колонки("ТекущаяКолонка").ЭлементУправления
21 ice777
 
29.11.12
15:31
(17) зуб даешь, что данные типов, не попадающих под текущее ограничение типов - не исчезнут?
22 ice777
 
29.11.12
15:32
(20) сча проверю.
23 Kashemir
 
29.11.12
15:32
(21) Ты явно вообще не понимаешь связи между элементами управления колонок в ТЧ. Они вообще никак не связаны со строками.
24 ice777
 
29.11.12
16:53
гм. верно.
эко переклинило. Kashemir прав.