Не работает отбор в системе компоновки данных
Делаю отчет на СКД. Источник данных — запрос:
ВЫБРАТЬ
ибсВыданныеТалоныОстаткиИОбороты.Контрагент КАК Контрагент,
ибсВыданныеТалоныОстаткиИОбороты.ДоговорКонтрагента КАК Договор,
ибсВыданныеТалоныОстаткиИОбороты.Талон КАК Талон,
ибсРеквизитыДоговоровСрезПоследних.ибсРайон КАК Район,
ибсРеквизитыДоговоровСрезПоследних.ибсТипДоговора КАК ТипДоговора,
ибсВыданныеТалоныОстаткиИОбороты.КоличествоНачальныйОстаток КАК НачальныйОстаток,
ибсВыданныеТалоныОстаткиИОбороты.КоличествоПриход КАК Выдано,
ибсВыданныеТалоныОстаткиИОбороты.КоличествоРасход КАК Использовано,
ибсВыданныеТалоныОстаткиИОбороты.КоличествоКонечныйОстаток КАК КонечныйОстаток
ИЗ
РегистрНакопления.ибсВыданныеТалоны.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, , , ) КАК ибсВыданныеТалоныОстаткиИОбороты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ибсРеквизитыДоговоров.СрезПоследних(&КонецПериода, ) КАК ибсРеквизитыДоговоровСрезПоследних
ПО ибсВыданныеТалоныОстаткиИОбороты.ДоговорКонтрагента = ибсРеквизитыДоговоровСрезПоследних.ДоговорКонтрагента
УПОРЯДОЧИТЬ ПО
Контрагент, Договор
В компоновке указываю ресурсы НачальныйОстаток, Выдано, Использовано, КонечныйОстаток. Создаю единственную группировку Контрагент, Договор, Талон, Договор, ТипДоговора и на закладке выбранные поля добавляю все 4 ресурса. Отчет формируется правильно, но при включении отбора по полям Район или ТипДоговора получаю пустой отчет. Что я делаю не так? Почему поля взяты из таблицы прикрепленной Левым соединением нельзя использовать в отборе?
Источник
Не работает отбор в СКД
(15) в качестве теста добавьте вычисляемое поле МенеджерПоле
и укажите выражение Менеджер.
если отбор на МенеджерПоле сработает, значит ваше предположение верно. Тогда в выбранных полях заменить Менеджер на МенеджерПоле и т.д.
(19) по этому фрагменту коду понятно, что стандартная компоновка отключена.
Значит есть вероятность, что в программной компоновке стандартное поведение отбора отключили.
Я бы еще в настройке компоновки создал в качестве теста новый вариант с нуля чтобы флажки Авто стали на свои места и проверил формирование с отборами
Посмотрите модуль объекта для отчета.
Там может быть процедура вроде этой:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
Если ее заремить, то отчет будет вести себя стандартно.
Ха-Ха! я тоже наткнулся на подобную проблему.
Было: отчет на СКД с кучей временных таблиц и разнообразными джойнами.
Отбор по контрагенту работал выборочно. по каким-то КА работает, по другим не работает. без отбора выводит всех .
Корень зла крылся в том, что при формировании одной из промежуточных временных таблиц был юнион одной таблицы с джойном пары других таблиц. В результате джойна могли появляться NULL значения.
Заменил левый джойн на полный, для того чтобы не получалось NULL значений в ссылочных колонках и isnull( ХЗ, 0) в числовых колонках.
В итоге, по всей цепочке временных таблиц и в итоговой выборке NULL пропали и отбор СКД заработал адекватно.
По логике моего отчета Контрагент должен быть заполнен какой-либо вменяемой ссылкой, не пустым значением.
Если по вашей логике допустимы пустые значения — то их можно заполнить через isNull( HZ , Значение(Справочник.какойто.пустаяссылка))
Мораль — СКД не любит NULL в колонках , по которым выполняется отбор.
Источник
СКД не работают отборы
Добрый день
Есть отчет на СКД. Все работало. Сделал, чтобы в шапке и в подвале отчета выводились собственные макеты. И они выводятся. Но не работают отборы и т.д. Что они есть, что их нет. Т.е. формируется полностью отчет со стандартными настройками. Даже даты периодов стандартные.
Когда делал, я так понимаю, что-то намутил с Процессором компоновки данных. Надо же было сделать, чтобы сначала вывелась моя шапка, потом весь отчет, потом мой подвал. Я сделал это в Модуле отчета. Вот код, подскажите:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Пользователь = ПользователиКлиентСервер.ТекущийПользователь();
Организация = уатОбщегоНазначенияПовтИсп.ПолучитьЗначениеПоУмолчаниюПользователя(Пользователь,»ОсновнаяОрганизация»);
НаДату = этотобъект.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(«ДатаКон»).Значение.Дата;
Руководители = уатОбщегоНазначенияТиповые.уатОтветственныеЛицаОрганизаций(Организация, НаДату);
ГлИнженер = Руководители.ГлавныйИнженер;
Настройки = КомпоновщикНастроек.Настройки;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
// Инициализируем процессор СКД
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
//ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки);
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);
Макет = ПолучитьОбщийМакет(«ШапкаИПодвалОтчетов»);
ОбластьШапка = Макет.ПолучитьОбласть(«ШапкаУтверждаю»);
ОбластьШапка.Параметры.Организация = Организация.НаименованиеСокращенное;
ОбластьШапка.Параметры.ГлИнженер = ГлИнженер;
ОбластьПодвал = Макет.ПолучитьОбласть(«ПодвалТехник»);
ДокументРезультат.Вывести(ОбластьШапка);
// Инициализируем процессор вывода
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
ДокументРезультат.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
ДокументРезультат.АвтоМасштаб = Истина;
КонецПроцедуры
Источник
Права на отбор в СКД
(27) woozee, Смотрите пример. Суть примера как обойти отсутствие права на просмотр регистра в СКД.
У вас нет доступа на просмотр регистров (на чтение есть), и из-за этого СКД не работает.
Но можно запросом получить нужные данные и положить их в СКД в набор данных -объект. А дальше уже СКД манипулирует с этими данными, получение которых никак не ни связано с самим СКД, а только обычным запросом к БД.
P.S. за пример просьба не пинать делался за 5 минут для регистра УПП.
(8) woozee, Вначале попробуйте выбрать разрешенные, если это не поможет:
1) Находите это коллекцию.
2) Ищете все упоминания о ней в куоде объекта/по всей конфигурации.
3) В итоге найдёте что формирование коллекции зависит от определенного модуля/процедуры на которую нужны права
4) Если у вас НЕ внешняя обработка, тогда выставьте права на чтение и редактирование.
5) Есди у вас внешняя обработка, тогда добавьте ещё просмотр.
Искать что за коллекция легче тут:
(9) anete.anetes, дело в том что я отчет то не формирую еще. Я его пытаюсь только открыть. В обработчике «При открытии()» прописано действие которое берет из поля «Склад» значение и подставляет его в СКД в 1 значение отбора. В СКД оно находится в вкладке «Настройки» и во втором поле «Настроки»-«Отбор».
В самом СКД там 3 значения которые нормально читаются с кучей прав стандартных(не полные) но вот с отдельной созданной мной ролью эта вкладка «Отбор» для обработки кода пуста!
То есть СКД еще не запускал свои запросы, в которых вы мне предлагаете проставить «Разрешенные», а «Склады» я могу под этим пользователем открывать для просмотра.
В общем, почитал несколько раз тему. Поставил «просмотр» на РН.ПартииТоваровНаСкладахБУ, и отчет открылся =( Отчет был в справочнике «Внешние отчеты и обработки», добавил его в базу — та же ошибка. без «Просмотра» не работает (((
галка «Разрешенные» проблему не решает((
Не хотелось бы давать права на просмотр регистров.
(23) HitGroove, RLS используется но на все обьекты разрешено «Чтение» без условий. Пока что версия 100% что из за того что нет прав на «Просмотр» РН.Партии. (написано выше) = Настройки.Отбор.Элементы ПУСТОЕ у проблемного пользователя. Но на самом деле право на это регистр «Партии. » лишь позволяет использовать «Справочники.Склад» в Настройки.Отбор.Элементы. При запуске запроса вываливаются другие ошибки, которые схожи по типу если неправильно настроен СКД, но на самом деле если проставить во ВСЕХ регистрах «Просмотр» — отчет будет работать без проблем.
(24) Xershi, у 1-го набора данных в конструкторе запроса ставится в 1 месте галочка «Разрешенные» и она действует на весь набор. Даже если вручную проставить — будет ругаться)
Немного поясню свою глобальность этой проблемы. Недавно стал серьезно заниматься системой прав доступа к УПП, уходить от стандартных распределений прав по подсистемам, так как на нашем предприятии вообще не подходит данное предложение. Отчетов на СКД написанных нашими программистами много. В тестировании нового подхода распределения прав вылезла данная проблема. Ну уж очень не хотелось давать права на просмотр регистров. Хочется обойтись малой кровью. если получиться)
(27) woozee, Смотрите пример. Суть примера как обойти отсутствие права на просмотр регистра в СКД.
У вас нет доступа на просмотр регистров (на чтение есть), и из-за этого СКД не работает.
Но можно запросом получить нужные данные и положить их в СКД в набор данных -объект. А дальше уже СКД манипулирует с этими данными, получение которых никак не ни связано с самим СКД, а только обычным запросом к БД.
P.S. за пример просьба не пинать делался за 5 минут для регистра УПП.
(30) Africa, Тут я так понимаю вопрос малой кровью разобраться с отчетом и пользователем.
О! Чеб ошибки не было мутим так:
Попытка
Настройки = ЭтотОбъект.КомпоновщикНастроек.Настройки;
Если Не ЭлементыФормы.Склад.Значение = Справочники.Склады.ПустаяСсылка() Тогда
Настройки.Отбор.Элементы[0].ПравоеЗначение = ЭлементыФормы.Склад.Значение;
Настройки.Отбор.Элементы[0].Использование = Истина;
Настройки.Отбор.Элементы[1].ПравоеЗначение = ЭлементыФормы.Склад.Значение;
Настройки.Отбор.Элементы[1].Использование = Истина;
Иначе
Настройки.Отбор.Элементы[0].Использование = Ложь;
Настройки.Отбор.Элементы[1].Использование = Ложь;
КонецЕсли;
Исключение
Сообщить(«Не капитальный ты красавчик. Не могу тебе отбор настроить!!»);
КонецПопытки;
Источник
Не работает отбор
Добрый день, хочу установить отбор по нескольким значениям при открытии, но он не работает, грубо говоря отрабатывает без ошибок, но и без отбора, скажите плз, где ты ошибка, СпособРасчета — вот поле, по которому устанавливается отбор
Помощь в написании контрольных, курсовых и дипломных работ здесь.
В запросе не работает отбор по подразделению
День добрый.. прошу помощи в вопросе по запросу. Отбор по организациям работает а отбор по.
Всем привет. Подскажите кто-нить, чойта туплю. Есть простой отчет на СКД, в макете компоновки.
Дин.список отбор данных — не работает код при тех же данных
Дано. Справочник Партнеры — владелец. Справочник Контакты и Справочник Подключения — подчиненные.
Не работает отбор в отчете «Ведомость по товарам на складах»
Доброго дня Отчет Ведомость по товарам на складах делаю отбор по «движение документ регистратор «.
Обращение к метаданным может быть только НаСервере
Добавлено через 15 секунд
Shokoladnaj, Откуда может быть НаКлиенте
polax, Так ПредопределенноеЗначение и есть, чтобы через клиент можно было обратиться, так и в Список же все попадает. Я же говорю, что все запускается, но не работает именно отбор, там все данные, которые и были
Добавлено через 18 минут
Мб кому надо будет, не работало, так как не было структуры отбора
Вот так работает
отбор
док = документы.Учет.СоздатьДокумент(); док.Дата=текущаяДата(); док.Записать(); Набор =.
Отбор
Как установить значение для отбора «Заявка»
Отбор
Привет вам. Снова в Access у меня проблема. Нужно что бы БД с данными о домах показывала дома.
8.1 отбор
Нужно, чтобы в форме отчета можно было выбрать вид отбора — по контрагенту, в группе, в списке, в.
Источник