Отладка обработчиков в КД 2.0.24

Опубликовал Геннадий Пиганов (Totoro) в раздел Программирование - Практика программирования

Замена стандартной обработки "Универсальный обмен данными XML" из КД. Позволяет динамически создавать внешнюю обработку с кодом обработчиков для их отладки, проводить грубый синтаксический контроль текста обработчика при загрузке правил обмена.

Версия обработки КД 2.0.24, платформа 8.1.11.

Замена стандартной обработки "Выгрузка конвертации" из КД. Добавлено автосборка обработок 7.7 с помощью GCOMP.

Версия обработки КД 2.1.2.1, платформа 8.1 (доработка artbear)

Замена стандартной обработки Универсальный обмен данными XML из КД. Позволяет динамически создавать внешнюю обработку с кодом обработчиков для их отладки, проводить грубый синтаксический контроль текста обработчика при загрузке правил обмена.
Можно установить флаг открытия создаваемой внешней обработки в конфигураторе при начале обмена с ожиданием продолжения (удобно, чтобы установить точки для отладки, конфигуратор должен быть открыт!!!).

Добавлена облегченная версия для работы только совместно с системой "Инструменты разработчика" 1.58 и старше.

Версия обработки КД 2.0.24, платформа 8.1.11.

Варианты использования:
1) Отладка большого куска кода обработчика пошагово
2) Поиск ошибки (ставим точку останова "Останавливать при ошибке", затем анализируем).
3) Синтаксические ошибки в правилах при загрузке (например, после выгрузки данных допустили синтаксическую ошибку в обработчике загрузки, а повторно уже выгрузить нельзя)

Замена стандартной обработки Выгрузка конвертации из КД. Добавлено автосборка обработок 7.7 с помощью GCOMP.

Версия обработки КД 2.1.2.1, платформа 8.1 доработка artbear, благодарности - комментарий (32)

 

Скачать файлы

Наименование Файл Версия Размер
ВыгрузкаКонвертации 2.0.22.1
.1212813491 234,30Kb
25.09.09
230
.1212813491 234,30Kb 230 Бесплатно
УниверсальныйОбменДаннымиXML 2.0.24.3
.1211873276 342,05Kb
25.09.09
190
.1211873276 342,05Kb 190 Бесплатно
УниверсальныйОбменДаннымиXML 2.0.24.3 (для ИР 1.58+)
.1215637051 188,51Kb
25.09.09
122
.1215637051 188,51Kb 122 Бесплатно

См. также

Добавить вознаграждение
Комментарии
1. Геннадий Пиганов (Totoro) 492 14.07.07 00:52 Сейчас в теме
Исправил ошибки для ПКС субконто (файл обработки обмена). Заодно добавил информационное сообщение, если ПКО субконто не найдено.
2. Геннадий Пиганов (Totoro) 492 18.07.07 17:11 Сейчас в теме
Если кто пользовался - прокомментируйте неудобства :)
3. Геннадий Пиганов (Totoro) 492 24.07.07 08:43 Сейчас в теме
Пока архив недоступен. Переделываю обработку под возможность изменения кода обработчиков во время выполнения при ошибке. Когда все оттестирую - выложу.
4. Геннадий Пиганов (Totoro) 492 25.07.07 09:04 Сейчас в теме
В данный момент я сделал так, если происходит ошибка открывается окно для редактирования текста обработчика, с закладкой с типами, значениями параметров обработчика, установленными на момент ошибки (выводится только верхний уровень без раскрытия по полям). Потом при принятии изменений производится повторная попытка его выполнения. Проблема в том, что если в обработчике были изменены исходные параметры (код типа "Значение = Значение.Код"), то повторное выполнение может быть невозможным. В принципе я делал сохранение параметров перед вызовом обработчика и восстановление их при ошибке, но я не уверен что для всех типов это прокатит, да и для больших ТЗ (напр. в ВходящиеДанные) это не очень удобно.

Вопрос: есть какие-либо идеи по этому поводу или достаточно этого для случаев синтаксических ошибок и простых обработчиков, не изменяющих параметры?
5. Сергей Старых (tormozit) 4106 30.07.07 15:32 Сейчас в теме
Картинки были бы полезны
6. Геннадий Пиганов (Totoro) 492 30.07.07 16:30 Сейчас в теме
Завтра утром выложу, заодно исправлю свою ошибку в макете при загрузке алгоритмов из 7.7 в 8.1
7. Геннадий Пиганов (Totoro) 492 31.07.07 11:39 Сейчас в теме
1) 8.1: Добавлена возможность вычисления любых выражений на встроенном языке при отстановке при ошибке на закладке "Параметры"
2) 7.7: Исправил свою ошибку в алгоритме выгрузки алгоритмов, используемых при загрузке.
3) 7.7: Для ПВД для произвольного алгоритма в качестве ВыборкаДанных можно указывать запрос (как в функции СоздатьЗапрос).
8. Геннадий Пиганов (Totoro) 492 14.08.07 10:37 Сейчас в теме
Версия для КД 2.0.19
1) 8.1: Для редактирования при ошибке переделан алгоритм и немного изменена сама форма (структуры, соответствия, "ПКО", "ПКС", "ПКГС" разворачиваются по полям)
9. Доржи Цыденов (support) 4385 14.08.07 12:40 Сейчас в теме
10. Геннадий Пиганов (Totoro) 492 17.08.07 09:02 Сейчас в теме
1) При редактировании при ошибке разворачиваются по полям параметры с именем "Правило".
Если для значения параметра возможно выполнение метода Метаданные(), то он разворачивается по полям "Измерения", "Реквизиты", "Ресурсы", "Таб.части" (для таб.части указывается количество строк, саму ТЧ можно просмотреть, например, добавит параметр вида: НашОбъект.НашаТабЧасть.Выгрузить().ВыбратьСтроку() )
2) Добавлена возможность остановки при ошибке при записи и удалении объекта (например все обработчики отработали нормально, а тут такой облом - при записи "код не уникален" :) )
3) Исправленны выявленные ошибки, которые пропустил в п.3 от 31.07.07 :(

Ну, вот, вроде сделал все что хотел :)
11. Геннадий Пиганов (Totoro) 492 03.09.07 13:05 Сейчас в теме
Кстати, код остановки при ошибке можно использовать и в своих обработках, если использование отладчика затратно по времени,а в случае ошибки необходимо просмотреть результат. Он позволяет просматривать любые выражения и переменные определенные в обрабатываемом коде на момент ошибки (вызова модальной формы).

ЗЫ Неужели никаких отзывов нет ? :)
12. Геннадий Пиганов (Totoro) 492 21.09.07 15:25 Сейчас в теме
Недавно пришла мысль делать синтаксический контроль текста обработчиков 8.Х уже на этапе формирования правил, чтобы уменьшить потеря времени во время загрузки/выгрузке (для этого достаточно знать параметры обработчика). Надо бы реализовать такое для 2.0.20 :)
13. Геннадий Пиганов (Totoro) 492 01.11.07 17:45 Сейчас в теме
Версия для КД 2.0.20.1, ядро 8.1.8.76+
1) 7.7: Добавлена возможность автосборки обработок при генерации правил с помощью GCOMP
2) 8.1: немного подправил алгоритмы остановок при ошибке.
14. Сергей Старых (tormozit) 4106 18.11.07 15:20 Сейчас в теме
(12) Хорошая идея. Реально сделать с небольшими оговорками.
15. Геннадий Пиганов (Totoro) 492 27.05.08 09:35 Сейчас в теме
На соновании разработок: http://infostart.ru/projects/1843/ и http://infostart.ru/projects/1274/ пришла идея переделать свою обработку для отладки. Получилось два варианта:
1) При формировании правил в КД создается измененный модуль УниверсальныйОбменXML и сохраняется как внешняя обработка, в который добавляются обработчики выгрузки или загрузки. При открытии в 1С обработки УниверсальныйОбменXML при выгрузке/загрузке происходит передача выполнения в сохранную внешнюю обработку, где уже можно ставить точки останова и отлаживать код пошагово.
2) Формирование внешней обработки и передача выполнения в неё происходит после загрузки правил обмена в 1С.

