gifts2017

Отладка обработчиков в КД 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
229
.1212813491 234,30Kb 229 Бесплатно
УниверсальныйОбменДаннымиXML 2.0.24.3
.1211873276 342,05Kb
25.09.09
189
.1211873276 342,05Kb 189 Бесплатно
УниверсальныйОбменДаннымиXML 2.0.24.3 (для ИР 1.58+)
.1215637051 188,51Kb
25.09.09
122
.1215637051 188,51Kb 122 Бесплатно

См. также

Подписаться Добавить вознаграждение

Комментарии

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Смотрел?

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

Класная штука .. очень помагает в отладке типовых? особенно для УПП? с учетом того что последние на версию 1.2.6 :)
28. Геннадий Пиганов (Totoro) 12.12.08 11:19
(27) Описание в комментариях ранее. Т.к. особо интерес никто не проявлял заморачиваться со справкой не стал.
Отладка в правила изменения не вносит, т.к. просто (после загрузки правил) создается внешняя обработка с подмененным модулем и включенным кодом обработчиков, выполнение передается в неё и подменяются вызовы для Выполнить обработчиков. В последней версии обработки 1С сделала подобное, но модуль обработки нужно заменять самому. Т.о. правила не отличаются от типовых и если не нужна отладка можно не использовать эту обработку.
Последний вопрос (намек?) не понял ...
30. Victor B (Aero86) 23.07.09 15:21
как загрузить обработку в редакции 10.2?
31. Артур Аюханов (artbear) 06.02.10 17:02
Есть более свежий вариант для последней версии КД 2.1.2.1 ?
32. Артур Аюханов (artbear) 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) 09.02.10 05:39
(31) С конвертацией из 7.7. уже давно не возился, поэтому не обновлял сборку через GCOMP. Т.ч. спасибо за проделанный труд.
34. Сергей Ожерельев (Поручик) 20.02.11 17:08
(32) Файл битый скачивается.
(33) Сделал тоже самое сам, может вывалить?
35. Артур Аюханов (artbear) 21.02.11 08:10
(34) Файл был нормальный. Заново выложил его в этот же пост (32)
36. F (galaxymaster) 24.11.11 08:31
37. Сергей (necropunk) 29.11.12 17:37
Крутая вещь. Не вполне еще разобрался, конечно, но буду пытаться.
38. Xer shi (Xershi) 11.05.15 17:26
Завтра тестировать буду, но может сейчас ответите:
Галка "Не создавать новый объект в приемнике, если он НЕ найден" при загрузке в 7.7 будет работать?
Обсуждаю данный вопрос тут
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа