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

Запрос к Справочнику с отбором по Соответствию

mp
07.05.2010 14:21Прочитано: 2703
Имеется справочник - Справочник1
имеется соответствие - Соответствие1, содержащее Ссылки на элементы Справочник1.
Как в Запросе отобрать из Справочник1 только элементы, содержащиеся в Соответствие1?
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
07.05.2010 14:30Ответ № 1
Задайте условие вида
|где справочник.ссылка в(&СписЭлем)
и далее установите свое соответствие в качестве параметра &СписЭлем
mp
07.05.2010 15:01Ответ № 2
Цитата
|где справочник.ссылка в(&СписЭлем)
и далее установите свое соответствие в качестве параметра &СписЭлем


Выдает ошибку:
Неверные параметры
справочник.ссылка <<?>>В (&СписЭлем)
E_Migachev
07.05.2010 15:11Ответ № 3
Покажи целиком код!
mp
07.05.2010 15:49Ответ № 4
Код 1C v 8.2 УП
 
// Имеем (Создаем) Соответствие со Ссылками на справочник
ИспользуемыеКатегории = Новый Соответствие;
ИспользуемыеКатегории[Справочники.Категории.Категория1.Ссылка] = Истина;
ИспользуемыеКатегории[Справочники.Категории.Категория2.Ссылка] = Истина;

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Категории.Ссылка,
| Категории.Наименование КАК Наименование
|ИЗ
| Справочник.Категории КАК Категории
|ГДЕ
| Категории.Ссылка В(&СписЭлем)
|
|УПОРЯДОЧИТЬ ПО
| Категории.Код ИЕРАРХИЯ";

Запрос.УстановитьПараметр("СписЭлем", ИспользуемыеКатегории);
Результат = Запрос.Выполнить();

Ошибка при вызове метода контекста (Выполнить): {(7, 21)}: Неверные параметры
КатегорииПД.Ссылка <<?>>В(&СписЭлем)
E_Migachev
07.05.2010 18:28Ответ № 5
), ну конечно...
так в параметр можно передавать только список значений или массив!
то есть тебе нужно преобразовать соответствие в список значений:
Код 1C v 8.х
 ств=Новый Соответствие;
ств[Справочники.ВычетыНДФЛ.Код101]=Истина;
ств[Справочники.ВычетыНДФЛ.Код102]=Истина;
ств[Справочники.ВычетыНДФЛ.Код104]=Истина;

СпЗнач = Новый СписокЗначений;
Для Каждого стр из ств Цикл
СпЗнач.Добавить(стр.Ключ);
КонецЦикла;


и потом уже СпЗнач подставляй в запрос как параметр )
mp
12.05.2010 15:50Ответ № 6
ОКейна! Все получилось.
Подсказка: Вы получили ответ на свой вопрос - закройте вопрос!
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.