У обоих вариантов есть как плюсы, так и минусы. Пока я сделал второй вариант (выложу позднее), но с точки зрения удобства и скорости начинаю склоняться к первому. Возможно у кого-нибудь есть другие мнения. Буду благодарен за помощь :)
16. Геннадий Пиганов (Totoro) 492 27.05.08 11:35 Сейчас в теме
Выложил пробную версию измененной типовой обработки УниверсальныйОбменДаннымиXML 2.0.23, в которой реализован второй вариант отладки. Принцип работы:
1) На закладке "Отладка" устанавливается галочка "Отладка во внешней обработке"
2) Указывается каталог для хранения обработки
3) Выгрузка:
- После загрузки правил обмена происходит создание внешней обработки с кодом обработчиков
- Вызывается ПослеЗагрузкиПравилОбмена из неё
- Дальше можно редактировать отборы/параметры
- После начала выгрузки выполнение передается во внешнюю обработку
4) Загрузка
- После начала загрузки файла первый раз грузится только заголовок (правила обмена и т.п.) и на его основе создается внешняя обработка с кодом обработчиков
- Передается выполнение во внешнюю обработку, где файл грузится во второй раз и правила обмена уже пропускаются

ПРИМЕЧАНИЕ: Это пока пробная версия. Я проверял только большинство обработчиков. Работу с планами обмена еще не проверял.

Вообщем хотелось бы узнать мнение о самой идее :)
17. Геннадий Пиганов (Totoro) 492 02.06.08 13:42 Сейчас в теме
2.0.23.2:

1) Протестировал обработчики
2) Добавил возможность грубой синтаксической проверки текста обработчиков при загрузке правил обмена.
Если код обработчика при загрузке правил обмена (при загрузке или выгрузке) не прошел контроль, то его можно отредактировать и попробывать повторить проверку. Замечание: параметры обработчиков беруться из макета кдОбработчикиСобытий8 и могут быть дополнены другими локальными переменными.
3) Добавил возможность отдельного выбора синтаксической проверки алгоритмов или формирования их кода во внешней обработке. Замечание: параметры алгоритма (локальные переменные модуля, используемые в алгоритме) должны быть указаны в последней строке алгоритма в виде "//АЛГОРИТМ(Парам1,Парам2, Парам3)"
18. Геннадий Пиганов (Totoro) 492 07.06.08 09:13 Сейчас в теме
Добавил:

Замена стандартной обработки Выгрузка конвертации из КД. Добавлено автосборка обработок 7.7 с помощью GCOMP, для обмена 7.7 - 8.1 выгрузка доп. обработок, обработчик "После загрузки правил обмена", галочка "Новые не создавать, если НЕ найден".

Вырсия обработки КД 2.0.22, платформа 8.1.11

ЗАМЕЧАНИЕ: все файлы GCOMP включены в макет обработки, для каталога GCOMP указывать путь без пробелов. Для использовании галочки "Новые не создавать, если НЕ найден" нужно подправить саму КД, т.к. для 7.7 она блокируется.
19. Геннадий Пиганов (Totoro) 492 10.07.08 01:24 Сейчас в теме
Обновил УниверсальныйОбменДаннымиXML для последней КД 2.0.23.1

2.0.23.3:
Добавил флаг "Открывать внешнию обработку в конфигураторе при выполнении" для открытия создаваемой внешней обработки в конфигураторе при начале обмена с ожиданием продолжения (удобно, чтобы установить точки для отладки).

Добавлена облегченная версия для работы только совместно с системой "Инструменты разработчика" 1.58 и старше.
20. Геннадий Пиганов (Totoro) 492 17.07.08 23:44 Сейчас в теме
Обновил УниверсальныйОбменДаннымиXML для последней КД 2.0.24.1
21. Геннадий Пиганов (Totoro) 492 20.07.08 00:13 Сейчас в теме
Блин, левый архив вчера на ночь глядя выложил. Ошибку исправил. Прошу прощения, если кто скачал.
22. Геннадий Пиганов (Totoro) 492 01.08.08 17:12 Сейчас в теме
Если пользуетесь моей обработкой УниверсальныйОбменДаннымиX - не забывайте плюсовать:
http://infostart.ru/projects/1843/ - V8Unpack 2.0
http://infostart.ru/projects/1274/ - Система "Инструменты разработчика"

уважайте чужой труд ...
23. Сергей Старых (tormozit) 4106 07.11.08 13:20 Сейчас в теме
Версия 2.0.25.1
Новое в версии
Доработана функциональность обработки УниверсальныйОбменДаннымиXML. С помощью этой обработки можно генерировать отладочный модуль с обработчиками событий и выполнять отладку обработчиков и алгоритмов в процессе загрузки или выгрузки данных.

Смотрел?

24. Геннадий Пиганов (Totoro) 492 16.11.08 21:54 Сейчас в теме
Отладка обработчиков в свете последнего релиза КД уже не такая сложная, хоть и не так удобная. Т.ч. если нужна новая версия под неё - пишите, сделаю. А так меня пока устаривает текущая, а с обменами 7.7 уже не работаю.
25. - - (Rebelx) 928 16.11.08 22:08 Сейчас в теме
имхается мне что не очень полезная вещь. я обработчики длинее трех строк очень редко пишу. обычно делаю обработку, и из обработчиков вызываю нужные процедуры - т.е. тоже самое.
26. Геннадий Пиганов (Totoro) 492 17.11.08 12:51 Сейчас в теме
(25) со стандартными переносами 1С поработай ... особенно когда правила нужно оставить типовыми.
ЗЫ Не была бы нужна, не стало бы 1С переписывать весь код обработки для подобной поддержки :)
27. Герман (German) 921 11.12.08 10:47 Сейчас в теме
Описания нет.
Отладка вносит изменения в правила конвертации?
То есть потом его можно благополучно загрузить в КД.

Класная штука .. очень помагает в отладке типовых? особенно для УПП? с учетом того что последние на версию 1.2.6 :)
28. Геннадий Пиганов (Totoro) 492 12.12.08 11:19 Сейчас в теме
(27) Описание в комментариях ранее. Т.к. особо интерес никто не проявлял заморачиваться со справкой не стал.
Отладка в правила изменения не вносит, т.к. просто (после загрузки правил) создается внешняя обработка с подмененным модулем и включенным кодом обработчиков, выполнение передается в неё и подменяются вызовы для Выполнить обработчиков. В последней версии обработки 1С сделала подобное, но модуль обработки нужно заменять самому. Т.о. правила не отличаются от типовых и если не нужна отладка можно не использовать эту обработку.
Последний вопрос (намек?) не понял ...
29. Герман (German) 921 19.12.08 15:29 Сейчас в теме
30. Victor B (Aero86) 23.07.09 15:21 Сейчас в теме
как загрузить обработку в редакции 10.2?
31. Артур Аюханов (artbear) 847 06.02.10 17:02 Сейчас в теме
Есть более свежий вариант для последней версии КД 2.1.2.1 ?
32. Артур Аюханов (artbear) 847 08.02.10 09:11 Сейчас в теме
(31+) Обновил выгрузку для КД 2.1.2.1
[+] изменения в форме делаются только программно, что удобно при обновлении основной конфигурации
[+] если в имени каталога для GComp есть пробелы, такой каталог запрещено использовать, о чем явно сообщается пользователю
[+] ко всем методам добавлен префикс GComp для удобства сопровождения
[+] все изменения четко обозначены спец.комментами для удобства сопровождения
[*] небольшой рефакторинг

Смотрите приложенный файл.
Прикрепленные файлы:
ВыгрузкаКонвертации_2_1_2_1+GComp.epf
semen_2008; Поручик; ArtemK; Aleksey.Bochkov; K_A_O; Totoro; +6 Ответить 2
33. Геннадий Пиганов (Totoro) 492 09.02.10 05:39 Сейчас в теме
(31) С конвертацией из 7.7. уже давно не возился, поэтому не обновлял сборку через GCOMP. Т.ч. спасибо за проделанный труд.
34. Сергей Ожерельев (Поручик) 3471 20.02.11 17:08 Сейчас в теме
(32) Файл битый скачивается.
(33) Сделал тоже самое сам, может вывалить?
35. Артур Аюханов (artbear) 847 21.02.11 08:10 Сейчас в теме
(34) Файл был нормальный. Заново выложил его в этот же пост (32)
36. F (galaxymaster) 24.11.11 08:31 Сейчас в теме
37. Сергей (necropunk) 4 29.11.12 17:37 Сейчас в теме
Крутая вещь. Не вполне еще разобрался, конечно, но буду пытаться.
38. Xer shi (Xershi) 183 11.05.15 17:26 Сейчас в теме
Завтра тестировать буду, но может сейчас ответите:
Галка "Не создавать новый объект в приемнике, если он НЕ найден" при загрузке в 7.7 будет работать?
Обсуждаю данный вопрос тут