Отладка в Infostart Toolkit

12.01.24

Разработка - Инструментарий разработчика

Отладка запросов, схем компоновки данных, просмотр содержимого менеджера временных таблиц.

Отладка запросов, схем компоновки данных

Под отладкой здесь имеется ввиду получение данных запросов, СКД из конфигуратора в момент отладки в продукте Infostart Toolkit (только управляемые формы).

В управляемых формах нельзя открыть форму в контексте сервера, но можно получить данные и сохранить - я называю это отложенной отладкой

Подход классический - ставим точку останова перед Запрос.Выполнить, где данные объекта уже заполнены (для СКД ПроцессорКомпоновки.Инициализировать).

 

Данные сохраняются с помощью встроенных экспортных функций:

Функция ИТК.Отл - Сохраняет данные в настройки

Параметры:
  • Объект  - Запрос, СхемаКомпоновкиДанных, ПостроительЗапроса, ПостроительОтчета, ДинамическийСписок, МакетКомпоновкиДанных - Объект
  • Имя  - Строка - Имя настройки
  • НастройкиКомпоновкиДанных - НастройкиКомпоновкиДанных - Настройки СКД (необязательный)
  • ВнешниеНаборыДанных - Структура - Внешние наборы данных (необязательный)
  • НастройкиКомпоновкиДанных и ВнешниеНаборыДанных используются только для СКД

Функция ИТК.ОтлВФайл - Сохраняет данные в файл

Параметры:
  • Объект  - Запрос, СхемаКомпоновкиДанных, ПостроительЗапроса, ПостроительОтчета, ДинамическийСписок, МакетКомпоновкиДанных - Объект
  • Путь  - Строка - Путь в который сохраняется файл (обязательный)
  • Имя  - Строка - Имя файл
  • НастройкиКомпоновкиДанных - НастройкиКомпоновкиДанных - Настройки СКД (необязательный)
  • ВнешниеНаборыДанных - Структура - Внешние наборы данных (необязательный)
  • НастройкиКомпоновкиДанных и ВнешниеНаборыДанных используются только для СКД

---------------------------------------------------------------------------------------------------------------------

Имя передавать не обязательно, тогда оно определяется автоматически в зависимости от выбранного объекта

В случае успеха возвращается строка "Сохранено успешно", при ошибке - текст ошибки

 
 Конструктор строки отладки

Далее открываем данные в консоли разработчика в последних используемых файлах, настройках

Считываются все данные: текст запроса, значения параметров, данные таблиц МВТ, внешние источники СКД

Оптимизирована работа с таблицами значений с большим количеством данных

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

Однако есть случаи, когда сохранение в настройки не работает:

  • Запись производится в транзакции которая отменена. Например, разбор ошибки при проведении документа - если документ не проводится транзакция отменяется и сохранение в настройки тоже. Для облегчения определения подобных ситуаций, если сохранение производится в активной транзакции, результатом функции является "Сохранено успешно (В ТРАНЗАКЦИИ)".
  • Временные таблицы содержат поля (выбираемые в запросе) типа: ОписаниеТипов, МоментВремени
  • Открыта консоль, в этом случае пункт в меню не появится сразу. Необходимо переоткрыть консоль. 

 

Получение данных отладки через буфер обмена

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

Для использования новых возможностей в режиме отладки нужно выполнить функцию БСП  ОбщегоНазначения.ЗапросВСтрокуXML(Запрос) и сохранить результат в буфер обмена.

Недостатки

  • Работает только в конфигурациях с БСП
  • Не поддерживается получение содержимого временных таблиц

 

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

Функция ИТК.МВТ(Объект, ВключатьПустые) - Собирает временные таблицы в структуру для удобства просмотра

Параметры:

 

  • Объект  - Запрос, МенеджерВременныхТаблиц
  • ВключатьПустые  - Булево (по умолчанию Истина)
  • В случае успеха возвращает структуру с содержимым таблиц, при ошибке - строка (например: "Недопустимый тип объекта, принимаются Запрос или МенеджерВременныхТаблиц")

Результат, обратите внимание, что количество строк в ТЗ добавляется в ключ структуры

 

Функции для клиентского режима

С версии 2.0 добавлены функции для отключения обработчиков ожидания

ОтключитьОбработчик(Форма, ИмяОбработчика)
ОтключитьГлобальныйОбработчик(ИмяОбработчика)

в случае успеха возвращается Истина
 

См.также:

Отладка запроса с содержимым временных таблиц (управляемые формы) 

Вступайте в нашу телеграмм-группу Инфостарт

Отладка Консоль Запрос Конфигуратор МВТ СКД Infostart Toolkit Инструменты Разработчик Программист

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

15500 руб.

02.09.2020    204969    1125    410    

1026

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    36432    209    105    

198

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

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

16000 руб.

10.11.2023    16696    73    39    

89

Пакетная печать Печатные формы Инструментарий разработчика Программист 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    24272    63    28    

92

Инструментарий разработчика Программист 1С v8.3 Платные (руб)

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

9360 руб.

17.05.2024    35063    126    53    

167

SALE! 30%

Инструментарий разработчика WEB-интеграция 1С v8.3 1C v8.2 1C:Бухгалтерия 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x Платные (руб)

Инструмент для генерации OpenApi (Swagger) спецификаций на основании файлов конфигураций 1С. Это консольное и десктопное приложение на языке Rust с полноценным редактором кода, содержащим автозамену и подсвечивание ошибок для быстрого и безошибочного написания документирующего комментария.

18000 12600 руб.

22.11.2024    1960    1    0    

8

Инструментарий разработчика Программист 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

6000 руб.

07.02.2018    107600    249    100    

313
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. zqzq 25 06.11.20 08:46 Сейчас в теме
Однако есть случаи, когда сохранение в настройки не работает - если запись производится в транзакции которая отменена
По идее, если через фоновое задание сохранять, можно обойти эту проблему.
Evg-Lylyk; +1 Ответить
2. Evg-Lylyk 5129 06.11.20 08:48 Сейчас в теме
(1) Хорошая идея, спасибо
3. PLAstic 296 06.11.20 14:50 Сейчас в теме
Ребят, увольте, пожалуйста, разработчика этого... э... продукта.
Или ему слишком лень, или он просто не знаком со стандартами разработки от 1С. Руки у него отсохнут дать нормальные названия переменным/процедурам/функциям?

ИТК
Отл
ОтлВФайл
МВТ

Доржи столько слов хороших говорил про ваши разработки и разработчиков и тут так облажаться... Это же не колхоз "Красный лапоть", это ж инфостарт...

https://its.1c.ru/db/v8std#content:647:hdoc
vl_vedernikov; almierm; uribur; zaic; Kaval88; qwinter; +6 12 Ответить
9. triviumfan 102 07.11.20 00:46 Сейчас в теме
(3) Что-то есть в твоих словах, отчасти соглашусь, что имена процедур "так себе".
Но мог бы поуважительней. Взрослые же люди.
almierm; vladimir.salihvanov; ValentinGushchin; Evg-Lylyk; +4 Ответить
11. SeiOkami 3592 08.11.20 18:19 Сейчас в теме
(3) глупости какие
этот продукт имеет назначение быстро и удобно юзать в отладке
короткие названия просто необходимы для этого

или вы будете в отладке вбивать что-то вроде:
МенеджерОтладкиИмениБориса.СтруктураИзМенеджераВременныхТаблицЗапроса()
odinsmot; Созинов; Good_Smile; jobkostya1c_ERP; tormozit; Светлый ум; nekit_rdx; curdate; Evg-Lylyk; vardeg; +10 Ответить
12. sashocq 194 09.11.20 11:16 Сейчас в теме
(3) Вы ни разу не сталкивались с ограничением кол-ва символов на переменную в отладчике? Я сталкивался.

P. S. А 30-символьные имена модулей от 1С - это вообще издевательство над читателями кода.
jobkostya1c_ERP; +1 Ответить
13. PLAstic 296 09.11.20 11:20 Сейчас в теме
(12) Вы можете считать это издевательством, но это стандарт от 1С, которого придерживаются почти все. Подумайте, если в команде разработчиков предприятия есть человек, который пишет по своим уникальным стандартам, что лучше сделать руководству команды? Правильно, уволить и найти того, кто придерживается стандартов.
Вы либо ещё слишком молоды в работе с 1С, либо не работали в командах. Если первое, рекомендую пытаться работать по стандартам 1С.
14. It-developer 26 09.11.20 16:47 Сейчас в теме
(13) Представьте модуль 30-символов, затем имя функции 30 символов и еще 3-5 параметров с огромными именами. Теперь нам ЭТО надо где-то вызвать. Получаем огромный многострочный вызов одной(!) функции. Стандарты это хорошо, но в 1с они неправильные - их надо пересмотреть. Есть такая книжка Clean Code - эти стандарты лучше, чем стандарты 1с
Altez50; nekit_rdx; 7OH; sashocq; artbear; +5 Ответить
16. teller 23.11.20 07:05 Сейчас в теме
(13)
уволить и найти того, кто придерживается стандартов.
Вы либо ещё слишком молоды в работе с 1С,

а вы сталкивались с unix , там cp,rm,ln ...
а C видели - *ptr++
может наоборот - автор постарше вас:)))
15. artbear 1571 09.11.20 16:58 Сейчас в теме
(3) Коллега, Давайте к конструктиву перейдем.

Критиковать очень легко без предложений на исправление (

Лучше предложите подходящие наименования вместо упомянутых и совместно обсудим

ИТК
Отл
ОтлВФайл
МВТ
tolyan_ekb; +1 Ответить
4. Evg-Lylyk 5129 06.11.20 14:57 Сейчас в теме
(3) Это сделано для удобства набора и запоминания это же нужно будет набирать в отладке
ИТК - Это префикс всего расширения.
Вам удобнее будет набирать ИТК_ОтладкаЗапросов.Отладить() !?
jobkostya1c_ERP; artbear; ubnkfl; Andrefan; +4 Ответить
5. PLAstic 296 06.11.20 15:15 Сейчас в теме
(4) Да, конечно, мне удобнее писать на русском легко читаемом языке, чем догадываться спустя неделю, что означает "Отл". Отлов, отличие, отливайс... Загляните всё же в стандарт от 1С. Они там не стесняются давать наименования длиннее 7 символов.
8. ubnkfl 06.11.20 16:57 Сейчас в теме
(4) я считаю, что коллега выступает не по теме. Подобной отладкой пользуюсь много лет в ИР, поэтому понятно, зачем имена процедур сделаны такие короткие - в табло нет никакого автоввода.
tormozit; JohnyDeath; zqzq; Evg-Lylyk; cleaner_it; +5 Ответить
6. Evg-Lylyk 5129 06.11.20 15:17 Сейчас в теме
(5) Стандарты соблюдаем еще раз почитаем. Ваша точка зрения понятна, постараемся учесть.
7. Andrefan 06.11.20 16:24 Сейчас в теме
(3) Именование переменных и написание кода по стандартам от вендора никто конечно не отменял, но из-за этих правил в типовых много конструкций, которые приходится помещать в один экран (опять же по стандартам) с помощью множественного переноса строк, что очень портит читаемость. Код должен быть не только "по правилам" но и компактен по горизонтали для удобного восприятия.
Пользователь этих инструментов применяет их чтобы разбирать какие-то проблемы, тестировать и отлаживать, поэтому сокращение "Отл" в первую очередь ассоциируется именно с отладкой кода а не с отловом, отливом и прочим.
Евгений, Ваш код, префиксация и прочие правила именования очень хороши и удобны, не стоит ничего менять.
odinsmot; nekit_rdx; curdate; unichkin; sashocq; artbear; It-developer; Areal; Evg-Lylyk; ubnkfl; +10 Ответить
10. Yashazz 4863 07.11.20 19:52 Сейчас в теме
Евгений, не слушайте их. Стандарты эти, во-первых, не особо практичны (а в данном случае просто вредны); во-вторых, 1С их сама нифига не соблюдает (только когда вдруг вспоминают резко об этом, и то криво), а в третьих, они меняются.
В конкретно случае вашего инструмента - всё сделано правильно, и плевать на любые стандарты. Польза и отдача важнее.

Хотя, имхо, костыльный такой инструмент выходит. Есть в нём, вот правда, нечто "колхозное". Запоминать, потом выводить... Именем инфостарта хотелось бы называть более красивый и продвинутый инструмент. А это довольно банальное такое решение, уж простите.
Altez50; Светлый ум; Kostt; artbear; It-developer; +5 Ответить
17. rozer 313 17.03.23 17:27 Сейчас в теме
не могу отладить - в ИР нет проблем
пишет ошибку
пробовал и через "настройки" и "буфер" (тут вообще теряет ВТ)
Прикрепленные файлы:
акт.mcr
18. Evg-Lylyk 5129 17.03.23 18:17 Сейчас в теме
(17) Ок, нужно время разобраться
19. maxis33 45 18.08.23 15:53 Сейчас в теме
Кстати про "ИТК".
После установки Infostart Toolkit перестал работать один из древних отчетов, еще портированных с 7.7. Оказалось, что в отчете использовалась переменная "итк", и добавление в системе общего модуля с таким же названием сделало отчет неработоспособным.
Переменную пришлось переименовать, но случай интересный..
Evg-Lylyk; +1 Ответить
20. Evg-Lylyk 5129 21.08.23 09:08 Сейчас в теме
(19) Да... Вот почему лучше не использовать короткие имена
21. user1274184 18.07.24 13:14 Сейчас в теме
Воспользовался вашим гайдом, огромное спасибо! Получил запрос, в нем 15 таблиц. При выполнении все временные таблицы в Результате получают названия Запрос N1 ... Запрос N15. Можно как-нибудь настроить, чтобы таблицы в Результате получали наименования как временные таблицы в запросе?
22. seperblunt 21 25.03.25 16:12 Сейчас в теме
не очень удобно, что нельзя открыть отладку запроса, перехваченного под другим юзером, например, при отладке HTTP сервиса
Оставьте свое сообщение