Отладка внешней обработки 1С

Отладка внешних обработок, которые подключаются через БСП, т.е. во все конфигурации на управляемых формах, вызывает определенные затруднения у многих программистов. Дело в том, что в предыдущих версиях подключения внешних обработок создавался временный файл, который содержал обработку. Его-то и была возможность открыть для дальнейшей отладки.
Вместе с совершенствованием БСП (Библиотеки Стандартных Подсистем), такой метод перестал работать. Сейчас БСП подключает обработки методом ВнешниеОбработкиМенеджерПодключить(, , ). А Путь задается в виде адреса во временном хранилище. При этом внешняя обработка, как файл на диске не существует и открыть ее конфигуратором не представляется возможным. Поэтому предлагается адаптировать БСП для отладки внешних обработок.
Было создано расширение конфигурации, в котором перехватываются обработки общего модуля ДополнительныеОтчетыИОбработки: ПодключитьВнешнююОбработку и ПриПолученииРегистрационныхДанных. В функции ПодключитьВнешнююОбработку устанавливается местоположение и имя обработки
//Здесь вставляем путь до файла обработки вместе с названием файла ИмяОбработки = Менеджер.Создать("C:\otladka\ВнешняяОбработка.epf", Ложь); //Здесь вставляем имя обработки ИмяОбработки = "ВнешняяОбработка"; Возврат ИмяОбработки;
А в процедуре ПриПолученииРегистрационныхДанных устанавливается:
// Здесь опять пишем путь и название файла обработки ВнешнийОбъект = Менеджер.Создать("C:\otladka\ВнешняяОбработка.epf", Ложь);
Теперь сначала размещаем свою обработку по указанному пути и устанавливаем в конфигурацию. Если вы попытаетесь загрузить из другого места, 1с выдаст ошибку. Обработка регистрируется в конфигурации. Теперь можем открыть ее и через конфигуратор, поставить точки останова и вызвать исполнение модуля (например нажав «Печать», если это печатная форма, в соответствующем документе.
Если все сделано, а точки не срабатывают, то можно поставить точки останова в расширении ОтладкаВФ и обновить уже установленный файл обработки, проследив, правильно ли указан путь к файлу и имя внешней обработки.
Одним из достоинств данного метода является возможность изменения кода «на лету». То есть в процессе отладки после замены кода, достаточно кликнуть на пктограмму сохранения и уже при следующем вызове обработки будет исполняться измененный код. Не потребутся ни перезапуск приложения, ни обновления обработки в конфигурации.
После отладки достаточно отключить расширение и обновить обработку из полученного файла. Хотя отлаживать лучше на файловой копии базы, тогда достаточно отлаженную обработку загрузить в рабочую базу.
Отладка дополнительных отчетов и обработок (Управляемые формы 8.3 БСП)
Доброго всем времени суток. Хотел бы поделиться способом отладки обработок БСП. Нового для себя Знатоки ничего не узнают, а вот новичкам, возможно, будет интересно. Метод заезженный, но здесь не встречал. При данном методе точки останова срабатывают всегда, проблем в своей практике не встречал (раз сделал и работает).
Те, кто не любит читать, могут посмотреть изображения и (думаю) все будет понятно без слов!
1. Снимаем конфигурацию с поддержки (делаем копию и снимаем, мы же все делаем на копиях?! 🙂 )
Конфигурация -> Поддержка -> Настройка поддержки -> Включить возможность изменения
2. Открываем Конфигурацию и ищем Общий модуль: ДополнительныеОтчетыИОбработки

3. Редактируем функцию и процедуру:
Функция


Текст для копирования
Функция ПодключитьВнешнююОбработку(Ссылка) Экспорт // Было: // ИмяОбработки = Менеджер.Подключить(АдресВоВременномХранилище, ,БезопасныйРежим); // Стало: ИмяОбработки = Менеджер.Создать("c:\qwe.epf", Ложь); ИмяОбработки = "qwe"; // Имя Внешней обработки, которую Вы отлаживаете, как оно задано в конфигураторе
Процедура


Текст для копирования
Процедура ПриПолученииРегистрационныхДанных(Объект, РегистрационныеДанные, ПараметрыРегистрации, РезультатРегистрации) // Было: // ВнешнийОбъект = Менеджер.Создать(РезультатРегистрации.ИмяОбъекта); // Стало: ВнешнийОбъект = Менеджер.Создать("c:\qwe.epf", Ложь);
4. Сохраняем и обновляем Конфигурацию
5. Создаем или переименовываем свою обработку, которую будем отлаживать. Задаем имя qwe и разместим ее в корне диска C:
6. Открываем ее в Конфигураторе и ставим Безопасный режим — Ложь


7. Запускаем 1С Предприятие и добавляем обработку в список, сохраняем.

8. Ставим точки останова в обработке

9. Запускаем нашу обработку на исполнение (вернее ту часть где стоит точка останова)


10. При нажатии попадаем в место отладки!
После успешной отладки, не забываем задать правильное имя обработки ( и Безопасный режим — Истина, если это необходимо)
Привык к данному методу и пользуюсь таковым.
См. также
Шаблоны новых объектов 1С для 1С:Бухгалтерии предприятия
Используются для создания новых объектов в конфигурации, чтобы не забыть, что нужно сделать. Сделано на примере 1С:Бухгалтерия предприятия, в других конфигурациях могут быть другие, а могут быть и похожие объекты.
28.12.2023 3464 mrXoxot 6
Использование подключаемых команд в обработках на примере дополнительных печатных форм
Функционал полезен в обработках типа Рабочий стол или Пакетное формирование со сложным подбором документов. Реализованы настройки подключаемых команд подсистемы Печать (БСП 3.1.7.526, ERP 2.5.12.121).
19.12.2023 566 a.s.aksenov 0
Консоль кода для подсистемы БСП Групповое изменение реквизитов
Расширения для внедрения консоли кода в обработку подсистемы БСП Групповое изменение реквизитов. Просто, чтобы было удобнее.
2 стартмани
03.12.2023 1218 5 vandalsvq 1
19 5 1 1218
Настройка истории изменений. Подключение новых объектов (которых нет в списке) к системе версионирования (БСП) без изменения конфигурации
Много материалов и видео в сети о том, как подключить объект, которого нет в списке настроек, к системе версионирования БСП. Суть сводится к изменению определяемого типа, на который все завязано. Но это предполагает изменение конфигурации. Недавно встала задача подключить объект, которого нет в определяемом типе без снятия замков. Пришлось изучить вопрос глубже. Здесь пояснения и краткая инструкция с картинками. Как подключиться, используя только расширение.
20.11.2023 902 user1374747 0
Подключение нового документа к Дополнительным свойствам, используя БСП 3.1 (и что сделать, чтобы рекомендации с ИТС заработали)
Как подключить дополнительные свойства к новому документу так, чтобы их можно было использовать. Дополнение к описанию методики, описанной в документации по БСП.
15.11.2023 1747 alexey123perm 2
Как включить привилегированный режим для дополнительных отчетов и обработок
Как отключить безопасный режим для дополнительных отчетов и обработок РазрешениеНаИспользованиеПривилегированногоРежима
14.10.2023 2557 SpecRam 16
33 16 2557
Справочник по методам БСП
Данная конфигурация представляет собой инструмент для изучения документации и набора методов для стандартных подсистем БСП (Библиотека стандартных подсистем) в среде 1С:Предприятие. Может помочь разработчикам для быстрого поиска кода и переноса его в другие конфигурации, а также изучения БСП. Это конфигурация не в является заменой сервиса ИТС , а только помогает разработчикам в изучении БСП.
2 стартмани
11.10.2023 5394 110 plm 13
53 110 13 5394
Вывод различных колонтитулов в разных разделах, при формировании печатной формы по шаблону Word новыми процедурами БСП
Необходимо было вывести колонтитулы на всех страницах, кроме последней.
30.09.2023 1089 unknown181538 3
Посмотреть ещё
Комментарии
- Дата
- Дата
- Рейтинг всех уровней
- Рейтинг 1-го уровня
- Древо развёрнутое
- Древо свернутое
Свернуть все
1. dsdred 2924 17.01.19 21:39 Сейчас в теме
А по проще то ни как?
29. пользователь 16.07.21 16:23
Сообщение было скрыто модератором.
2. davdykin 25 18.01.19 05:19 Сейчас в теме
Да, решение со снятием с поддержки конфы не эффективно, посмотрел я «https://infostart.ru/public/827126/#4P» какой-то не очень просто вариант.. там километр кода.
Когда появились расширения я сделал для основных конфигураций по расширению. В нем я перехватывал:
1. ПРоцедуру добавления внешней печатной формы из файла и писал путь к файлу в коментарий
2. Процедуру печати, если в коменте путь к существующему файлу, то открывал его вместо загруженного.
Таким образом данное расширение весит не много, можно подключать на живые базы, мои узкие задачи — отладка печатных форм, закрыло полностью.
3. dsdred 2924 18.01.19 08:07 Сейчас в теме
«https://infostart.ru/public/827126/#4P» какой-то не очень просто вариант.. там километр кода.
Там статья про регламенты с использованием БСП: Дополнительная обработка и отчеты просто, а в самом низу 4 пункт «Отладка» с ссылкой на статью где около 10 строчек кода и с одной строкой в случае если вы в доп обработке храните параметры и вам надо протестировать с сохраненными параметрами .
Просто данная статья как я думал будет о том как тестировать доп обработки которые могут быть Командой, регламентом, формой, отчетом. А тут только про команду, да еще и метод который снимает с поддержки.
Команды вообще тестировать проще до добавления в допы. На форму ссылку на документ вывести и все протестировать, после чего уже добавлять обработку в допы.
5. davdykin 25 18.01.19 10:58 Сейчас в теме
(3)Чего-то я не понял как вы хотите протестировать печатную форму до подключения? В любом случаи правка конфы — не вариант.. если вы сидите в одной конторе можно копию поправить, а вот если у вас на обслуги фиг пойми сколько. это вообще не вариант.
7. dsdred 2924 18.01.19 14:44 Сейчас в теме
Чего-то я не понял как вы хотите протестировать печатную форму до подключения
Наша беседа это тот случай когда комментарии лучше статьи.
Прикрепленные файлы:
10. davdykin 25 18.01.19 21:24 Сейчас в теме
(7) Нет, ваш способ мне не нравиться, и вот почему:
Все-таки у вас процедура вызывается не через стандартные механизмы, соответственно будут «пробелы» в отладке, что, на мой взгляд, не очень удобно., для обычных форм была такая штука, ВнешниеПечатныеФормы.epf, вещь отличная, но не на БСП. Я сделал вот такое расширение, первый раз промаялся долго, в районе получаса часа, затем по аналогии для других конфигураций.
Пользоваться очень просто:
1. Подключаем расширение
2. Загружаем форму во внешние (при этом в коментарии прописывается путь к файлу, который и будет вызывать)
3. ТЕстируем.
Все механизмы стандартные, т.е. все параметры передаются как при реальной печати.
Прикрепленные файлы:
sulfur17; ACE$; anuar_medeup; Jeka86; DoctorRoza; allgorhythm; zakirov_CS24; + 7 – Ответить
11. dsdred 2924 18.01.19 22:48 Сейчас в теме
(10)На вкус и цвет как говорится.
П.С. Если все комменты собрать и нормально заилюстрировать и по типам команд разбить отличная статья выйдет
4. motorkuzbassa.it 99 18.01.19 09:36 Сейчас в теме
А зачем снимать с поддержки? модуль же можно в расширение » вместо «, закинуть..не?
6. gubar 269 18.01.19 14:09 Сейчас в теме
Не слышал, поведайте на примере?
8. dsdred 2924 18.01.19 14:48 Сейчас в теме
В первом комментарии ссылка на 1с с подробной документацией, даже с картинками.
9. v_id 106 18.01.19 20:29 Сейчас в теме
Намного полезнее devtools освоить
13. Bassgood 1406 20.01.19 13:21 Сейчас в теме
(9) Осваивать этот большой инструмент только ради отладки внешних обработок?
Ничего посложнее не нашлось? 😉
15. v_id 106 21.01.19 09:37 Сейчас в теме
(13)Весь не нужно (хотя полезно со все точек зрения), а в части отладки его установка и запуск проще и лучше документированы чем текущий способ. Обычно следующий вопрос, «а как отладить запрос»
16. Bassgood 1406 21.01.19 13:27 Сейчас в теме
(15) Все зависит от характера работы прогера — если дорабатывает конфиги внешних заказчиков (аутсорс или фриланс), то использование данной подсистемы будет нецелесообразным (для доработок зачастую достаточно пары-тройки внешних консолей и далеко не всегда есть возможность ее встраивания в конфу заказчика), если идет разработка крупного проекта или постоянные доработки своих конфигов (штатный прогер) — другое дело, подсистема будет полезна, а встраивать ее во все базы только ради использования тех же внешних 2-3 консолей — ну как бы и нафиг оно нужно?
p.s. Плюс подсистема реализована на обычных формах, каждый раз запускать обычный режим приложения для ее использования тоже постепенно начинает вымораживать, нежели простое открытие внешних консолей.
17. v_id 106 21.01.19 16:12 Сейчас в теме
(16)Похоже вы давно ИР не пользовались. Есть вариант в виде расширения, для отладки достаточно работать под толстым клиентом.
tormozit; Bassgood; + 2 – Ответить
28. erazh 16.03.20 17:28 Сейчас в теме
(17) Не всегда ИР можно воспользоваться: То прав не хватает, то по политике компании нельзя, то разработчик совтины вырезал поддержку расширения. Всякие случаи в жизни бывают.
12. zeegin 108 20.01.19 11:18 Сейчас в теме
Доп отчеты и обработки это легаси, используйте расширения.
14. dsdred 2924 20.01.19 17:33 Сейчас в теме
Доп отчеты и обработки это легаси
Это всего лишь Ваше мнение, а не реальность.
1 Более менее дорабатывать можно в расшерении с версии 8.3.9, а что делать если режим совместимости 8.3.8 или младше?
2 Доп обработки позволяют создавать команды, регламенты, формы и т.д. с хранимыми параметрами без добавления констант и прочих прелестей.
3 Позволяют делать горячее обновление которое не требует перезахода клиентом.
4 Позволяет легко настраивать видимость под конкретных пользователей.
П.С. Сам я использую расширения уже более 3-х лет и очень уважаю данную возможность и слежу за развитием, но доп отчеты и обработки в плане регламентов и добавления формы обработки использую регулярно.
18. acsent 1192 21.01.19 17:32 Сейчас в теме
может проще у обработки сделать форму и там выбирать объект и вызывать команду модуля?
https://infostart.ru/public/84922/
31. FReIM 8 05.03.22 10:51 Сейчас в теме
(18)Нет не проще. Вы таким образом никогда не поймете какие параметры передает БСП текущей версии в обработки и/или наоборот почеу не передает.
19. МимохожийОднако 140 22.01.19 09:35 Сейчас в теме
Любопытно посмотреть применение этого метода на компьютере с базовой версией ) без патчей и кряков ))
21. gubar 269 22.01.19 09:45 Сейчас в теме
(19)
Какого именно?
22. МимохожийОднако 140 22.01.19 13:19 Сейчас в теме
(21) Их много всяких.
20. gubar 269 22.01.19 09:42 Сейчас в теме
Почитал комменты, спасибо за подсказки и критику.
23. user858962 27.11.19 13:51 Сейчас в теме
Спасибо автору! Очень помогло.
24. gubar 269 27.11.19 14:08 Сейчас в теме
Спасибо Вам, сейчас есть методы попроще)
25. yurikmellon 6 27.11.19 14:16 Сейчас в теме
(24) огласите весь список, пожалуйста (с)
26. gubar 269 27.11.19 14:41 Сейчас в теме
27. yurikmellon 6 27.11.19 14:52 Сейчас в теме
30. alex4fm 27.08.21 10:15 Сейчас в теме
Хороший совет по данной теме. Я сделал в расширении. Сейчас уже работает аннотация &ИзменениеИКонтроль, у кого еще нет совместимости, можно и &Вместо. Кто-то писал, что с базовой не прокатит. Ну это да. А для всего остального сработает.
Во модуле объекта внешней обработки достаточно создать экспортную переменную ПутьДляОтладки.
Пример:
ПутьДляОтладки = "D:\ОтладкаДополнительныхОбработок\" + ЭтотОбъект.Метаданные().Имя + ".epf";
Для отладки нужно запустить 1С в режиме отладки с параметром запуска /C «РежимОтладки».
И все. Обработка будет отлаживаться в режиме отладки. А в рабочем режиме работать как обычно из справочника доп обработки.
Пример текстом ниже. Расширение прикладываю.
Реализовал вот таким образом:
&Вместо("ПодключитьВнешнююОбработку") Функция ОДП_ПодключитьВнешнююОбработку(Ссылка) Если ОбщегоНазначения.РежимОтладки() Тогда // переопределим подключение к обработке Вид = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "Вид"); Если Вид = Перечисления.ВидыДополнительныхОтчетовИОбработок.Отчет Или Вид = Перечисления.ВидыДополнительныхОтчетовИОбработок.ДополнительныйОтчет Тогда Менеджер = ВнешниеОтчеты; Иначе Менеджер = ВнешниеОбработки; КонецЕсли; // Эти телодвижения только, чтобы получить ПутьДляОтладки ++ ИмяОбработкиТемп = ПолучитьИмяВременногоФайла(".epf"); ХранилищеОбработки = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "ХранилищеОбработки"); ДвоичныеДанные = ХранилищеОбработки.Получить(); ДвоичныеДанные.Записать(ИмяОбработкиТемп); ВнешнийОбъект = Менеджер.Создать(ИмяОбработкиТемп); // Эти телодвижения только, чтобы получить ПутьДляОтладки ++ Менеджер.Создать(ВнешнийОбъект.ПутьДляОтладки); ИмяОбработки = Ссылка.ИмяОбъекта; УдалитьФайлы(ИмяОбработкиТемп); Иначе ИмяОбработки = ПродолжитьВызов(Ссылка); КонецЕсли; Возврат ИмяОбработки; КонецФункции
&ИзменениеИКонтроль("ПриПолученииРегистрационныхДанных") Процедура ОДП_ПриПолученииРегистрационныхДанных(Объект, РегистрационныеДанные, ПараметрыРегистрации, РезультатРегистрации) // Подключение и получение имени, под которым объект будет подключаться. Менеджер = ?(ПараметрыРегистрации.ЭтоОтчет, ВнешниеОтчеты, ВнешниеОбработки); ИнформацияОбОшибке = Неопределено; Попытка #Если ТолстыйКлиентОбычноеПриложение Тогда РезультатРегистрации.ИмяОбъекта = ПолучитьИмяВременногоФайла(); ДвоичныеДанные = ПолучитьИзВременногоХранилища(ПараметрыРегистрации.АдресДанныхОбработки); ДвоичныеДанные.Записать(РезультатРегистрации.ИмяОбъекта); #Иначе РезультатРегистрации.ИмяОбъекта = СокрЛП(Менеджер.Подключить(ПараметрыРегистрации.АдресДанныхОбработки, , Истина, ОбщегоНазначения.ОписаниеЗащитыБезПредупреждений())); #КонецЕсли // Получение сведений о внешней обработке. ВнешнийОбъект = Менеджер.Создать(РезультатРегистрации.ИмяОбъекта); #Вставка // alex4fm Если ОбщегоНазначения.РежимОтладки() Тогда // Переопределим обработку для отладки ВнешнийОбъект = Менеджер.Создать(ВнешнийОбъект.ПутьДляОтладки, Ложь); КонецЕсли; #КонецВставки ВнешнийОбъектМетаданные = ВнешнийОбъект.Метаданные(); // ОбъектМетаданныхОтчет СведенияОВнешнейОбработке = ВнешнийОбъект.СведенияОВнешнейОбработке(); . КонецПроцедуры
1с как отладить внешнюю обработку
Если отсутствует директива препроцессора, значит процедура по умолчанию будет выполняться на сервере.
(0) 1. Включить отладку если сервер 1С
2. Открывать внешнюю обработку из места доступного не только там где конфигуратор и клиент 1С но и серверу 1С (от имени какого пользователя запускается)
(12) а может у него формы просто не управляемые.
Тогда наоборот всегда на клиенте)))
(12) (14) (13) Я с 1с знаком плохо. Я работаю в 1с упп, а учебные материалы мне давали книгу Радченко, я ахудел, когда увидел как там сильно различается работа с формами. По сему для меня вся система 1с с ветвлениями в духе ЗУП, ERP и прочих складывается в голве как мимик. Ты знаешь что это мимик, но всякий раз он выглядит по-разному.
Если подробнее дела с клиент сервером обстоят так. Есть основная база УПП, есть моя тестовая. Я свою отключаю от хранилища и там балуюсь, тестирую, работаю. С внешними обработками раньше работал, но необходимости в их отладке не было. Сейчас появилась. В самом коде формулировк &НаКлиенте &НаСервере нет. Отлаживаю я обычно запуская прогу из конфигуратора, в следствии чего она автоматически заходит в УПП под моей учеткой. Так вот, как отладить внешнюю обработку в этом случае, что тыкать, что писать, как запускать?
(15) УПП это обычные формы. Отлаживаешь внешнюю обработку точно так же как и всё остальное. Открываешь обработку в конфигураторе, ставишь точку останова где нужно, запускаешь в режиме отладки базу, через Файл -> Открыть открываешь твою внешнюю обработку, тычешь кнопку на форме обработки. Если отладка заходит в процедуру(или функцию) в которой стоит точка останова, то она срабатывает. Как то так.
(15) Пятнично
(16) А если не заработает, при том условии что она обязательно должна попасть в поставленную точку останова? Или это исключено?
(18) слушай, ты с 11.12 разговоры разговариваешь и за всё это время не попробовал срабатывает у тебя точка останова или нет? Ну тут медицина бессильна, только лоботомия.
(20) пардон, с 16.12 обшибся
(21) Так тут тоже))
Что ж. Дабы не создавать новую тему. Как отлаживать внешнюю печтаную форму без формы (в ней только макет и реквизиты)?
(23) добавь форму и показ ТД по кнопке
ТД — Таблицы Данных?? (24)
табличный документ
(26) Один фиг способ открытия с поставленой точкой останова не работает. Она ее игнорит. Мне по факту-то отладка нужна чтоб посмотреть какой запрос он собирает ( через консоль запросов ничего не вывелось)
(27) Сообщить(НужныйТекстЗапроса) ?
(27) значит не доходит до точки твоей.
(27) чисто на всякий случай:
макет — это скд? и ты хотел поймать его выполнение и проверить запрос?
(23) или это чисто табличный документ с текстом, где ты хочешь заполнять реквизиты? Вроде если это печатная форма, то ты гдето должен вызывать её заполнение. вот там и лови.
(29) Доходит и даже дальше идет, потому что ошибка вылетает в строке после точки остонова
(30) Да, у меня .epf открываю там реквизит СсылкаНаОбъект и Макет . Ну и процедура печати макета. У меня задача найти откуда в доке Авансовых отчетов у одного товарища взялось 117 рублей грубо говоря понять чей косяк: проги или человека.
Изначально печать реализована в конфигурации я ее прочесал от и до и там нет ошибок. Потом запустил печать черзе «Печать» внизу формы, вылезло окошко с выбором макета и надписью «печатная форма замещена». Ругнулся, что два часа не то делал и стал рыскать че там в замещении (собствено там .epf описанный выше). А оно как две капли воды похоже на то что в доке, просто добавлено СсылкаНаОбъект где надо. Запросы тоже одинаковые (единственное что некоторые пустые и там, и там). Понял я одно, своими не шибко сведущими в 1с мозгами, — нужна отладка, чтоб посмотреть че оно там в запрос пишет и какие цифры куда сует.
Если знаете чем лучше решить эту проблему (вдруг отладка тут и нафиг не нужна) подскажите пожалуйста, молодой боец жаждит знаний.
(32) добавь форму в обработку. Вытащи на неё реквизит «СсылкаНаОбъект». По кнопке выполнить вызываешь «Печать» из модуля обработки. Дальше можно отладить обычным способом.
(33) Сейчас наверное я унижу себя сам. А можно подробнее. Типа, я видел это решение в коде. Но у меня УПП, у меня не такой интерфес как тут https://wiseadvice-it.ru/o-kompanii/blog/articles/otladka-vneshnei-pechatnoi-formy-1s-8-3/ Как мне туда ссылку на объект пихать? Типа в данные забивать или в ТипЗначения? Дайте инструкцию для чайников, пожалуйста. И ещ у меня ошибка вылазит «недостаточно фактических параметров.
Хотя вот вызов:
Процедура ТестНажатие(Элемент)
Печать();
КонецПроцедуры
И вот куда обращаюсь:
Функция Печать() Экспорт
1) Пастим код модуля обработи
2) Пастим код твоей формы (то что ты написал)
Ссылки кидаем в эту тему
Отладка внешней печатной формы в управляемом приложении
Обычно, если внешняя печатная форма является подключаемой, процесс отладки является проблематичным — точки останова не срабатывают, потому что сам файл обработки не используется, используется его временная копия загруженная в справочник внешних обработок.
Как вариант, можно сделать из подключаемой формы обычную, которая будет открываться через меню Файл/Открыть.
Для этого нужно добавить форме реквизит СсылкаНаОбъект (тип ссылка на документ, к которому относится печатная форма).

Отладка внешней печатной формы 8.3
Добавить кнопку Тест. И разместить в форме такой код:











