Имя: Пароль:
1C
1С v8
УФ: Динамический список
, ,
0 patria0muerte
 
20.01.14
05:33
Доброго времени суток. Столкнулся с проблемой. Ищу помощи.

Есть форма выбора элемента справочника с динамическим списком. Источник данных динамического списка - Справочник (т.е. НЕ произвольный запрос). На нее необходимо вывести дополнительные колонки в зависимости от передаваемых в форму параметров ПриОткрытии.

По умолчанию в динамическом списке отображаются колонки Наименование, Код, ХарактеристикаНоменклатуры и Номенклатура.

Вручную я могу зайти во "Все действия -> Изменить форму", и там, нажав правой кнопкой на элемент "ХарактеристикиНоменклатуры" и выбрав команду "Добавить поля", я могу отметить галками нужные свойства и отобразить их в динамическом списке в виде колонок.

И никак не могу разобраться, как добавить эти свойства программно, т.к. необходимо, в зависимости от переданной номенклатуры определять набор этих свойсвт.

Описал сумбурно, но как смог. Заранее спасибо.
1 golden-pack
 
20.01.14
07:02
Выводи все, а дальше управляй видимостью колонок при открытии
2 patria0muerte
 
20.01.14
07:07
Если бы в качестве колонок использовались только реквизиты справочника, то может так бы и сделал. Но тут у нас используются свойства объекта, которые "видны" только в режиме предприятия.
3 Мимохожий Однако
 
20.01.14
07:17
Код нужно смотреть.Как удалось без запроса получить динамический список со свойствами объекта?
4 patria0muerte
 
20.01.14
07:27
Ну собственно там все без кода...

Указываем у справочника ХарактеристикиНоменклатуры источник свойств:
http://hostingkartinok.com/show-image.php?id=72306a9bfa7113266b70955535121659

И потом в динамическом списке выбираем нужные:

http://hostingkartinok.com/show-image.php?id=a763454bdb2a49ef13d5c3693e3cc1ac
5 patria0muerte
 
20.01.14
07:29
На втором скриншоте видно, какие колонки мы можем добавить в динамический список...

Вопрос в том, как программно их добавить?
6 Мимохожий Однако
 
20.01.14
07:40
Полагаю, что нужно воспользоваться (1). Из СП:
ДинамическийСписок (DynamicList)
УстановитьОбязательноеИспользование (SetRequiredUse)
Синтаксис:

УстановитьОбязательноеИспользование(<Поле>, <Использование>)
Параметры:

<Поле> (обязательный)

Тип: Строка.
Поле, значение которого требуется обязательно получать на клиенте.
<Использование> (обязательный)

Тип: Булево.
Указывает обязательность выбора поля.
Истина - поле обязательно для выборки;
Ложь - поле может не выбираться.
7 Мимохожий Однако
 
20.01.14
07:41
Описание:

Устанавливает признак обязательной выборки указанной колонки и передачи на сторону клиента.
Если для колонки обязательность выборки не установлена и колонки не видим (например скрыта колонка в таблице), данные по этой колонке выбираться не будут.
Если требуется обращаться к данным из языка - для такой колонки необходимо установить признак обязательного использования.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент.
8 Мимохожий Однако
 
20.01.14
07:41
Есть процедура в форме ПриСозданииНаСервере()
9 patria0muerte
 
20.01.14
07:43
(7) Ага, понял... попробую... как то проглядел сей метод
10 patria0muerte
 
20.01.14
10:33
Нет, не выходит каменный цветок...

Пишу примерно таким образом...
Список.УстановитьОбязательноеИспользование("ХарактеристикаНоменклатуры.[Узел назначения], Истина);

Ни ошибок, ни полей...

Может как по другому поле задавать? Если у кого типовая на УФ есть, дайте пример пожалуйста по использованию этого метода.
11 patria0muerte
 
20.01.14
10:34
(10) Кавычки пропустил:

Список.УстановитьОбязательноеИспользование("ХарактеристикаНоменклатуры.[Узел назначения]", Истина);

Вот, так пишу...
12 patria0muerte
 
20.01.14
11:00
Апну разочек тему.
13 Псих
 
20.01.14
12:23
мне кажется в выражении "ХарактеристикаНоменклатуры.[Узел назначения]" точка явно лишняя.
14 patria0muerte
 
21.01.14
04:02
Разобрался таки с бедой. Глядишь кому пригодится:

Добавляем элемент на форму:

ЭлементФормы = Элементы.Добавить(ИмяЭлемента ,Тип("ПолеФормы"),Элементы.Список);

Затем прописываем путь к данным для элемента:

ЭлементФормы.ПутьКДанным = "Список.ХарактеристикаНоменклатуры.["+НаименованиеСвойства+"]";

Таким образом добавляются колонки с характеристиками в динамический список.
15 LordCMEPTb
 
25.01.14
14:05
Наверное, я не совсем понимаю, но можно ли подробнее объяснить, как добавить колонку характеристик программно?
Ибо то, что описано в (14) , работает только под 8.2, в 8.3 уже ругается на такой путь, хотя отборы и группировка, выполненные с помощью Новый ПолеКомпоновкиДанных("НужноеПоле.[Свойство с пробелами]"), отрабатывают прекрасно.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn