helpf.pro
Регистрация

v8: Как установить программно отбор СКД?

IKSparrow
25.10.2012 13:44Прочитано: 50488
Код следующий:

Код 1C v 8.х
 
ОтборКомпоновщика = КомпоновщикНастроек.Настройки.Отбор;

ВидОбъекта = ОтборКомпоновщика.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ВидОбъекта.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ВидОбъекта.Использование = Истина;
ВидОбъекта.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ВидОбъекта");
ВидОбъекта.ПравоеЗначение = "Справочник.ИсторияПользователей";

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновки, Компоновщик.Настройки,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));

Процессор = Новый ПроцессорКомпоновкиДанных;
Процессор.Инициализировать(МакетКомпоновки);

ТаблицаВерсий = Новый ТаблицаЗначений;

ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ПроцессорВывода.УстановитьОбъект(ТаблицаВерсий);
ПроцессорВывода.Вывести(Процессор, Ложь);



Мой отбор ни фига не учитывается. Что не так делаю?
Yandex
Возможно, вас также заинтересует
Реклама на портале
Mokey
25.10.2012 13:58Ответ № 1
ВидОбъекта.ПравоеЗначение = "Справочник.ИсторияПользователей";
вот это вот что такое? тут должно быть значение вида объекта, т.е. ссылка на элемент справочника.
IKSparrow
25.10.2012 14:01Ответ № 2
(1) Нееет, там тип строка. Т.ё. не сам элемент какого-то справочника, а наименование справочника. Вернее наименование его типа, как оно записано в определённом регистре.
Gnost
25.10.2012 16:00Ответ № 3
Пользователь @Monkey правильно вам говорит

ЭлементОтбораКомпоновкиДанных.ПравоеЗначение (DataCompositionFilterItem.RightValue)
ЭлементОтбораКомпоновкиДанных (DataCompositionFilterItem)
ПравоеЗначение (RightValue)
Использование:

Чтение и запись.
Описание:

Содержит правое значение элемента отбора.

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

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
Примечание:

Тип правого значения может быть полем, остальные варианты зависят от левого значения. Это может быть его тип левого значения, либо, если слева выбрано поле, может использоваться тип поля.

Где вы увидели что тип строка?

Код 1C v 8.2 УП
 ВидОбъекта.ПравоеЗначение = Ссылка   
Mokey
25.10.2012 16:18Ответ № 4
а в настройках после выполнения кода появляется этот отбор?
Mokey
25.10.2012 16:23Ответ № 5
Код 1C v 8.х
 
ДоступноеПоле = КомпоновщикНастроек.Настройки.Отбор.ДоступныеПоляОтбора.Элементы.Найти("Сезон");
ЭлементОтбора = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = ДоступноеПоле.Поле;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
Сезон = ТекущийСезон;
ЭлементОтбора.ПравоеЗначение = Сезон;
ЭлементОтбора.Использование = Истина;

Настройки = КомпоновщикНастроек.Настройки;



У меня так реализовано. Вы правы, тут правое значение зависит от типа поля, просто не описали в первом посте про типы, что где.
Изменено 25.10.12 16:24:40
Подсказка: Вы можете приложить к ответу файл или изображение щелкнув по значку или в редакторе.
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.