Как сохранять комментарии к временным таблицам в консоли запросов 1С?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Почему конструктор запросов удаляет комментарии?

Важно понимать, что КонструкторЗапроса не является текстовым редактором в привычном понимании. Это инструмент визуального проектирования, который парсит текст запроса, преобразует его в структуру метаданных, а затем генерирует текст заново. В этом процессе комментарии, которые не являются частью синтаксиса языка запросов 1С, просто игнорируются. Попытка программного внедрения комментариев «на лету» приводит к конфликтам при следующем открытии конструктора, так как инструмент не ожидает наличия посторонних блоков в тексте.

Метод №1: Использование кнопки «Отмена» для сохранения комментариев

Этот способ подходит для тех, кто привык использовать визуальный конструктор для проверки правильности связей или добавления новых полей, но хочет оставить свои пояснения в коде. Суть метода заключается в следующем:

  1. Откройте нужный запрос в КонсолиЗапросов.
  2. Вставьте все необходимые комментарии непосредственно в текст запроса, используя стандартный синтаксис // или /* ... */.
  3. Для внесения правок откройте КонструкторЗапроса.
  4. Выполните необходимые изменения в визуальном режиме.
  5. Воспользуйтесь функцией просмотра результирующего запроса (копирование текста) внутри конструктора, если это необходимо.
  6. Главный шаг: При выходе из окна конструктора всегда нажимайте кнопку «Отмена».

Таким образом, ваши изменения в структуре запроса, которые вы успели просмотреть или скопировать, не применятся автоматически к текущему тексту в консоли, а значит, и ваши комментарии останутся на своих местах. Этот подход требует дисциплины, но позволяет не потерять важную документацию к коду.

Метод №2: Переход на написание запросов «руками»

Многие опытные разработчики 1С приходят к тому, что использование конструктора для сложных многоэтапных запросов становится неэффективным. Рассмотрим преимущества написания кода вручную:

Разберем, как выглядит грамотно оформленный запрос с комментариями к временным таблицам:


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

// Выборка итоговых данных по сумме долга
ВЫБРАТЬ
    ВТ_ОплаченныеЗаказы.Заказ,
    СУММА(ВТ_ОплаченныеЗаказы.СуммаДолга) КАК ИтогоДолг
ИЗ
    ВТ_ОплаченныеЗаказы КАК ВТ_ОплаченныеЗаказы
СГРУППИРОВАТЬ ПО
    ВТ_ОплаченныеЗаказы.Заказ;

Метод №3: Разделение логики в коде модуля

Если запрос становится «монструозным» и занимает сотни строк, рассмотрите возможность его декомпозиции. Вместо того чтобы хранить один огромный текст в консоли, разбейте его на несколько этапов, каждый из которых выполняется отдельной функцией в модуле 1С.

В этом случае документирование переносится непосредственно в комментарии к коду модуля 1С, которые не подвержены воздействию конструктора запросов:


// Функция выполняет получение данных для формирования отчета
Функция ПолучитьДанныеДляОтчета()
    // Этап 1: Очистка временных таблиц
    // Этап 2: Заполнение ВТ_ОплаченныеЗаказы
    // Этап 3: Финальная выборка
КонецФункции

Заключение

Решение проблемы документации временных таблиц лежит в плоскости выбора методологии разработки. Если вы предпочитаете визуальные инструменты, используйте метод с «Отменой» правок. Однако, если сложность запросов растет, самым надежным способом будет написание кода вручную и его структурирование через понятные псевдонимы таблиц или разбиение на логические блоки в коде конфигурации.

← На главную