|
Не могу вывести ответственного в отчете СКД | ☑ | ||
---|---|---|---|---|
0
slafor
11.02.22
✎
15:51
|
Делаю простой отчет по РТУ (БП 3.0), хочу вывести поле "Ответственный". Ввожу его как отдельное поле в запросе - в отчет оно не выводится. Вот как выглядит запрос в наборе данных:
ВЫБРАТЬ РеализацияТоваровУслуг.Ссылка КАК Документ, РеализацияТоваровУслуг.Дата КАК ДатаДок, РеализацияТоваровУслуг.Ответственный КАК Ответственный ИЗ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг Смотрю в процедуре ПриКомпоневкеРезультата - там итоговый запрос получается уже почему-то без поля Ответственный. Пробую в пользовательском режиме, через расширенные настройки отчета, сам выбрать это поле через ссылку Документ.Ответственный, но там такого реквизита ваще нет... Где я могу ошибаться? |
|||
1
youalex
11.02.22
✎
15:54
|
ФО ИспользоватьНесколькоОтветственных (одноименная константа) например
|
|||
2
slafor
11.02.22
✎
15:56
|
(1) Да, но в консоли запросов этот же запрос выдает правильные данные - с этим реквизитом )
|
|||
3
dmt
11.02.22
✎
15:57
|
(0) кинь отчет
|
|||
4
Beduin
11.02.22
✎
16:00
|
(0) А ты как выводишь, через группировку или детальные записи?
|
|||
5
youalex
11.02.22
✎
16:12
|
(2) консоль запросов не учитывает ФО, а СКД учитывает (по дефолту)
|
|||
6
slafor
11.02.22
✎
16:43
|
(4) Через группировку. Пробовал и через детальные записи.
Главное - в запросе, допустим, если поле - ссылка на документ РТУ. А в настройках отчета в пользовательском режиме я через эту ссылку могу найти что угодно, только не нужный мне реквизит: https://disk.yandex.ru/i/wboe7rVq_GTyhQ . Структура отчет, конечно, обильно изменена, но смысл понятен ) . Реквизит в документе есть, а здесь его нет. (5) А как можно исключить эту ФО в СКД? |
|||
7
youalex
11.02.22
✎
16:45
|
(6)
ПроверятьДоступностьПолей, по идее (сам не проверял) : КомпоновщикМакетаКомпоновкиДанных (DataCompositionTemplateComposer) Выполнить (Execute) Синтаксис: Выполнить(<Схема>, <Настройки>, <ДанныеРасшифровки>, <МакетОформления>, <ТипГенератора>, <ПроверятьДоступностьПолей>, <ПараметрыФункциональныхОпций>) <ПроверятьДоступностьПолей> (необязательный) Тип: Булево. Определяет, выполнять ли проверку прав на просмотр полей и проверку доступности поля во включенных функциональных возможностях. Значение по умолчанию: Истина. |
|||
8
slafor
11.02.22
✎
17:04
|
(7) Спасибо, поскольку у меня основной отчет как раз пишется в процедуре ПриКомпоновкеРезультата, я тоже очень понадеялся на этот параметр. Но получается вот как.
У меня пишется текст запроса, потом выполняется код: СхемаКомпоновкиДанных.НаборыДанных.НаборДанных1.Запрос = ТекстЗапроса; где в тексте запроса есть поле Ответственный, потом выполняется другой код: МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,КомпоновщикНастроек.ПолучитьНастройки(),ДанныеРасшифровки,,,Ложь); где ПроверятьДоступностьПолей устанавливается уже в Ложь, и в результате МакетКомпоновки (МакетКомпоновки.НаборыДанных.НаборДанных1.Запрос) выводит мне текст запроса, но уже БЕЗ поля Ответственный... Еще какие-то варианты возможны? |
|||
9
youalex
11.02.22
✎
17:24
|
(8) явное соединение с таблицей Пользователи, и Ответственного доставать оттуда Ссылка как Ответственный.
но я бы в качестве эксперимента все же попробовал бы переткнуть эту константу/ФО, чтобы убедиться, что дело в ней. |
|||
10
slafor
11.02.22
✎
17:29
|
(9) И это тоже попробовал - в результирующем запросе получается так:
"ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Пользователи КАК Спр ПО Док.Ответственный = Спр.Ссылка" остается, а поле Спр.Ссылка из конечного запроса куда-то испаряется... |
|||
11
youalex
11.02.22
✎
17:41
|
(10) может у тебя этого поля просто нет в выбранных?
|
|||
12
slafor
11.02.22
✎
19:45
|
(11) Чудо! Выяснил, что в этой константе действительно не стоит галка "Использовать несколько ответственных", установил - все заработало!
Но все же удивительно - почему другие способы не работают, может, ПроверятьДоступностьПолей - это вообще для другого? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |