Отладка с использованием расширений

11.06.19

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

Использование механизма расширений для расширения (как бы это коряво не звучало =) ) возможностей отладки. Тестировалось на релизе: 8.3.14.1694 (но взлетит и на более ранних, поддержку общих модулей в расширения добавили практически в первых версиях механизма расширения).

Скачать исходный код

Наименование Файл Версия Размер
Пример расширения:
.cfe 6,27Kb
0
.cfe 0.0.0.1 6,27Kb Скачать

Не так давно столкнулся с задачей, для решения которой стандартного функционала отладки оказалось недостаточно.

Некорректно формировалась печатная форма отчета, и нужно было понять, на каком этапе происходит "порча" макета. 

Макет отчета хранился в ХЗ (Хранилище значений), среди множества других. Вызов в отладчике Макет.Записать("C:/temp/1.mxl") ожидаемо сообщил, что я обращаюсь к процедуре как к функции, и ничего у меня не получится. Можно было бы написать обработку, которая получала бы макет так же, как это делает оригинальная процедура отчета, но для этого пришлось бы перелопатить эту процедуру, выделяя нужный код, а кроме того, результат был бы "на один раз", т.е. для следующей аналогичной задачи пришлось бы все делать с начала. Можно было бы снять конфигурацию с поддержки, внести в код изменения, которые выполняли бы требуемые действия. Но зачем? Есть куда более удобный и гораздо менее затратный по времени прием.

  1. Создаем новое расширение. Настройки значения не имеют, но я по привычке снимаю флаги "Безопасный режим" и "Защита от опасных действий". 
  2. В расширении добавляем новый Общий модуль, в котором создаем экспортную функцию, которая в качестве параметров принимает Таблицу, которую требуется сохранить, и путь, по которому это нужно сделать: 
    Функция СохранитьТабличныйДокументВФайл(ТабличныйДокумент, ИмяФайла) Экспорт
    	
    	ТабличныйДокумент.Записать(ИмяФайла);
    	Возврат 0;
    	
    КонецФункции
    

     

  3. После сохранения конфигурации и перезапуска отладки ловим момент, когда алгоритм получил нужный нам макет, после чего в Табло пишем вызов нашей функции: НашОбщийМодуль.СохранитьТабличныйДокументВФайл(Макет, "C:/temp/1.mxl"). 
  4. В нужной папке получаем сохраненный макет, который можно открыть и проверить, что же в действительности хранится в нашем ХЗ.

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

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

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

Пример в приложении, но качать смысла особого не вижу, все подробно расписано. В перспективе маячит создание некоего "Инструментария", который позволял бы существенно расширить возможности как отладки, так и разработки в целом, но таких продуктов уже целый зоопарк, поэтому не известно, дойдут ли до этого руки. В любом случае, если это вдруг произойдет, то на ИС появится отдельная статья =)

С Уважением ;)

отладка расширения

См. также

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

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

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    125990    683    389    

735

Infostart PrintWizard - создание и редактирование печатных форм в 1С 8.3

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

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 руб.

06.10.2023    8167    24    6    

43

Infostart УДиФ: Управление данными и формами 1С

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

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

10000 руб.

10.11.2023    4555    12    2    

38

SALE! %

PowerTools

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

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2280 руб.

14.01.2013    178780    1084    0    

862

Бустер Конвертации данных 3 (Infostart Toolkit)

Инструментарий разработчика 8.3.14 1С:Конвертация данных Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

15000 руб.

07.10.2021    15050    3    12    

37

Многопоточность. Универсальный «Менеджер потоков» 2.1

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

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

5000 руб.

07.02.2018    99723    239    97    

298

1С HTML Шаблоны / HTML Templates

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

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28381    4    10    

16

[ЕХТ] Фреймворк для Расширений 1С

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

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18467    6    8    

40
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. AlX0id 11.06.19 14:58 Сейчас в теме
ЗначениеВСтрокуВнутр(ХЗ) - и строку копипастишь в инструменты разработчика, а дальше уже препарируешь как хошь..
Ксакеп; +1 Ответить
2. Ксакеп 63 14.06.19 12:21 Сейчас в теме
(1) Век живи - век учись =) Спасибо за науку.
Оставьте свое сообщение