Как посмотреть содержимое таблицы значений в 1С 8.3 во время отладки?

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

Переход с платформы 1С:Предприятие 8.2 на 8.3 принес множество изменений в архитектуру приложения. Одно из самых заметных для разработчика — это разделение контекста на клиентский и серверный в управляемом приложении. Если раньше в «Толстом клиенте» мы могли легко вызвать метод ВыбратьСтроку() прямо в коде, чтобы визуально проверить содержимое переменной ТаблицаЗначений, то в 1С 8.3 этот метод на сервере не поддерживается, так как он пытается вызвать диалоговое окно, что недопустимо в серверном коде.

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

Метод 1: Использование стандартного отладчика и окна «Вычислить выражение»

Самый быстрый и правильный способ посмотреть данные — это встроенные средства отладки. Давайте проанализируем последовательность действий, которую необходимо выполнить:

  1. Установим точку останова. Найдем в коде строку, следующую сразу за заполнением таблицы (например, после Запрос.Выполнить().Выгрузить()). Нажмем F9, чтобы установить маркер остановки.
  2. Запустим отладку. Выполним действие в программе, которое приведет к срабатыванию этого кода. Конфигуратор «мигнет» и остановит выполнение на нужной строке.
  3. Вызовем окно вычисления. Нажмем комбинацию клавиш Shift+F9 или воспользуемся меню «Отладка — Вычислить выражение».
  4. Введите имя переменной. В поле выражения напишем имя нашей таблицы (например, ТаблицаРезультата) и нажмем «Рассчитать».

На этом этапе многие новички сталкиваются с проблемой: в строке результата отображается просто тип ТаблицаЗначений, а самих данных не видно. Рассмотрим решение: необходимо нажать кнопку «Показать значения в отдельном окне» (выглядит как лупа или нажать F2). Откроется полноценное окно со всеми колонками и строками таблицы, где можно просмотреть содержимое всех ячеек.

Метод 2: Особенности работы на сервере

Часто бывает так, что при попытке отладки точка останова просто не срабатывает. Разберем причину этой ситуации. В 1С 8.3 код чаще всего выполняется на сервере. Чтобы отладчик «видел» серверный контекст, должны быть соблюдены два условия:

Если серверный режим включен, вы сможете просматривать ТаблицаЗначений так же легко, как и в обычном приложении. Помните, что ТаблицаЗначений — это объект, который живет только на сервере (за исключением толстого клиента). На клиенте в управляемых формах вместо нее используются ДанныеФормыКоллекция.

Метод 3: Программный вывод в табличный документ

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


ТабДок = Новый ТабличныйДокумент;
// Здесь мы могли бы написать цикл обхода колонок и строк
// Но для быстрой отладки можно воспользоваться выгрузкой
Построить = Новый ПостроительОтчета;
Построить.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТаблицаРезультата);
Построить.Вывести(ТабДок);
ТабДок.Показать("Проверка данных ТЗ");

Этот метод хорош тем, что в открывшемся окне ТабличныйДокумент вы можете использовать стандартный поиск (Ctrl+F), копировать данные в Excel или сохранять их для дальнейшего анализа. Обратите внимание: метод Показать() работает только на стороне клиента. Если ваш код выполняется на сервере, вам придется передать ТабДок на клиент или использовать отладчик.

Метод 4: Использование инструментов БСП

Если вы работаете в современной типовой конфигурации (УТ 11, БП 3.0, ERP), то в вашем распоряжении есть мощный инструмент — Библиотека стандартных подсистем (БСП). В ней часто присутствуют общие модули для разработчиков. Например, можно попробовать вычислить в окне отладки следующее выражение:

ОбщегоНазначения.СообщитьПользователю(ЗначениеВСтрокуВнутр(ТаблицаРезультата));

Хотя чтение внутреннего формата 1С — сомнительное удовольствие, иногда это помогает быстро увидеть структуру данных без открытия дополнительных окон. Также в БСП бывают процедуры типа ОбщегоНазначения.ВывестиТаблицуЗначенийВЖурналРегистрации() или специализированные обработки для просмотра коллекций.

Метод 5: Просмотр данных в фоновых заданиях

Проанализируем сложную ситуацию: ваша таблица заполняется внутри фонового задания. В этом случае обычная точка останова не сработает, даже если отладка на сервере включена. Чтобы «поймать» таблицу значений в фоновом задании, выполните следующие шаги:

  1. Откройте меню «Отладка» — «Подключения».
  2. Нажмите кнопку «Автоматическое подключение».
  3. Установите флажок «Фоновые задания».
  4. Теперь при запуске фонового процесса отладчик автоматически прикрепится к нему, и вы сможете использовать F2 для просмотра вашей таблицы.

Метод 6: Внешние консоли запросов и обработчики

Многие опытные программисты используют сторонние инструменты, такие как «Консоль запросов с возможностью отладки». Рассмотрим принцип их работы: вы вставляете в нужное место кода вызов внешней обработки, передаете туда свою ТаблицаЗначений, и обработка открывает удобное окно с фильтрами, сортировками и итогами по колонкам. Это значительно экономит время при анализе сложных выборок.

Подведем итог: несмотря на отсутствие старого доброго метода ВыбратьСтроку(), современная платформа предоставляет гораздо более мощные инструменты анализа. Основным инструментом остается точка останова + Shift+F9 + F2. Этого достаточно в 90% случаев для быстрой и эффективной разработки.

← На главную