1C Query Optimization Skill (Advanced Patterns)

SkillDev tools

Advanced query patterns for 1C: temporary tables, joins, DCS optimization. Use for complex queries beyond basic rules in query-optimization-tips.md.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the 1C Query Optimization Skill (Advanced Patterns) skill

What this skill tells your AI

The instructions your AI receives, as published by desko77/cursor-1c-skills in skills/1c-query-optimization/SKILL.md and read by ahel’s review.

Продвинутые паттерны оптимизации запросов. Базовые оптимизации (ВЫРАЗИТЬ, ПРЕДСТАВЛЕНИЕ, ВТ вместо подзапросов, ОБЪЕДИНИТЬ ВСЕ, индексы, СКД) - см. правило query-optimization-tips.md. Анти-паттерны (запрос в цикле, обращение через точку) - см. anti_patterns.md.

Validate Query via AI-EDT

Если сервер AI-EDT подключен (инструменты ai-edt доступны), проверяй оптимизированный запрос через validate_query - убедись, что после рефакторинга нет синтаксических/семантических ошибок. Для запросов СКД: dcsMode=true.

When to Use

Invoke this skill when:

  • Working with complex multi-step data processing
  • Optimizing joins and subqueries
  • Implementing DCS reports
  • Processing large datasets in portions

Temporary Tables - When to Use

Use temporary tables for:

  • Complex multi-step data processing
  • Joining data from multiple sources
  • Reusing intermediate results

Join vs Subquery (basic choice)

// PREFERRED: Join (usually faster)
"ВЫБРАТЬ
|	Заказы.Ссылка КАК Заказ,
|	Контрагенты.ИНН КАК ИНН
|ИЗ
|	Документ.ЗаказКлиента КАК Заказы
|		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
|		ПО Заказы.Контрагент = Контрагенты.Ссылка"

// AVOID: Subquery in SELECT (N+1 problem)
"ВЫБРАТЬ
|	Заказы.Ссылка КАК Заказ,
|	(ВЫБРАТЬ К.ИНН ИЗ Справочник.Контрагенты КАК К
|	 ГДЕ К.Ссылка = Заказы.Контрагент) КАК ИНН
|ИЗ
|	Документ.ЗаказКлиента КАК Заказы"

Avoid Aggregation in Subqueries

// SLOW: Subquery with aggregation
"ВЫБРАТЬ
|	Номенклатура.Ссылка,
|	(ВЫБРАТЬ СУММА(Остатки.Количество) ...) КАК Остаток
|ИЗ
|	Справочник.Номенклатура КАК Номенклатура"

// FAST: Join with pre-aggregated data
"ВЫБРАТЬ
|	Номенклатура.Ссылка КАК Номенклатура,
|	ЕСТЬNULL(Остатки.КоличествоОстаток, 0) КАК Остаток
|ИЗ
|	Справочник.Номенклатура КАК Номенклатура
|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК Остатки
|		ПО Номенклатура.Ссылка = Остатки.Номенклатура"

Reference: ITS Query Optimization Standards

Signals

GitHub stars
57
Forks
13
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
x-1c-query-optimization-desko77
Source
github.com/desko77/cursor-1c-skills