Имя: Пароль:
1C
 
Ошибка запроса в СКД
0 nodrama
 
03.10.22
12:52
Доброго времени суток. в СКД есть запрос. При попытки сформировать отчет от пользователя то отчет выдает ошибку
{(153, 29)}: Поле не найдено "нач.Ссылка.Дата"
И (ЕСТЬNULL(нач.Ссылка.<<?>>Дата, ДАТАВРЕМЯ(1, 1, 1)) МЕЖДУ &НачалоПериода И КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ)))

Реквизит, дата есть если что)

Если от пользователя открыть консоль запросов. и выполнить в ней этот запрос. то ошибки нету. и запрос работает.
При этом если этому же пользователю дать полные права. то отчет опять работает.
Возникает вопрос. почему без полных прав отчет выдает ошибку, но в консоли отрабатывает.

То есть видимо косяк с правами. с полными правами отчет работает. без полных выдает ошибку выше... но возникает вопрос. почему без полных прав под пользователем в консоли запроса отчет Все равно работает )
1 nodrama
 
03.10.22
12:57
Логично же было бы что если у пользователя нету прав на что либо. то в консоли запросов не выводить данные то же...
2 mistеr
 
03.10.22
13:06
Отчет выполняется в расширении?
3 nodrama
 
03.10.22
13:07
(2) это зуп 2.5. и нет )
4 nodrama
 
03.10.22
13:08
не типовая. отчет добавлен в отчеты (не внешний)
5 nodrama
 
03.10.22
13:08
покое не дает момент что отчет выдает ошибку из запроса.
Но в консоли запросов под тем же пользователем и правами. работает как часы без ошибок
6 mistеr
 
03.10.22
13:10
Если память не подводит, СКД проверяет право Просмотр для объекта и его реквизитов, а запрос нет.
Проверь.
7 banco
 
03.10.22
13:12
выбрать разрешенные стоит?
8 nodrama
 
03.10.22
13:12
(6) Ну в правах стоит "чтение".. просмотра того дока нет. но он и не должен его "смотреть". из того дока ему нужно только 1 реквизит или два не помню. и они вытягивались в отчет.
если дать просмотр то он будет видеть весь док и нужно будет еще шаманить. (7) нет. надо?
9 nodrama
 
03.10.22
13:14
(7) да посмотрел еще раз. там запрос из нескольких запросов объедененных.. тот от куда этот код. там стоит
10 Smallrat
 
03.10.22
13:16
Если компоновка создается программно, то там есть такой параметр как "ПроверятьДоступностьПолей" - возможно его надо поставить в Ложь:

КомпоновщикМакетаКомпоновкиДанных (DataCompositionTemplateComposer)
Выполнить (Execute)
Синтаксис:
Выполнить(<Схема>, <Настройки>, <ДанныеРасшифровки>, <МакетОформления>, <ТипГенератора>, <ПроверятьДоступностьПолей>, <ПараметрыФункциональныхОпций>)
Параметры:
<Схема> (обязательный)
Тип: СхемаКомпоновкиДанных.
Схема, для которой требуется построить макет.
<Настройки> (обязательный)
Тип: НастройкиКомпоновкиДанных.
Настройки, для которых необходимо создать макет.
<ДанныеРасшифровки> (необязательный)
Тип: ДанныеРасшифровкиКомпоновкиДанных.
Содержит переменную, в которую будут помещены данные расшифровки. Если параметр не указан, расшифровка заполняться не будет.
<МакетОформления> (необязательный)
Тип: МакетОформленияКомпоновкиДанных.
Макет оформления, в соответствии с которым необходимо оформлять макет компоновки данных. Если не указан, будет использоваться макет оформления по умолчанию.
<ТипГенератора> (необязательный)
Тип: Тип.
Указывает тип генератора макета компоновки данных.
Возможные типы:
ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений (DataCompositionValueCollectionTemplateGenerator);
ГенераторМакетаКомпоновкиДанных (DataCompositionTemplateGenerator)
.
Значение по умолчанию: Тип("ГенераторМакетаКомпоновкиДанных").
<ПроверятьДоступностьПолей> (необязательный)
Тип: Булево.
Определяет, выполнять ли проверку прав на просмотр полей и проверку доступности поля во включенных функциональных возможностях.
Значение по умолчанию: Истина.
<ПараметрыФункциональныхОпций> (необязательный)
Тип: Структура.
Содержит параметры функциональных опций, используемые при исполнении отчета.
11 nodrama
 
03.10.22
13:17
(6) Все верно. СКД проверяет на просмотр. а галочки в правах на этом документе не было.
только чтение.
Теперь я поставил галочку просмотр. Отчет заработал в стандартном режиме.
Теперь нужно шаманить что бы галочка просмотр была, но посмотреть он эти доки все равно не мог )
12 nodrama
 
03.10.22
13:19
(10) не такого нет. в схеме запррос и все, кода нет
13 Smallrat
 
03.10.22
13:21
(12) если компоновка формируется программно, то код расположен в модуле объекта, вызывается из обработчика ПриКомпоновкеРезультата()
14 nodrama
 
03.10.22
13:22
(13) да я в курсе но нет не программно.

Пока что редактирование прав с галочкой на документе том "просмотр" .. решила проблему .
осталось теперь сделать что бы по факту просмотра дока того не было )
всем спасибо
15 mistеr
 
03.10.22
13:23
(11) Как вариант, получить данные запросом в ТЗ, передать в СКД.
16 Smallrat
 
03.10.22
13:28
(14) а, да, есть такая особенность поведения СКД - если нет прав на просмотр, то будут проблемы. Как вариант - либо (15), либо переопределить на программную компоновку и поставить флаг "ПроверятьДоступностьПолей" в Ложь
17 PR
 
03.10.22
13:30
(0) Все верно, даже СКД блюет от твоего "нач"
18 nodrama
 
03.10.22
14:05
(17) Это не мое. просто переписывать все это нет времени пока что. старый отчет хз что писал и как он раньше работал то же хз
19 nodrama
 
03.10.22
14:06
если при каждой какой-то задачи. переписывать с нуля, эту кривоту. то можно годами закрывать задачи )) проще поправить и далее когда будет время переисывать по необходимости )
20 PR
 
03.10.22
14:37
(18) Ну не надо вот, теперь сифа ты
21 nodrama
 
03.10.22
14:38
(20) понимаю, ок ;)
22 PR
 
03.10.22
14:38
(19) Ну так правь
Почему тогда ты хочешь, чтобы эту мерзопакостность поправили мы? :))
23 PR
 
03.10.22
14:39
(21) В процессе приведения говнокода во что-то хоть мало-мальски удобоваримое часто сами собой правятся глупейшие и не очень ошибки
24 nodrama
 
03.10.22
14:50
(22) так там ошибка не именно в обозначении "нач"..
нач это кривокодеры которые так обозвали таблицу место того что бы назвать ее по человечески)
25 PR
 
03.10.22
15:11
(24) См. (23)