Три приема отладки запросов в типовых конфигурациях

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

И вот Вы дорабатываете такой запрос – а он возвращает не тот результат, который ожидается.

Как найти причину? Нужно отладить запрос.

И нужно уметь это делать так, чтобы не терять на это кучу времени.

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

  • Разберем базовый подход, как в консоли запросов сформировать и отладить результирующий пакетный запрос, при помощи которого получаются данные.
  • Научимся прямо в отладчике просматривать содержимое временных таблиц и результата запроса, чтобы проанализировать отдельные этапы выполнения запроса.
  • Также рассмотрим удобный прием – отложенную отладку. С помощью одной команды в отладчике получим в консоли итоговый текст выполняющегося запроса, значения параметров, содержимое временных таблиц. Это упрощает отладку, поскольку не нужно вручную в консоли вводить все указанные данные.

При работе с типовыми конфигурациями – незаменимые навыки как для новичков, так и для профи : )

Длительность видео – 52 минуты.

Как в консоли сформировать результирующий пакет запросов для отладки

Ключевые моменты видео:

  • 00:00 – Введение
  • 01:45 – Демонстрация обработки Отладка запросов с временными таблицами
  • 05:14 – Приемы отладки запроса с временными таблицами при помощи консоли запросов
  • 08:48 – Плюсы и минусы подхода сборки текста запроса в консоли запросов
  • 10:15 – Итоги

Просмотр содержимого временных таблиц в отладчике

Ключевые моменты видео:

  • 00:00 – Как просмотреть содержимое временных таблиц в отладчике
  • 00:56 – Постановка задачи
  • 05:32 – Объект встроенного языка МенеджерВременныхТаблиц и метод ПолучитьДанные()
  • 10:40 – Пример отладки реального запроса в конфигурации 1С:ERP при помощи типовой экспортной функции ОбщегоНазначенияУТ.ПоказатьВременнуюТаблицу()
  • 16:00 – Реализация своей отладочной функции в расширении

Пример отладки запроса в 1C:ERP. Отложенная отладка

Ключевые моменты видео:

  • 00:00 – Недостатки показанных ранее методов отладки запросов
  • 01:00 – Знакомство с подсистемой Инструменты разработчика (ИР)
  • 02:25 – Обзор обработки Функции режима отладки
  • 04:00 – Применение обработки Функции режима отладки в конфигурации 1С:ERP
  • 18:38 – Итоги

На этом курсе Вы изучите все, что требуется знать каждому разработчику:

  • Полный синтаксис текста запросов – поля, операторы, функции, выражения, группировка и сортировка, итоги и т.д.
  • Работу с несколькими источниками / таблицами – соединения, объединения, вложенные запросы
  • Временные таблицы, пакетные запросы
  • Виртуальные таблицы – для регистров сведений, накоплений, расчетов и бухгалтерии
  • Методы и приемы написания и оптимизации запросов
  • А также много практических примеров и кейсов.
Программа, стоимость, условия и регистрация в группу: «Расширенный курс по разработке и оптимизации запросов в 1С»
  • 56 учебных часов
  • 42 практических задания
  • 4 месяца поддержки и ответов на вопросы
  • Пожизненный доступ к материалам курса

Комментарии / обсуждение (23):

  1. also11

    Здравствуйте!
    Занимался по старому курсу по запросам. Но там закрыты комментарии.
    Не могли бы вы ответить на вопрос:
    Как, используя запрос, поместить в одну строку все элементы ВТ (или элементов подчиненного справочника)?
    Пример. Для справочника “Контрагента” получить строку с о всей контактной информацией (адреса, телефоны и др.).
    Только запросом!
    Спасибо!

    • Василий Ханевич

      Добрый день!
      Рекомендую для такой задачи написать код, а не использовать запрос. Запросом можно сделать, в интернете встречаются такие публикации, но запрос получится сложным, “многоэтажным”, трудным для понимания и доработки.
      Можно как вариант использовать СКД, где в языке выражений есть функции Массив(), ТаблицаЗначений(), СоединитьСтроки() и т.д.

    • Анна Бортникова

      Здравствуйте, Андрей!
      Рады, что статья оказалась Вам полезна!
      Будет здорово, если Вы поделитесь ей с коллегами, возможно, кто-то из них тоже получит новую для себя информацию :)

  2. Павел

    Здравствуйте, пользуюсь ОбщегоНазначения.ЗапросВСтрокуXML(Запрос)? в отладке возвращает строку, которую потом можно использовать в ИТС’овской консоли использовав команду “Заполнить из XML”. Результат получается схожий. Но это касается именно запроса, для других объектов, возможно, отложенная отладка не имеет, так сказать, штатных аналогов.

      • Вадим

        Добрый день, в инструментах разработчика, при запуске обработки и передачи переменной запроса, сеанс толстого клиента зависает, и получается что запустить отладку невозможно, кеш чистили.. конфигурация 1с ERP

        • Василий Ханевич

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

  3. Esagila

    Здравствуйте! Спасибо! По вопросу, как пользуюсь отладкой: мучительно использую метод ПолучитьДанные(). Содержимое временных таблиц копирую в Excel, там раскрашиваю разными цветами. Словом, тяжело, сложно и долго. Еще на бумаге рисую схемы, перечисляю названия временных таблиц. Всякие значки рисую, чтобы что-то выделить как особо важное. После многочасового такого творчества бывает, что ошибка не одна. Было и такое, что обсуждая ее в столовой, окончательное решение находил другой человек. Итог: Excel, зарисовки и беседа с умным человеком

  4. Антон

    Добрый день. Подскажите пожалуйста по одному вопросу: по видео решил смоделировать аналогичную ситуацию по поиску ошибки в своей тестовой базу ЗУП 3.1. И при попытке вызвать в конфигураторе в отладке при нажатии Shift+9 функцию ВнешниеОбработки.Создать(“F:\Инструмент разработчика V6.61.1P\ирПортативный.epf”, Ложь).От(Запрос, , , , ПорогОбрезкиВременнойТаблицы?) система сообщила мне ВнешниеОбработки.Создать(“F:\Инструмент разработчика V6.61.1P\ирПортативный.epf”, Ложь).От(Запрос) {(1)}: Метод объекта не обнаружен (От). В чем может быть проблема? Спасибо

    • Василий Ханевич

      Добрый день!
      Однократно столкнулся с такой проблемой. Внезапно отладчик стал выдавать такую ошибку, хотя за 5 минут до этого всё работало корректно в этом же сеансе.
      Перезашел в конфигуратор, заново запустил пользовательский режим под отладкой, всё заработало. Может, еще перезапускал службу агента сервера 1С:Предприятия, вот это не помню точно.
      Если же ошибка стабильно воспроизводится, можно обратиться к автору разработки: Сообщить о проблеме

  5. shu_vol

    Спасибо, как всегда все очень доступно и понятно. Использую консоль запросов ИР при закрытии месяца в УТ. В консоли есть набор контрольных запросов для быстрого поиска и исправления всех проблемных моментов, мешающих расчету себестоимости. Отладкой ИР ни разу не пользовался, благодаря вашему видео начну, заодно спасибо автору ИР, по его ссылке из тг перешел к этой статье, почему-то пропустил ее, хотя стараюсь читать все ваши статьи и смотреть видео к ним.

    • Василий Ханевич

      Пожалуйста! Рад, что эти материалы оказались интересными и полезными!

  6. Сергей

    Добрый день, очень интересный материал, все видео прерываются на середине, можете поправить?

    • Кузьмин Сергей

      Здравствуйте, Сергей!
      Проверили — видео на странице воспроизводятся корректно.
      Попробуйте почистить кэш и cookie-файлы. Если это не решит проблему, стоит проверить настройки браузера, установленные в нем расширения и плагины либо воспользоваться другим браузером.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Вход на сайт

Зарегистрироваться

Подтверждение регистрации будет отправлено на указанный e-mail.

Я подтверждаю, что ознакомлен(а) с Пользовательским соглашением, принимаю его условия и даю свое согласие на обработку моих персональных данных.

Восстановить доступ

E-mail или логин

Ссылка на создание нового пароля будет отправлена на указанный e-mail.