|
Не срабатывают необязательные условия из компоновки данных | ☑ | ||
---|---|---|---|---|
0
slafor
14.07.22
✎
15:33
|
УНФ 1.6. Конфигурация доработанная.
Есть запрос на СКД, в котором я использую необязательные условия в компоновке данных (с фигурными скобками). Но они почему-то не срабатывают. Если пишу этот же запрос в консоли запросов и ставлю эти условия как обычные с оператором ГДЕ, то все работает правильно. А через СКД - нет. Что я делаю не так? Вот скрины: 1. Не срабатывают условия по дате и по сотрудникам https://disk.yandex.ru/i/sYniu-D3wlu-qw 2. Параметры необязательных условий указаны в параметрах СКД: https://disk.yandex.ru/i/2YC-YnIrrnP_jQ https://disk.yandex.ru/i/pdvWfyRpbM9qEw Вот сам запрос, условия задаются во второй временной таблице: ВЫБРАТЬ РАЗРЕШЕННЫЕ НаличиеФайлов.ОбъектСФайлами.Ссылка КАК ДокументУчастника, ДвоичныеДанныеФайлов.ДвоичныеДанныеФайла КАК ИзображенияДокументов ПОМЕСТИТЬ ДвоичныеДанныеИзображения ИЗ РегистрСведений.НаличиеФайлов КАК НаличиеФайлов ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДвоичныеДанныеФайлов КАК ДвоичныеДанныеФайлов ПО НаличиеФайлов.ОбъектСФайлами = ДвоичныеДанныеФайлов.Файл.ВладелецФайла ГДЕ ТИПЗНАЧЕНИЯ(НаличиеФайлов.ОбъектСФайлами.Ссылка) = ТИП(Документ.ДОП_ДокументУчастника) И НаличиеФайлов.ЕстьФайлы = ИСТИНА И ДвоичныеДанныеФайлов.Файл.ПометкаУдаления = ЛОЖЬ ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ДвоичныеДанныеИзображения.ИзображенияДокументов КАК ИзображенияДокументов, ДОП_ДокументУчастника.Ссылка КАК ДокументУчастника, ДОП_ДокументУчастника.Сотрудник КАК Сотрудник, ДОП_ДокументУчастника.НаправлениеДеятельности КАК НаправлениеДеятельности, ДОП_ДокументУчастника.Описание КАК Описание, ДОП_ДокументУчастника.БессрочныйДокумент КАК БессрочныйДокумент, ДОП_ДокументУчастника.ДействуетС КАК ДействуетС, ДОП_ДокументУчастника.ДействуетПо КАК ДействуетПо, ДОП_ДокументУчастника.НеИспользовать КАК НеИспользовать ПОМЕСТИТЬ ДвоичныеДанные ИЗ Документ.ДОП_ДокументУчастника КАК ДОП_ДокументУчастника ЛЕВОЕ СОЕДИНЕНИЕ ДвоичныеДанныеИзображения КАК ДвоичныеДанныеИзображения ПО (ДвоичныеДанныеИзображения.ДокументУчастника = ДОП_ДокументУчастника.Ссылка) ГДЕ ДОП_ДокументУчастника.НеИспользовать = ЛОЖЬ {ГДЕ (ДОП_ДокументУчастника.Сотрудник = &Сотрудник) КАК Сотрудник, (ДОП_ДокументУчастника.НаправлениеДеятельности = &НаправлениеДеятельности) КАК НаправлениеДеятельности, (ВЫБОР КОГДА ДОП_ДокументУчастника.БессрочныйДокумент = ЛОЖЬ ТОГДА ДОП_ДокументУчастника.ДействуетС <= &ДатаОтчета И ДОП_ДокументУчастника.ДействуетПо >= &ДатаОтчета ИНАЧЕ ДОП_ДокументУчастника.ДействуетС <= &ДатаОтчета КОНЕЦ) КАК ДатаОтчета} ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ДвоичныеДанные.ИзображенияДокументов КАК ИзображенияДокументов, ДвоичныеДанные.ДокументУчастника КАК ДокументУчастника, ДвоичныеДанные.ДействуетПо КАК ДействуетПо, ДвоичныеДанные.Сотрудник КАК Сотрудник, ДвоичныеДанные.Описание КАК Описание, ДОП_НаправленияИДолжности.СтажСпециальность КАК СтажСпециальность, ДОП_НаправленияИДолжности.Должность КАК Должность ИЗ ДвоичныеДанные КАК ДвоичныеДанные ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДОП_НаправленияИДолжности КАК ДОП_НаправленияИДолжности ПО ДвоичныеДанные.Сотрудник = ДОП_НаправленияИДолжности.Сотрудник И ДвоичныеДанные.НаправлениеДеятельности = ДОП_НаправленияИДолжности.НаправлениеДеятельности |
|||
1
6awkup_true
14.07.22
✎
15:37
|
Убери Как сотрудник, Как НаправлениеДеятельности и Как ДатаОтчета
|
|||
2
youalex
14.07.22
✎
15:43
|
А Отбор ты устанавливаешь на ДатаОтчета?
|
|||
3
slafor
14.07.22
✎
15:46
|
(1) Спасибо, другие результаты стал выдавать.
А почему, если не секрет? :) Просто я брал из примера, там так и было. И если в условиях на закладке компоновка данных пишешь Представление, то он сам эти КАК туда добавляет. (2) Отбор я вообще убрал, у меня все в необязательных параметрах задается. |
|||
4
6awkup_true
14.07.22
✎
15:47
|
(3) Скорее всего из за пересечения имен. проблема старая и постоянно встречается
|
|||
5
youalex
14.07.22
✎
15:59
|
Я так понимаю, когда указываешь в {ГДЕ} псевдоним КАК - ты определяешь поле отбора, и обязательность параметров зависит от того, есть ли отбор по этому полю.
Т.е. твое условие преобразуется (сокращаю) в ГДЕ ДОП_ДокументУчастника.ДействуетПо >= &ДатаОтчета = Истина //Истина - значение элемента отбора А если псевдоним не указывать - то будет просто ДОП_ДокументУчастника.ДействуетПо >= &ДатаОтчета |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |