Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
13 дек 2024, 02:19

Не получается сделать отбор

Автор Alex56, 30 июн 2014, 15:00

0 Пользователей и 1 гость просматривают эту тему.

Alex56

Процедура КнопкаВыполнитьНажатие(Кнопка)


//Запрос к регистру сведений

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ГраницыЗапретаИзмененияДанных.Организация.Ссылка КАК Организация,
| ГраницыЗапретаИзмененияДанных.Пользователь.Ссылка КАК Пользователь,
| &ДатаЗапрета КАК ГраницаЗапретаИзменений
|ИЗ
| РегистрСведений.ГраницыЗапретаИзмененияДанных КАК ГраницыЗапретаИзмененияДанных
|ГДЕ
| ГраницыЗапретаИзмененияДанных.Пользователь В(&МассивПользователей)";

///Массив пользователей для условия

МассивПользователей = новый Массив;

МассивПользователей.Добавить(Справочники.ГруппыПользователей.НайтиПоНаименованию("Менеджеры"));
МассивПользователей.Добавить(Справочники.ГруппыПользователей.НайтиПоНаименованию("Бухгалтерия"));



Запрос.УстановитьПараметр("ДатаЗапрета",ТекущаяДата()-24*60*60*2);
Запрос.УстановитьПараметр("МассивПользователей",МассивПользователей);


Результат = Запрос.Выполнить().Выгрузить(); // то, что надо оставить

НаборЗаписей = РегистрыСведений.ГраницыЗапретаИзмененияДанных.СоздатьНаборЗаписей();

НаборЗаписей.Отбор.Пользователь.Установить (Справочники.ГруппыПользователей.НайтиПоНаименованию("Бухгалтерия"));
НаборЗаписей.Отбор.Организация.Установить (Справочники.ГруппыПользователей.НайтиПоНаименованию("Организация"));

НаборЗаписей.Прочитать();
НаборЗаписей.Загрузить(Результат);
НаборЗаписей.Записать()

КонецПроцедуры


Как мне в отборе записей отобрать только необходимые записи? Как отбор делается.
Нужно постоянно трудиться.

mixqn

читайте внимательно синтаксис-помощник: отбор в наборе записей работает только на равенство. в вашем случае сработает последний. ну вернее не сработает, потому что нет метода Установить у отбора.
вместо
Цитата: Ildar Ziganshin от 30 июн 2014, 15:00НаборЗаписей.Отбор.Организация.Установить (Справочники.ГруппыПользователей.НайтиПоНаименованию("Организация"));
надо писать так:
НаборЗаписей.Отбор.Организация.Значение = Справочники.ГруппыПользователей.НайтиПоНаименованию("Организация");
НаборЗаписей.Отбор.Организация.Использование = Истина;


и просьба к вам: оформляйте пожалуйста код соответствующими тегами. очень сложно читать ваши сообщения - как правило много кода, при чем код сливается с вопросом, сам вопрос еще надо постараться найти в общем тексте.
Добавлено: 30 июн 2014, 17:14


о, за вас уже исправили ))) спасибо, Klyacksa
Добавлено: 30 июн 2014, 17:14


Ildar Ziganshin, вот так как сейчас должно выглядеть ваше сообщение.

Klyacksa

Ildar Ziganshin, у вас ошибка: пытаетесь установить отбор на поле Организация значением ссылки на ГруппыПользователей. Организация - тип СправочникСсылка.Организации. Так просто не получится.
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

mixqn

Поспешил, немного неточно ответил. Поправлю:
1. Метод Установить() у отбора все таки есть, так что ваш код верный с этой точки зрения.
2. Отборы у вас по разным полям (мне показалось, что по одному), поэтому сработают оба, если правильные параметры передать (то есть, если учесть замечание Klyacksa).

Klyacksa

Ildar Ziganshin, а что вы вообще пытаетесь сделать всем этим кодом? Странный алгоритм какой-то.
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

DmitriyF

Цитата: Klyacksa от 01 июл 2014, 11:29
Ildar Ziganshin, а что вы вообще пытаетесь сделать всем этим кодом? Странный алгоритм какой-то.
Наверно хочет обмануть сам себя.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск