Динамический список, произвольный запрос
Добрый день. Столкнулся с проблемой: Произвольный запрос (Динамический список) в форме выбора, при открытие формы пишет "Поле не найдено "DeletionMark"". Вот сам запрос
Кто ни будь знает , в чем может быть проблема?
ВЫБРАТЬ
ФизическиеЛица.Ссылка КАК Ссылка,
МАКСИМУМ(АБС_КадроваяИсторияСотрудниковСрезПоследних.Период) КАК Период,
ФизическиеЛица.ПометкаУдаления
ПОМЕСТИТЬ ВТ
ИЗ
Справочник.ФизическиеЛица КАК ФизическиеЛица
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АБС_КадроваяИсторияСотрудников.СрезПоследних(&Период, ) КАК АБС_КадроваяИсторияСотрудниковСрезПоследних
ПО ФизическиеЛица.Ссылка = АБС_КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо
СГРУППИРОВАТЬ ПО
ФизическиеЛица.Ссылка,
ФизическиеЛица.ПометкаУдаления
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВТ.Ссылка КАК Ссылка,
ВТ.ПометкаУдаления
ПОМЕСТИТЬ Отобранные
ИЗ
ВТ КАК ВТ
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АБС_КадроваяИсторияСотрудников КАК АБС_КадроваяИсторияСотрудников
ПО ВТ.Ссылка = АБС_КадроваяИсторияСотрудников.ФизическоеЛицо
И ВТ.Период = АБС_КадроваяИсторияСотрудников.Период
ГДЕ
НЕ АБС_КадроваяИсторияСотрудников.ВидСобытия ЕСТЬ NULL
И АБС_КадроваяИсторияСотрудников.ВидСобытия <> ЗНАЧЕНИЕ(Перечисление.АБС_ВидыКадровыхСобытий.Увольнение)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
СправочникФизическиеЛица.Ссылка КАК Ссылка,
СправочникФизическиеЛица.ПометкаУдаления КАК ПометкаУдаления,
СправочникФизическиеЛица.Родитель КАК Родитель,
СправочникФизическиеЛица.ЭтоГруппа КАК ЭтоГруппа,
СправочникФизическиеЛица.Код КАК Код,
СправочникФизическиеЛица.Наименование КАК Наименование,
СправочникФизическиеЛица.ДатаРождения,
СправочникФизическиеЛица.Пол КАК Пол,
СправочникФизическиеЛица.Картинка КАК Картинка,
СправочникФизическиеЛица.emp_id КАК emp_id,
СправочникФизическиеЛица.Активность КАК Активность,
СправочникФизическиеЛица.Предопределенный КАК Предопределенный,
СправочникФизическиеЛица.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных
ИЗ
Справочник.ФизическиеЛица КАК СправочникФизическиеЛица
ГДЕ
СправочникФизическиеЛица.Ссылка В
(ВЫБРАТЬ
Отобранные.Ссылка
ИЗ
Отобранные КАК Отобранные)
И НЕ СправочникФизическиеЛица.ПометкаУдаления
ПоказатьКто ни будь знает , в чем может быть проблема?
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) зачем получаете ПометкаУдаления во временных таблицах, если далее не используете?
Выбирайте сразу не помеченный во временную таблицу, а в итоговой не нужно дополнительное условие на проверку помеченных на удаление.
Выбирайте сразу не помеченный во временную таблицу, а в итоговой не нужно дополнительное условие на проверку помеченных на удаление.
ВЫБРАТЬ
ФизическиеЛица.Ссылка КАК Ссылка,
МАКСИМУМ(АБС_КадроваяИсторияСотрудниковСрезПоследних.Период) КАК Период
ПОМЕСТИТЬ ВТ
ИЗ
Справочник.ФизическиеЛица КАК ФизическиеЛица
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АБС_КадроваяИсторияСотрудников.СрезПоследних(&Период, ) КАК АБС_КадроваяИсторияСотрудниковСрезПоследних
ПО ФизическиеЛица.Ссылка = АБС_КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо
ГДЕ НЕ СправочникФизическиеЛица.ПометкаУдаления
СГРУППИРОВАТЬ ПО
ФизическиеЛица.Ссылка
Показать
(9)
ВЫБРАТЬ
ФизическиеЛица.Ссылка КАК Ссылка,
МАКСИМУМ(АБС_КадроваяИсторияСотрудниковСрезПоследних.Период) КАК Период,
ФизическиеЛица.ПометкаУдаления КАК ПометкаУдаления,
ФизическиеЛица.Родитель КАК Родитель,
ФизическиеЛица.ЭтоГруппа КАК ЭтоГруппа,
ФизическиеЛица.Наименование КАК Наименование,
ФизическиеЛица.Предопределенный КАК Предопределенный
ПОМЕСТИТЬ ВТ
ИЗ
Справочник.ФизическиеЛица КАК ФизическиеЛица
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АБС_КадроваяИсторияСотрудников.СрезПоследних(&Период, ) КАК АБС_КадроваяИсторияСотрудниковСрезПоследних
ПО ФизическиеЛица.Ссылка = АБС_КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо
СГРУППИРОВАТЬ ПО
ФизическиеЛица.Ссылка,
ФизическиеЛица.ПометкаУдаления,
ФизическиеЛица.Родитель,
ФизическиеЛица.ЭтоГруппа,
ФизическиеЛица.Наименование,
ФизическиеЛица.Предопределенный
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВТ.Ссылка КАК Ссылка,
ВТ.ПометкаУдаления,
ВТ.Наименование КАК Наименование
ПОМЕСТИТЬ Отобранные
ИЗ
ВТ КАК ВТ
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АБС_КадроваяИсторияСотрудников КАК АБС_КадроваяИсторияСотрудников
ПО ВТ.Ссылка = АБС_КадроваяИсторияСотрудников.ФизическоеЛицо
И ВТ.Период = АБС_КадроваяИсторияСотрудников.Период
ГДЕ
НЕ АБС_КадроваяИсторияСотрудников.ВидСобытия ЕСТЬ NULL
И АБС_КадроваяИсторияСотрудников.ВидСобытия <> ЗНАЧЕНИЕ(Перечисление.АБС_ВидыКадровыхСобытий.Увольнение)
И НЕ ВТ.ПометкаУдаления
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
СправочникФизическиеЛица.Ссылка КАК Ссылка,
СправочникФизическиеЛица.ПометкаУдаления КАК ПометкаУдаления,
СправочникФизическиеЛица.Родитель КАК Родитель,
СправочникФизическиеЛица.ЭтоГруппа КАК ЭтоГруппа,
СправочникФизическиеЛица.Код КАК Код,
СправочникФизическиеЛица.Наименование КАК Наименование,
СправочникФизическиеЛица.ДатаРождения,
СправочникФизическиеЛица.Пол КАК Пол,
СправочникФизическиеЛица.Картинка КАК Картинка,
СправочникФизическиеЛица.emp_id КАК emp_id,
СправочникФизическиеЛица.Активность КАК Активность,
СправочникФизическиеЛица.Предопределенный КАК Предопределенный,
СправочникФизическиеЛица.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных
ИЗ
Справочник.ФизическиеЛица КАК СправочникФизическиеЛица
ГДЕ
СправочникФизическиеЛица.Ссылка В
(ВЫБРАТЬ
Отобранные.Ссылка
ИЗ
Отобранные КАК Отобранные)
ВЫБРАТЬ
ФизическиеЛица.Ссылка КАК Ссылка,
МАКСИМУМ(АБС_КадроваяИсторияСотрудниковСрезПоследних.Период) КАК Период,
ФизическиеЛица.ПометкаУдаления КАК ПометкаУдаления,
ФизическиеЛица.Родитель КАК Родитель,
ФизическиеЛица.ЭтоГруппа КАК ЭтоГруппа,
ФизическиеЛица.Наименование КАК Наименование,
ФизическиеЛица.Предопределенный КАК Предопределенный
ПОМЕСТИТЬ ВТ
ИЗ
Справочник.ФизическиеЛица КАК ФизическиеЛица
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АБС_КадроваяИсторияСотрудников.СрезПоследних(&Период, ) КАК АБС_КадроваяИсторияСотрудниковСрезПоследних
ПО ФизическиеЛица.Ссылка = АБС_КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо
СГРУППИРОВАТЬ ПО
ФизическиеЛица.Ссылка,
ФизическиеЛица.ПометкаУдаления,
ФизическиеЛица.Родитель,
ФизическиеЛица.ЭтоГруппа,
ФизическиеЛица.Наименование,
ФизическиеЛица.Предопределенный
;
////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ.Ссылка КАК Ссылка,
ВТ.ПометкаУдаления,
ВТ.Наименование КАК Наименование
ПОМЕСТИТЬ Отобранные
ИЗ
ВТ КАК ВТ
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АБС_КадроваяИсторияСотрудников КАК АБС_КадроваяИсторияСотрудников
ПО ВТ.Ссылка = АБС_КадроваяИсторияСотрудников.ФизическоеЛицо
И ВТ.Период = АБС_КадроваяИсторияСотрудников.Период
ГДЕ
НЕ АБС_КадроваяИсторияСотрудников.ВидСобытия ЕСТЬ NULL
И АБС_КадроваяИсторияСотрудников.ВидСобытия <> ЗНАЧЕНИЕ(Перечисление.АБС_ВидыКадровыхСобытий.Увольнение)
И НЕ ВТ.ПометкаУдаления
;
////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
СправочникФизическиеЛица.Ссылка КАК Ссылка,
СправочникФизическиеЛица.ПометкаУдаления КАК ПометкаУдаления,
СправочникФизическиеЛица.Родитель КАК Родитель,
СправочникФизическиеЛица.ЭтоГруппа КАК ЭтоГруппа,
СправочникФизическиеЛица.Код КАК Код,
СправочникФизическиеЛица.Наименование КАК Наименование,
СправочникФизическиеЛица.ДатаРождения,
СправочникФизическиеЛица.Пол КАК Пол,
СправочникФизическиеЛица.Картинка КАК Картинка,
СправочникФизическиеЛица.emp_id КАК emp_id,
СправочникФизическиеЛица.Активность КАК Активность,
СправочникФизическиеЛица.Предопределенный КАК Предопределенный,
СправочникФизическиеЛица.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных
ИЗ
Справочник.ФизическиеЛица КАК СправочникФизическиеЛица
ГДЕ
СправочникФизическиеЛица.Ссылка В
(ВЫБРАТЬ
Отобранные.Ссылка
ИЗ
Отобранные КАК Отобранные)
Такой вариант:
ВЫБРАТЬ
АБС_КадроваяИсторияСотрудников.ФизическоеЛицо КАК ФизическоеЛицо,
МАКСИМУМ(АБС_КадроваяИсторияСотрудников.Период) КАК Период
ПОМЕСТИТЬ ВТ
ИЗ
РегистрСведений.АБС_КадроваяИсторияСотрудников КАК АБС_КадроваяИсторияСотрудников
ГДЕ
АБС_КадроваяИсторияСотрудников.Период <= &Период
И НЕ АБС_КадроваяИсторияСотрудников.ФизическоеЛицо.ПометкаУдаления
СГРУППИРОВАТЬ ПО
АБС_КадроваяИсторияСотрудников.ФизическоеЛицо
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВТ.ФизическоеЛицо КАК ФизическоеЛицо
ПОМЕСТИТЬ Отобранные
ИЗ
ВТ КАК ВТ
ВНУТРЕННЕЕ СОЕДИНЕНИЕ АБС_РегистрСведений.КадроваяИсторияСотрудников КАК АБС_КадроваяИсторияСотрудников
ПО ВТ.ФизическоеЛицо = АБС_КадроваяИсторияСотрудников.ФизическоеЛицо
И ВТ.Период = АБС_КадроваяИсторияСотрудников.Период
ГДЕ
АБС_КадроваяИсторияСотрудников.ВидСобытия <> ЗНАЧЕНИЕ(Перечисление.АБС_ВидыКадровыхСобытий.Увольнение)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
СправочникФизическиеЛица.Ссылка КАК Ссылка,
СправочникФизическиеЛица.ПометкаУдаления КАК ПометкаУдаления,
СправочникФизическиеЛица.Родитель КАК Родитель,
СправочникФизическиеЛица.Код КАК Код,
СправочникФизическиеЛица.Наименование КАК Наименование,
СправочникФизическиеЛица.ДатаРождения КАК ДатаРождения,
СправочникФизическиеЛица.Пол КАК Пол
ИЗ
Справочник.ФизическиеЛица КАК СправочникФизическиеЛица
ГДЕ
СправочникФизическиеЛица.Ссылка В
(ВЫБРАТЬ
Отобранные.ФизическоеЛицо КАК ФизическоеЛицо
ИЗ
Отобранные КАК Отобранные)
Показать
наверняка регистр АБС_РегистрСведений - переодический
тогда весь запрос получается такой
(а если Рег не периодический то на пару строчек больше)
тогда весь запрос получается такой
Выбрать
спр.*
из
Справочник.ФизическиеЛица КАК Спр
левое соединение АБС_РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних() КАК Рег
ПО Спр.Ссылка = Рег.ФизическоеЛицо
где
Не спр.ПометкаУдаления
и ЕстьNull(Рег.ВидСобытия, Неопределено) <> ЗНАЧЕНИЕ(Перечисление.АБС_ВидыКадровыхСобытий.Увольнение)
Показать(а если Рег не периодический то на пару строчек больше)
добавьте в запрос поле
Рег.Организация - очень полезная информация, будет видно в какой организации человек еще не волен
и в произвольном запросе Дин.списка
очистите поле Основная таблица,
для более удобного просмотра добавьте сортировку и группировку на Закладках запроса,
например Группировка по Организациям, вам позволит увидитеть текущий штат.
Рег.Организация - очень полезная информация, будет видно в какой организации человек еще не волен
Выбрать
спр.*,
Рег.Организация,
Рег.ВидСобытия //последнее событие, кроме увольнения
из
Справочник.ФизическиеЛица КАК Спр
левое соединение АБС_РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних() КАК Рег
ПО Спр.Ссылка = Рег.ФизическоеЛицо
где
Не спр.ПометкаУдаления
и ЕстьNull(Рег.ВидСобытия, Неопределено) <> ЗНАЧЕНИЕ(Перечисление.АБС_ВидыКадровыхСобытий.Увольнение)
Показатьи в произвольном запросе Дин.списка
очистите поле Основная таблица,
для более удобного просмотра добавьте сортировку и группировку на Закладках запроса,
например Группировка по Организациям, вам позволит увидитеть текущий штат.
Предложу еще один вариант, который кажется мне логичным; Так как в последнем запросе используется условие "Ссылка В (...)" это полностью аналогично "ВНУТРЕННЕЕ СОЕДИНЕНИЕ" поэтому:
Пишем первый запрос к РегистрСведений.АБС_КадроваяИсторияСотрудников.СрезПоследних(&Период, ) и накладываем на него все необходимые условия;
Пишем второй запрос ВЫБРАТЬ * ИЗ Справочник.ФизическиеЛица
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПервыйЗапрос ПО Ссылка = Ссылка
Пишем первый запрос к РегистрСведений.АБС_КадроваяИсторияСотрудников.СрезПоследних(&Период, ) и накладываем на него все необходимые условия;
Пишем второй запрос ВЫБРАТЬ * ИЗ Справочник.ФизическиеЛица
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПервыйЗапрос ПО Ссылка = Ссылка
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот