|
необязательные условия в дин.Списке | ☑ | ||
---|---|---|---|---|
0
Eskeych
25.08.22
✎
16:42
|
Привет. Впервые сталкиваюсь с таким. Не ругайте :)
В общем вот запрос : ВЫБРАТЬ СправочникФизическиеЛица.Ссылка КАК Ссылка, СправочникФизическиеЛица.ПометкаУдаления КАК ПометкаУдаления, СправочникФизическиеЛица.Родитель КАК Родитель, СправочникФизическиеЛица.ЭтоГруппа КАК ЭтоГруппа, СправочникФизическиеЛица.Код КАК Код, СправочникФизическиеЛица.Наименование КАК Наименование, СправочникФизическиеЛица.ДатаРождения КАК ДатаРождения, СправочникФизическиеЛица.Пол КАК Пол, СправочникФизическиеЛица.ИНН КАК ИНН, СправочникФизическиеЛица.СтраховойНомерПФР КАК СтраховойНомерПФР, СправочникФизическиеЛица.МестоРождения КАК МестоРождения, СправочникФизическиеЛица.ГруппаДоступа КАК ГруппаДоступа, СправочникФизическиеЛица.ФИО КАК ФИО, СправочникФизическиеЛица.УточнениеНаименования КАК УточнениеНаименования, СправочникФизическиеЛица.ДатаРегистрации КАК ДатаРегистрации, СправочникФизическиеЛица.НаименованиеСлужебное КАК НаименованиеСлужебное, СправочникФизическиеЛица.Предопределенный КАК Предопределенный, СправочникФизическиеЛица.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных, ВЫРАЗИТЬ(NULL КАК ЧИСЛО(1, 0)) КАК ОтсутствуетСогласие, ВЫБОР КОГДА СубъектыСоКрытымиПДн.Субъект ЕСТЬ NULL ТОГДА ЛОЖЬ ИНАЧЕ ИСТИНА КОНЕЦ КАК ПДнСкрыты ИЗ Справочник.ФизическиеЛица КАК СправочникФизическиеЛица ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СубъектыДляСкрытияПерсональныхДанных КАК СубъектыСоКрытымиПДн ПО СправочникФизическиеЛица.Ссылка = СубъектыСоКрытымиПДн.Субъект И (СубъектыСоКрытымиПДн.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСубъектовДляСкрытия.СкрытиеВыполнено)) ГДЕ (СубъектыСоКрытымиПДн.Субъект ЕСТЬ NULL ИЛИ &ПоказыватьСоСкрытымиПДн) И СправочникФизическиеЛица.Ссылка В (ВЫБРАТЬ ЕРМ_ИзмененияПлановыхНачисленийСрезПоследних.Сотрудник.ФизическоеЛицо КАК Сотрудник ИЗ РегистрСведений.ЕРМ_ИзмененияПлановыхНачислений.СрезПоследних({&ДатаСреза},) КАК ЕРМ_ИзмененияПлановыхНачисленийСрезПоследних {ГДЕ ЕстьNull(ЕРМ_ИзмененияПлановыхНачисленийСрезПоследних.ДатаНачала, датавремя(1,1,1)) >= &ДатаНачала И ЕстьNull(ЕРМ_ИзмененияПлановыхНачисленийСрезПоследних.ДатаОкончания, датавремя(1,1,1)) < &ДатаОкончания} ГДЕ (ЕРМ_ИзмененияПлановыхНачисленийСрезПоследних.Статус = ЗНАЧЕНИЕ(Перечисление.ЕРМ_СтатусПроживанияВОбщежитии.ЗаключениеДопСоглашения) ИЛИ ЕРМ_ИзмененияПлановыхНачисленийСрезПоследних.Статус = ЗНАЧЕНИЕ(Перечисление.ЕРМ_СтатусПроживанияВОбщежитии.ВременнаяПриостановка))) форма открывается с разными условиями. при одном задается "дата среза" при другом дата начала и дата окончания. От этого фильтруется список сотрудников которые нам нужны. но когда хочу заполнить дату начала и окончания, он пишет, что параметр с указанным именем не найден. |
|||
1
6awkup_true
25.08.22
✎
16:47
|
все дело в том, что в ДС плохо работают(или не работают вообще) необязательные параметры.
чаще всего решают конструкцией в условиях(обязательных): Выбор когда &ИспользуемДатуСреза тогда //выборка по срезу Иначе //выборка за период конец будет работать в условиях виртуальной таблицы тоже. но нужно будет заполнить все параметры. и дату среза, и дату начала, и дату окончания |
|||
2
Eskeych
25.08.22
✎
16:51
|
тогда может быть заменять в запросе текст? и будет типо такого:
ВЫБРАТЬ СправочникФизическиеЛица.Ссылка КАК Ссылка, СправочникФизическиеЛица.ПометкаУдаления КАК ПометкаУдаления, Справочник.ФизическиеЛица КАК СправочникФизическиеЛица ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СубъектыДляСкрытияПерсональныхДанных КАК СубъектыСоКрытымиПДн ПО СправочникФизическиеЛица.Ссылка = СубъектыСоКрытымиПДн.Субъект И (СубъектыСоКрытымиПДн.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСубъектовДляСкрытия.СкрытиеВыполнено)) ГДЕ (СубъектыСоКрытымиПДн.Субъект ЕСТЬ NULL ИЛИ &ПоказыватьСоСкрытымиПДн) И СправочникФизическиеЛица.Ссылка В (ВЫБРАТЬ ЕРМ_ИзмененияПлановыхНачисленийСрезПоследних.Сотрудник.ФизическоеЛицо КАК Сотрудник ИЗ РегистрСведений.ЕРМ_ИзмененияПлановыхНачислений.СрезПоследних(&ДАТАСРЕЗАУСЛОВИЕ,) КАК ЕРМ_ИзмененияПлановыхНачисленийСрезПоследних ГДЕ &УСЛОВИЕПЕРИОДА ГДЕ (ЕРМ_ИзмененияПлановыхНачисленийСрезПоследних.Статус = ЗНАЧЕНИЕ(Перечисление.ЕРМ_СтатусПроживанияВОбщежитии.ЗаключениеДопСоглашения) ИЛИ ЕРМ_ИзмененияПлановыхНачисленийСрезПоследних.Статус = ЗНАЧЕНИЕ(Перечисление.ЕРМ_СтатусПроживанияВОбщежитии.ВременнаяПриостановка))) Если условие периода тогда Запрос.текст = СтрШаблон и тд? |
|||
3
Eskeych
25.08.22
✎
16:52
|
просто будет проще по логике, без выбор когда в условии, наверное
|
|||
4
6awkup_true
25.08.22
✎
16:55
|
условие в параметрах виртуальной таблицы = текущей дате? если да - в топку
без вложенного запроса в условии разве не решается задача? |
|||
5
Eskeych
25.08.22
✎
16:59
|
нет, не текущей дате. Задумка такая, что ответственный сотрудник указывает на форме дату отбора. Допустим 10.08.22. и открывает ручной подбор физ лиц, (и эта форма для подбора типовая по функционалу, я изменил только запрос дин. списка.)и в этом списке должны отображаться сотрудники, которые на эту дату проживают в общежитии. Это только для "&ДатаСреза". А &Датаначала и &ДатаОкончания это уже другое условия в котором заполняются все сотрудники за период.
|
|||
6
mikecool
25.08.22
✎
17:06
|
необязательные параметры называются отбор
|
|||
7
Курцвейл
25.08.22
✎
17:09
|
Запросы в условиях есть извращение для динамического списка. И вообще для самих запросов. Используйте соединение.
|
|||
8
Eskeych
25.08.22
✎
17:11
|
(7) ну даже если и так, это проблемс не решает :0
|
|||
9
Курцвейл
25.08.22
✎
17:17
|
(8) Проще всего заменить запрос в дин списке на нужный текст запроса, а не выдумывать хитрые условия
|
|||
10
Eskeych
25.08.22
✎
17:23
|
(9) Ну тогда буду пробовать. Всем спасибо :)
|
|||
11
Megas
25.08.22
✎
17:45
|
(10) https://its.1c.ru/db/v8std/content/732/hdoc
О дин списках - вкрации лучше не городить запрос, а заменить на более прямой. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |