Динамический список, произвольный запрос

1. elabor 17.06.22 09:46 Сейчас в теме
Добрый день. Столкнулся с проблемой: Произвольный запрос (Динамический список) в форме выбора, при открытие формы пишет "Поле не найдено "DeletionMark"". Вот сам запрос


ВЫБРАТЬ
	ФизическиеЛица.Ссылка КАК Ссылка,
	МАКСИМУМ(АБС_КадроваяИсторияСотрудниковСрезПоследних.Период) КАК Период,
	ФизическиеЛица.ПометкаУдаления
ПОМЕСТИТЬ ВТ
ИЗ
	Справочник.ФизическиеЛица КАК ФизическиеЛица
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АБС_КадроваяИсторияСотрудников.СрезПоследних(&Период, ) КАК АБС_КадроваяИсторияСотрудниковСрезПоследних
		ПО ФизическиеЛица.Ссылка = АБС_КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо

СГРУППИРОВАТЬ ПО
	ФизическиеЛица.Ссылка,
	ФизическиеЛица.ПометкаУдаления
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТ.Ссылка КАК Ссылка,
	ВТ.ПометкаУдаления
ПОМЕСТИТЬ Отобранные
ИЗ
	ВТ КАК ВТ
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АБС_КадроваяИсторияСотрудников КАК АБС_КадроваяИсторияСотрудников
		ПО ВТ.Ссылка = АБС_КадроваяИсторияСотрудников.ФизическоеЛицо
			И ВТ.Период = АБС_КадроваяИсторияСотрудников.Период
ГДЕ
	НЕ АБС_КадроваяИсторияСотрудников.ВидСобытия ЕСТЬ NULL
	И АБС_КадроваяИсторияСотрудников.ВидСобытия <> ЗНАЧЕНИЕ(Перечисление.АБС_ВидыКадровыхСобытий.Увольнение)
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	СправочникФизическиеЛица.Ссылка КАК Ссылка,
	СправочникФизическиеЛица.ПометкаУдаления КАК ПометкаУдаления,
	СправочникФизическиеЛица.Родитель КАК Родитель,
	СправочникФизическиеЛица.ЭтоГруппа КАК ЭтоГруппа,
	СправочникФизическиеЛица.Код КАК Код,
	СправочникФизическиеЛица.Наименование КАК Наименование,
	СправочникФизическиеЛица.ДатаРождения,
	СправочникФизическиеЛица.Пол КАК Пол,
	СправочникФизическиеЛица.Картинка КАК Картинка,
	СправочникФизическиеЛица.emp_id КАК emp_id,
	СправочникФизическиеЛица.Активность КАК Активность,
	СправочникФизическиеЛица.Предопределенный КАК Предопределенный,
	СправочникФизическиеЛица.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных
ИЗ
	Справочник.ФизическиеЛица КАК СправочникФизическиеЛица
ГДЕ
	СправочникФизическиеЛица.Ссылка В
			(ВЫБРАТЬ
				Отобранные.Ссылка
			ИЗ
				Отобранные КАК Отобранные)
	И НЕ СправочникФизическиеЛица.ПометкаУдаления
Показать



Кто ни будь знает , в чем может быть проблема?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
7. spacecraft 17.06.22 10:39 Сейчас в теме
(1) зачем получаете ПометкаУдаления во временных таблицах, если далее не используете?

Выбирайте сразу не помеченный во временную таблицу, а в итоговой не нужно дополнительное условие на проверку помеченных на удаление.
ВЫБРАТЬ
ФизическиеЛица.Ссылка КАК Ссылка,
МАКСИМУМ(АБС_КадроваяИсторияСотрудниковСрезПоследних.Период) КАК Период
ПОМЕСТИТЬ ВТ
ИЗ
Справочник.ФизическиеЛица КАК ФизическиеЛица
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АБС_КадроваяИсторияСотрудников.СрезПоследних(&Период, ) КАК АБС_КадроваяИсторияСотрудниковСрезПоследних
ПО ФизическиеЛица.Ссылка = АБС_КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо
ГДЕ НЕ СправочникФизическиеЛица.ПометкаУдаления
СГРУППИРОВАТЬ ПО
ФизическиеЛица.Ссылка
Показать
Vitaly1C8; +1 Ответить
2. elabor 17.06.22 09:48 Сейчас в теме
Основная таблица - справочник
3. -AI- 17.06.22 10:18 Сейчас в теме
посмотри вкладку "настройки" (в окне где текст запроса)

видимо где-то там используется это поле.
4. elabor 17.06.22 10:19 Сейчас в теме
5. -AI- 17.06.22 10:33 Сейчас в теме
(4) в тексте запроса я не вижу "DeletionMark"
соответственно - ищите где оно у вас встречается вне запроса.
6. elabor 17.06.22 10:37 Сейчас в теме
(5) DeletionMark это ПометкаУдаления
ivan1703; +1 Ответить
8. elabor 17.06.22 11:09 Сейчас в теме
в 1 Запрос (ВТ) добавил ФизическиеЛица.ПометкаУдаления КАК ПометкаУдаления, и другие стандартные реквизиты, теперь пишет
"Поле не найдено Наименование"
9. -AI- 17.06.22 11:26 Сейчас в теме
(8)
в 1 Запрос (ВТ) добавил ФизическиеЛица.ПометкаУдаления КАК ПометкаУдаления, и другие стандартные реквизиты, теперь пишет
"Поле не найдено Наименование"

а где текст запроса, в котором ищем новую ошибку?
10. elabor 17.06.22 11:48 Сейчас в теме
(9)

ВЫБРАТЬ
ФизическиеЛица.Ссылка КАК Ссылка,
МАКСИМУМ(АБС_КадроваяИсторияСотрудниковСрезПоследних.Период) КАК Период,
ФизическиеЛица.ПометкаУдаления КАК ПометкаУдаления,
ФизическиеЛица.Родитель КАК Родитель,
ФизическиеЛица.ЭтоГруппа КАК ЭтоГруппа,
ФизическиеЛица.Наименование КАК Наименование,
ФизическиеЛица.Предопределенный КАК Предопределенный
ПОМЕСТИТЬ ВТ
ИЗ
Справочник.ФизическиеЛица КАК ФизическиеЛица
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АБС_КадроваяИсторияСотрудников.СрезПоследних(&Период, ) КАК АБС_КадроваяИсторияСотрудниковСрезПоследних
ПО ФизическиеЛица.Ссылка = АБС_КадроваяИсторияСотрудниковСрезПоследних.ФизическоеЛицо

СГРУППИРОВАТЬ ПО
ФизическиеЛица.Ссылка,
ФизическиеЛица.ПометкаУдаления,
ФизическиеЛица.Родитель,
ФизическиеЛица.ЭтоГруппа,
ФизическиеЛица.Наименование,
ФизическиеЛица.Предопределенный
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
ВТ.Ссылка КАК Ссылка,
ВТ.ПометкаУдаления,
ВТ.Наименование КАК Наименование
ПОМЕСТИТЬ Отобранные
ИЗ
ВТ КАК ВТ
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АБС_КадроваяИсторияСотрудников КАК АБС_КадроваяИсторияСотрудников
ПО ВТ.Ссылка = АБС_КадроваяИсторияСотрудников.ФизическоеЛицо
И ВТ.Период = АБС_КадроваяИсторияСотрудников.Период
ГДЕ
НЕ АБС_КадроваяИсторияСотрудников.ВидСобытия ЕСТЬ NULL
И АБС_КадроваяИсторияСотрудников.ВидСобытия <> ЗНАЧЕНИЕ(Перечисление.АБС_ВидыКадровыхСобытий.Увольнение)
И НЕ ВТ.ПометкаУдаления
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
СправочникФизическиеЛица.Ссылка КАК Ссылка,
СправочникФизическиеЛица.ПометкаУдаления КАК ПометкаУдаления,
СправочникФизическиеЛица.Родитель КАК Родитель,
СправочникФизическиеЛица.ЭтоГруппа КАК ЭтоГруппа,
СправочникФизическиеЛица.Код КАК Код,
СправочникФизическиеЛица.Наименование КАК Наименование,
СправочникФизическиеЛица.ДатаРождения,
СправочникФизическиеЛица.Пол КАК Пол,
СправочникФизическиеЛица.Картинка КАК Картинка,
СправочникФизическиеЛица.emp_id КАК emp_id,
СправочникФизическиеЛица.Активность КАК Активность,
СправочникФизическиеЛица.Предопределенный КАК Предопределенный,
СправочникФизическиеЛица.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных
ИЗ
Справочник.ФизическиеЛица КАК СправочникФизическиеЛица
ГДЕ
СправочникФизическиеЛица.Ссылка В
(ВЫБРАТЬ
Отобранные.Ссылка
ИЗ
Отобранные КАК Отобранные)
11. -AI- 17.06.22 11:53 Сейчас в теме
откройте для себя "консоль запросов"
12. soft_wind 17.06.22 12:01 Сейчас в теме
есть Г..код, а есть Г..запрос
зачем такой сложный? напишите проще в 10 строчек!
lefthander; RustamZz; +2 Ответить
14. elabor 17.06.22 12:12 Сейчас в теме
(12) к сожалению у регистра есть измерение организация и просто левое соединение к срезу не прокатит. Даст выборку по всем оргам
13. SlavaKron 17.06.22 12:09 Сейчас в теме
Такой вариант:
ВЫБРАТЬ
	АБС_КадроваяИсторияСотрудников.ФизическоеЛицо КАК ФизическоеЛицо,
	МАКСИМУМ(АБС_КадроваяИсторияСотрудников.Период) КАК Период
ПОМЕСТИТЬ ВТ
ИЗ
	РегистрСведений.АБС_КадроваяИсторияСотрудников КАК АБС_КадроваяИсторияСотрудников
ГДЕ
	АБС_КадроваяИсторияСотрудников.Период <= &Период
	И НЕ АБС_КадроваяИсторияСотрудников.ФизическоеЛицо.ПометкаУдаления

СГРУППИРОВАТЬ ПО
	АБС_КадроваяИсторияСотрудников.ФизическоеЛицо
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТ.ФизическоеЛицо КАК ФизическоеЛицо
ПОМЕСТИТЬ Отобранные
ИЗ
	ВТ КАК ВТ
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ АБС_РегистрСведений.КадроваяИсторияСотрудников КАК АБС_КадроваяИсторияСотрудников
		ПО ВТ.ФизическоеЛицо = АБС_КадроваяИсторияСотрудников.ФизическоеЛицо
			И ВТ.Период = АБС_КадроваяИсторияСотрудников.Период
ГДЕ
	АБС_КадроваяИсторияСотрудников.ВидСобытия <> ЗНАЧЕНИЕ(Перечисление.АБС_ВидыКадровыхСобытий.Увольнение)
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	СправочникФизическиеЛица.Ссылка КАК Ссылка,
	СправочникФизическиеЛица.ПометкаУдаления КАК ПометкаУдаления,
	СправочникФизическиеЛица.Родитель КАК Родитель,
	СправочникФизическиеЛица.Код КАК Код,
	СправочникФизическиеЛица.Наименование КАК Наименование,
	СправочникФизическиеЛица.ДатаРождения КАК ДатаРождения,
	СправочникФизическиеЛица.Пол КАК Пол
ИЗ
	Справочник.ФизическиеЛица КАК СправочникФизическиеЛица
ГДЕ
	СправочникФизическиеЛица.Ссылка В
			(ВЫБРАТЬ
				Отобранные.ФизическоеЛицо КАК ФизическоеЛицо
			ИЗ
				Отобранные КАК Отобранные)
Показать
15. elabor 17.06.22 12:25 Сейчас в теме
Не определяет Справочник как основную таблицу. На форме получаю пусто список
19. SlavaKron 17.06.22 14:15 Сейчас в теме
(15) Укажите справочник как основную таблицу вручную.
16. soft_wind 17.06.22 13:41 Сейчас в теме
наверняка регистр АБС_РегистрСведений - переодический
тогда весь запрос получается такой

Выбрать
    спр.*
из
    Справочник.ФизическиеЛица КАК Спр
левое соединение АБС_РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних() КАК Рег
        ПО Спр.Ссылка = Рег.ФизическоеЛицо
где
    Не спр.ПометкаУдаления
и  ЕстьNull(Рег.ВидСобытия, Неопределено) <> ЗНАЧЕНИЕ(Перечисление.АБС_ВидыКадровыхСобытий.Увольнение)
Показать


(а если Рег не периодический то на пару строчек больше)
17. elabor 17.06.22 14:00 Сейчас в теме
(16)"(12) к сожалению у регистра есть измерение организация и просто левое соединение к срезу не прокатит. Даст выборку по всем оргам"


например есть записи по 3 оргам, такой запрос выдаст крайние записи по каждой организации
18. soft_wind 17.06.22 14:08 Сейчас в теме
добавьте в запрос поле

Рег.Организация - очень полезная информация, будет видно в какой организации человек еще не волен

Выбрать
    спр.*,
    Рег.Организация,
    Рег.ВидСобытия //последнее событие, кроме увольнения
из
    Справочник.ФизическиеЛица КАК Спр
левое соединение АБС_РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних() КАК Рег
        ПО Спр.Ссылка = Рег.ФизическоеЛицо
где
    Не спр.ПометкаУдаления
и  ЕстьNull(Рег.ВидСобытия, Неопределено) <> ЗНАЧЕНИЕ(Перечисление.АБС_ВидыКадровыхСобытий.Увольнение)

Показать


и в произвольном запросе Дин.списка
очистите поле Основная таблица,

для более удобного просмотра добавьте сортировку и группировку на Закладках запроса,
например Группировка по Организациям, вам позволит увидитеть текущий штат.
20. Vitaly1C8 18.06.22 23:01 Сейчас в теме
Предложу еще один вариант, который кажется мне логичным; Так как в последнем запросе используется условие "Ссылка В (...)" это полностью аналогично "ВНУТРЕННЕЕ СОЕДИНЕНИЕ" поэтому:
Пишем первый запрос к РегистрСведений.АБС_КадроваяИсторияСотрудников.СрезПоследних(&Период, ) и накладываем на него все необходимые условия;
Пишем второй запрос ВЫБРАТЬ * ИЗ Справочник.ФизическиеЛица
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПервыйЗапрос ПО Ссылка = Ссылка
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот