1с отчет скд поле не найдено
Поле не найдено, отчет на СКД
Всем привет! Хелп!
Есть внешний отчет, при формировании пишет следующее:
Поле не найдено «СведенияКадровойИсторияСотрудников.ВидЗанятости» И СведенияКадровойИсторияСотрудников.ВидЗанятости <> СведенияКадровойИсторияСотрудников2.ВидЗанятости
И собственно ругается на этот кусок запроса,
//ЗапросКадроваяИсторияСотрудников
ВЫБРАТЬ РАЗРЕШЕННЫЕ
СведенияКадровойИсторияСотрудников.Период,
СведенияКадровойИсторияСотрудников.ФизическоеЛицо,
ВЫБОР
КОГДА СведенияКадровойИсторияСотрудников.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ОсновноеМестоРаботы)
И СведенияКадровойИсторияСотрудников.Подразделение <> ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка)
ТОГДА СведенияКадровойИсторияСотрудников.Подразделение
КОГДА СведенияКадровойИсторияСотрудников2.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ОсновноеМестоРаботы)
И СведенияКадровойИсторияСотрудников2.Подразделение <> ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка)
ТОГДА СведенияКадровойИсторияСотрудников2.Подразделение
КОГДА СведенияКадровойИсторияСотрудников.Подразделение <> ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка)
ТОГДА СведенияКадровойИсторияСотрудников.Подразделение
КОГДА СведенияКадровойИсторияСотрудников2.Подразделение <> ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка)
ТОГДА СведенияКадровойИсторияСотрудников2.Подразделение
ИНАЧЕ ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка)
КОНЕЦ КАК Подразделение
ПОМЕСТИТЬ ВТСведенияОПодразделенияхПредварительно
ИЗ ВТКадроваяИсторияСотрудников КАК СведенияКадровойИсторияСотрудников
ЛЕВОЕ СОЕДИНЕНИЕ ВТКадроваяИсторияСотрудников КАК СведенияКадровойИсторияСотрудников2
ПО СведенияКадровойИсторияСотрудников.ФизическоеЛицо = СведенияКадровойИсторияСотрудников2.ФизическоеЛицо
И СведенияКадровойИсторияСотрудников.Период = СведенияКадровойИсторияСотрудников2.Период
И СведенияКадровойИсторияСотрудников.Организация = СведенияКадровойИсторияСотрудников2.Организация
И СведенияКадровойИсторияСотрудников.ВидЗанятости <> СведенияКадровойИсторияСотрудников2.ВидЗанятости
И СведенияКадровойИсторияСотрудников2.Подразделение <> ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка)
;
Что его тут не устраивает?
Поле не найдено «СведенияКадровойИсторияСотрудников.ВидЗанятости»
в таблице «СведенияКадровойИсторияСотрудников»
Копируйте текст запроса, и открывайте, устраняя ошибки, пока не откроется.
Отчёт, наверное, самописный, а в конфигурации разработчики убрали такое поле или переименовали.
v8: СКД: в условии связи не указываются поля набора данных-объект
Ваяю внешний отчет на СКД.
У отчета есть табличная часть «ДиапазоныОстатков» с двумя числовыми реквизитами «НижнийПредел», «ВерхнийПредел».
Есть два набора данных:
— типа «объект» с именем «ДиапазоныОстатков», куда я гружу табличную часть
— типа «объединение» с именем «ОстаткиТоваров», в котором два набора данных типа «запрос»: «ОстаткиНаСкладах» и «ОстаткиВРознице»
Через связи наборов данных в СКД делаю соединение наборов данных:
— и СКД ошибок выполнения не выдает, пока не пытаюсь в условии связи обратиться к полям набора данных-объект «НижнийПредел» или «ВерхнийПредел».
по причине:
Ошибка компоновки макета
по причине:
Поле не найдено «ВерхнийПредел»
Код модуля объекта следующий:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
//Компоновка результата
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
Макет = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки);
ВнешниеНаборыДанных = Новый Структура(«ДиапазоныОстатков», ДиапазоныОстатков);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(Макет, ВнешниеНаборыДанных);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ДокументРезультат = ПроцессорВывода.Вывести(ПроцессорКомпоновки);
Ошибка вылетает при компоновке макета на строке:
СКД, ошибка в вычисляемых полях
(4) А, так у вас программный вывод? А вы его не забыли инициализировать, случаем?
по причине:
Ошибка вывода результата
по причине:
Ошибка при выводе результата
по причине:
Ошибка получения данных
по причине:
Ошибка в выражении
по причине:
Синтаксическая ошибка «опМодуль.КореньКвадратный»
по причине:
Ошибка вывода результата
по причине:
Ошибка при выводе результата
по причине:
Ошибка получения данных
по причине:
Ошибка в выражении
по причине:
Синтаксическая ошибка «SQRT»
(8) А это уже странно. Тупо ради интереса запилил себе в первый попавшийся отчет эту функцию, вот этот столбец:
Корень из отрицательного числа
118,82
39,01
79,81
(4) А, так у вас программный вывод? А вы его не забыли инициализировать, случаем?
В СКД можно использовать функции глобальных и неглобальных общих модулей в вычисляемых полях при условии что функция объявлена как экспортная.
Есть только маленькая тонкость при программном формировании отчета СКД.
Обычно, при инициализации процессора компоновки данных делают так:
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);
При таком формировании отчета вызова функций не произойдет. Что бы эту возможность включить нужно сделать так
по причине:
Ошибка вывода результата
по причине:
Ошибка при выводе результата
по причине:
Ошибка получения данных
по причине:
Ошибка в выражении
по причине:
Неверные параметры «*»
В СКД отображаются не все поля
Суть проблемы: есть отчет на скд, под полными правами он работает так как мне надо. Если запускаю его не под полными правами, то пропадают некоторые поля. Права на чтение/просмотр у пользователя с неполными правами есть на регистры и на документы используемые в запросе.
пробовал запускать под пользователем с неполными правами запрос из отчета в консоли запросов, всё работает правильно. Но в скд почему то поля просто теряются. их нет в выбранных полях.
пробовал выгружать настройку скд под полными и загружать не под полными правами. поля не появляются.
куда копать? помогите)
выше текст запроса.
нету вот этих полей :
то есть это реквизит документов «сумма документа»
Действительно если у пользователя есть право «Чтение», но нет права «Просмотр» регистра сведений, поле из него не попадает в список доступных полей.
Удивительно, но факт.
Результат НУЛЕВОЙ!
Поля видны только тем пользователям, у которых есть роль «Полные права».
Конфигурация: Управление торговлей, редакция 11.1 (11.1.9.61)
Платформа: 1С:Предприятие 8.3 (8.3.5.1517)
Нужно смотреть не только права на регистратор, но и на все объекты
отчета, где этот объект как таковой может использоваться в качестве
реквизита.
В моем случае использовалось измерение «АналитикаУчетаПопартнерам» в измерении
регистра «РасчетыСПоставщиками». Вот из-за того, что на сам справочник права
были только для роли «ПолныкеПрава» отбор по его реквизитам «Организация», «Партнер»
и «Контрагент» был невозможен. Не смотря на то, что на сами эти объекты у пользователей
разрешения были.
(19) valerasv,
Еще один вариант решения проблемы:
Делается соединения с таблицами объектов.
А уже эти таблицы используются дальше.
Пример.
Текст запроса для КД:
ВЫБРАТЬ
КлючиАналитикиУчетаПоПартнерам.Организация КАК Организация_КлючАналитики
ИЗ
Справочник.КлючиАналитикиУчетаПоПартнерам КАК КлючиАналитикиУчетаПоПартнерам
Для пользователя, у которого не полные права, из-за того, что на справочник КлючиАналитикиУчетаПоПартнерам
установлено разрешение только на чтение, мы ни где не увидим поле «Организация».
Изменив же запрос, можно получить желаемое.
Как пример:
ВЫБРАТЬ
Организации.Ссылка КАК Организация_КлючАналитики
ИЗ
Справочник.КлючиАналитикиУчетаПоПартнерам КАК КлючиАналитикиУчетаПоПартнерам
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации КАК Организации
ПО КлючиАналитикиУчетаПоПартнерам.Организация = Организации.Ссылка