|
Тип значения ячейки поля табличного документа, ссылочные типы данных не определя | ☑ | ||
---|---|---|---|---|
0
Mr_Best
20.08.15
✎
16:06
|
Всем привет!
Параметры вопроса: 1С:Предприятие 8.3 (8.3.5.1486) Бухгалтерия предприятия КОРП, редакция 2.0 (2.0.64.19) Есть форма внешней обработки, на форме размещено поле табличного документа. Если в режиме конфигуратора зайти в свойства ячейки, установить флаг "СодержитЗначение" и выбрать из списка состав типов которые могут быть в данной ячейки то все прекрасно работает! Но, если этого не делать, а попытаться установить те же типы значений программно, например в событии при активации области: МассивТипов = Новый Массив; МассивТипов.Добавить(Тип("Строка")); МассивТипов.Добавить(Тип("СправочникСсылка.Банки")); МассивТипов.Добавить(Тип("СправочникСсылка.Организации")); Область.ТипЗначения = Новый ОписаниеТипов(МассивТипов); то типы не добавляются, а в панели свойств (в режиме предприятия), в свойстве тип значения написано: Undefine, Строка, Undefine Что я делаю не правильно? И еще одно наблюдение, если в режиме конфигуратора хотя бы одной ячейке добавить данные типы значений, то программный код начинает работать правильно для любой ячейки!!!! Почему так, может кто нибудь сталкивался? |
|||
1
Ёпрст
20.08.15
✎
16:22
|
(0) а СодержитЗначение в истину заточил перед этим ?
|
|||
2
Ёпрст
20.08.15
✎
16:23
|
+ Так работает ?
Область.СодержитЗначение = Истина; Область.ТипЗначения = Новый ОписаниеТипов(МассивТипов); |
|||
3
Mr_Best
20.08.15
✎
16:49
|
(1) да перед этим, из панели свойств.
(2) действительно работает! У меня стоит условие: Если Область.СодержитЗначение Тогда МассивТипов = Новый Массив; МассивТипов.Добавить(Тип("Строка")); МассивТипов.Добавить(Тип("СправочникСсылка.Банки")); МассивТипов.Добавить(Тип("СправочникСсылка.Организации")); Область.ТипЗначения = Новый ОписаниеТипов(МассивТипов); КонецЕсли; т.е., если пользователь в режиме предприятия в свойствах ячейки поставил флаг СодержитЗначение, то он выбирает и тип значения которое требуется. Получается, что так НЕ работает: Если Область.СодержитЗначение Тогда МассивТипов = Новый Массив; МассивТипов.Добавить(Тип("Строка")); МассивТипов.Добавить(Тип("СправочникСсылка.Банки")); МассивТипов.Добавить(Тип("СправочникСсылка.Организации")); Область.ТипЗначения = Новый ОписаниеТипов(МассивТипов); КонецЕсли; так, всегда будет устанавливатся флаг СодержитЗначение: Область.СодержитЗначение = Истина; МассивТипов = Новый Массив; МассивТипов.Добавить(Тип("Строка")); МассивТипов.Добавить(Тип("СправочникСсылка.Банки")); МассивТипов.Добавить(Тип("СправочникСсылка.Организации")); Область.ТипЗначения = Новый ОписаниеТипов(МассивТипов); и так тоже не работет: Если Область.СодержитЗначение Тогда Область.СодержитЗначение = Истина; МассивТипов = Новый Массив; МассивТипов.Добавить(Тип("Строка")); МассивТипов.Добавить(Тип("СправочникСсылка.Банки")); МассивТипов.Добавить(Тип("СправочникСсылка.Организации")); Область.ТипЗначения = Новый ОписаниеТипов(МассивТипов); КонецЕсли; как же тогда можно реализовать требуемую логику работы программы через событие при активации области? |
|||
4
Ёпрст
20.08.15
✎
16:56
|
смотреть на другой признак, а не проверять СодержитЗначение
|
|||
5
Ёпрст
20.08.15
✎
16:57
|
в расшифровку там запихать чего, или в значение
|
|||
6
Mr_Best
20.08.15
✎
17:01
|
Спасибо, а вы не знает с какой целью в 1С сделали такое поведение системы? Это недоработка 1С, или так специально?
|
|||
7
Ёпрст
20.08.15
✎
17:02
|
Да хз :)
Я просто предлагаю пути обхода, не более того, мне проверять лень :) |
|||
8
Mr_Best
20.08.15
✎
17:07
|
(7) спасибо, я начинаю понимать, почему тут один местный, выбрал себе ник "Ненавижу 1С", жаль занят уже ....
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |