Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Прошу предоставить возможность в функции ВЫРАЗИТЬ() языка запросов указывать набор типов #297

Open
tormozit opened this issue Sep 15, 2024 · 0 comments

Comments

@tormozit
Copy link
Collaborator

tormozit commented Sep 15, 2024

https://partners.v8.1c.ru/forum/t/2202842/m/2202842
Сейчас бороться с неявными избыточным соединениями таблиц в языке запросов мы можем через функцию ВЫРАЗИТЬ(). Но она позволяет указать только один и при этом только литеральный (не параметризуемый) тип.
Пример

ВЫБРАТЬ КОЛИЧЕСТВО(*)
ИЗ РегистрСведений.ВерсииОбъектов как Т
ГДЕ ВЫРАЗИТЬ(Т.Объект КАК Справочник.Валюты).ПометкаУдаления = ИСТИНА

Но нередко встречаются задачи, где требуется оставить небольшой набор неявных соединений. В таких случаях приходится писать размашистые и во многом дублирующиеся конструкции
Пример

ВЫБРАТЬ	КОЛИЧЕСТВО(*)
ИЗ РегистрСведений.ВерсииОбъектов КАК Т
ГДЕ (ВЫБОР
		КОГДА Т.Объект ССЫЛКА Справочник.Валюты
			ТОГДА ВЫРАЗИТЬ(Т.Объект КАК Справочник.Валюты)
		КОГДА Т.Объект ССЫЛКА Справочник.Номенклатура
			ТОГДА ВЫРАЗИТЬ(Т.Объект КАК Справочник.Номенклатура)
		КОГДА Т.Объект ССЫЛКА Справочник.Банки
			ТОГДА ВЫРАЗИТЬ(Т.Объект КАК Справочник.Банки)
	КОНЕЦ).ПометкаУдаления = ИСТИНА

Предлагаю дать возможность указывать в функции ВЫРАЗИТЬ в качестве второго параметра

  • набор типов в виде параметра, например ВЫРАЗИТЬ(Т.Объект КАК &НаборТипов)
  • явный набор типов в скобках, например
ВЫБРАТЬ КОЛИЧЕСТВО(*)
ИЗ РегистрСведений.ВерсииОбъектов как Т
ГДЕ ВЫРАЗИТЬ(Т.Объект КАК (Справочник.Валюты, Справочник.Номенклатура, Справочник.Банки)).ПометкаУдаления = ИСТИНА

Несложно заметить, что такая запись значительно короче и потому удобнее.

@tormozit tormozit changed the title Предоставить возможно в функции ВЫРАЗИТЬ() языка запросов указывать набор типов Прошу предоставить возможность в функции ВЫРАЗИТЬ() языка запросов указывать набор типов Sep 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant