Отладка подключаемых обработок

04.08.18

Разработка - Механизмы платформы 1С

На самом деле для этого не нужно ни изменять конфигурацию, ни пользоваться вспомогательной обработкой-отладчиком.. Все просто :)

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

Как показывает практика, этот метод хорош везде - в любой конфигурации, с любыми вызываевыми отчетами \ обработками..

Если работаете на серверной базе:

  • должна быть включена отладка сервера
  • кроме этого добавляем в предмет отладки фоновые задания (Конфигуратор => Отладка\Подключение\Автоматическое подключение\ поставить флаг "Фоновые задания")
  • а еще лучше так не делать, а воспользоваться параметром запуска "РежимОтладки" (Конфигуратор => Сервис\ Запуск 1С предприятия \ Основные \ ПараметрЗапуска, см. документацию к БСП Приложение 3. Доступные параметры запуска приложения) - тогда вызов доп. обработки не будет выполняться в фоне, что для отладки проще и лучше.

upd. 04.08.2018

Сегодня отлаживал получение настроек дополнительной обработки, и ее надо было несколько раз перезагружать в справочник, соотв. каждый раз комментировать вызовы неудобно. Придумал как упростить этот момент)

Процедура ОтлаживаемаяПроцедура(Параметр1, Параметр2 = Неопределено) Экспорт
	Адрес = "D:\Projects\МояОбработка.epf";
	Если Адрес <> ЭтотОбъект.ИспользуемоеИмяФайла Тогда
		обр = ВнешниеОбработки.Создать(Адрес, БезопасныйРежим());
		ЗаполнитьЗначенияСвойств(обр, ЭтотОбъект);
		обр.ОтлаживаемаяПроцедура(Параметр1, Параметр2);
		Возврат; 		
	КонецЕсли; 

    //...код...
КонецПроцедуры

 

Отладка обработок Отладка Дополнительная обработка отладка

См. также

Поинтегрируем: сервисы интеграции – новый стандарт или просто коннектор?

Обмен между базами 1C Администрирование СУБД Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

В платформе 8.3.17 появился замечательный механизм «Сервисы интеграции». Многие считают, что это просто коннектор 1С:Шины. Так ли это?

11.03.2024    4438    dsdred    53    

70

Как готовить и есть массивы

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

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

24.01.2024    5272    YA_418728146    25    

62

Планы обмена VS История данных

Обмен между базами 1C Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Вы все еще регистрируете изменения только на Планах обмена и Регистрах сведений?

11.12.2023    6391    dsdred    36    

111

1С-ная магия

Механизмы платформы 1С Бесплатно (free)

Язык программирования 1С содержит много нюансов и особенностей, которые могут приводить к неожиданным для разработчика результатам. Сталкиваясь с ними, программист начинает лучше понимать логику платформы, а значит, быстрее выявлять ошибки и видеть потенциальные узкие места своего кода там, где позже можно было бы ещё долго медитировать с отладчиком в поисках источника проблемы. Мы рассмотрим разные примеры поведения кода 1С. Разберём результаты выполнения и ответим на вопросы «Почему?», «Как же так?» и «Зачем нам это знать?». 

06.10.2023    18464    SeiOkami    46    

118

Дефрагментация и реиндексация после перехода на платформу 8.3.22

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Начиная с версии платформы 8.3.22 1С снимает стандартные блокировки БД на уровне страниц. Делаем рабочий скрипт, как раньше.

14.09.2023    12074    human_new    27    

74

Валидация JSON через XDTO (включая массивы)

WEB-интеграция Универсальные функции Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    8799    YA_418728146    6    

141

Внешние компоненты Native API на языке Rust - Просто!

Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Внешние компоненты для 1С можно разработывать очень просто, пользуясь всеми преимуществами языка Rust - от безопасности и кроссплатформенности до удобного менеджера библиотек.

20.08.2023    6271    sebekerga    54    

94

Все скопируем и вставим! (Буфер обмена в 1С 8.3.24)

Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Рассмотрим новую возможность 8.3.24 и как её можно эффективно использовать

27.06.2023    15963    SeiOkami    31    

103
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
92. unichkin 1559 08.12.20 18:09 Сейчас в теме
(89) именно на клиенте метод не отладите, см. куда он потом на сервер стучится, там и работайте. Либо используйте расширение ИР (http://devtool1c.ucoz.ru/) - там отлаживается целиком вся обработка, и таких проблем не возникает.
94. ybatiaev 58 08.12.20 18:52 Сейчас в теме
(92) скачал, поставил. Уйма всего. Не направите на путь?
95. unichkin 1559 08.12.20 19:10 Сейчас в теме
(94) На том же сайте \ в расширении есть справка, все довольно просто и последовательно. Начните с команды "Отладка внешних обработок БСП (ИР)", только запускайтесь в толстом УФ клиенте. Дальше все интуитивно
ybatiaev; +1 Ответить
97. OldGarry 09.12.20 12:37 Сейчас в теме
(92) С бедой худо бедно разобрался. ) Спасибо.
Теперь попробую "ВызовСерверногоМетода" с вашим методом отладки...
Ссылка, на ИР у меня не открывается (404 ошибка). Есть какой-то секрет?
98. unichkin 1559 09.12.20 17:16 Сейчас в теме
99. request4t 10.02.21 15:21 Сейчас в теме
Здравствуйте. Что делать, если:

Файл не обнаружен 'D:\v.epf'
{ВнешняяОбработка.ЧекВчасноItekОТЛАДКА.МодульОбъекта(80)}: обр = ВнешниеОбработки.Создать(адрес, БезопасныйРежим());
{ОбщийМодуль.УправлениеПечатью.Модуль(1593)}: ВнешняяОбработкаОбъект.Печать(
{ОбщаяФорма.ПечатьДокументов.Форма(496)}: УправлениеПечатью.ПечатьПоВнешнемуИсточнику(
{ОбщаяФорма.ПечатьДокументов.Форма(45)}: КоллекцияПечатныхФорм = СформироватьПечатныеФормы(Параметры.ИменаМакетов, Отказ);
{ВнешняяОбработка.ЧекВчасноItekОТЛАДКА.Форма.Форма.Форма(49)}: ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия);
{ВнешняяОбработка.ЧекВчасноItekОТЛАДКА.Форма.ФормаВвода.Форма(12)}: ЭтаФорма.Закрыть(Структура);

по причине:
Ошибка подключения внешних метаданных
по причине:
Файл не обнаружен 'D:\v.epf'

?
100. unichkin 1559 10.02.21 15:23 Сейчас в теме
(99)
{ВнешняяОбработка.ЧекВчасноItekОТЛАДКА.Форма.ФормаВвода.Форма(12)}: ЭтаФорма.Закрыть(Структура);

У вас вероятно клиент-серверная база, и на *сервере* нет файла 'D:\v.epf'
request4t; +1 Ответить
101. request4t 10.02.21 15:23 Сейчас в теме
(100)
да. так и есть. сейчас скопирую.
102. unichkin 1559 10.02.21 15:27 Сейчас в теме
(101) Лучше каталог расшарить, и разрабатываемую обработку хранить в шаре, доступной с сервера
103. request4t 10.02.21 15:32 Сейчас в теме
т.е. я не смогу с клиентского компа отлаживать, если обработка на сервере и к ней достукпа по сети нет?
105. unichkin 1559 10.02.21 15:38 Сейчас в теме
(103)
т.е. я не смогу с клиентского компа отлаживать, если обработка на сервере и к ней доступа по сети нет?

Нет, этим способом не сможете. Можно попробовать отладку кэша, т.е. по ссылке из 104, но это боль.
Для отладки шара принципиально важна между сервером и рабочим местом. Имхо, все прочие способы - вызывающие головную боль костыли.
106. artbear 1448 10.02.21 15:41 Сейчас в теме
(105) вполне себе рабочий способ для случаев, когда нет прямого доступа к серверу 1С
108. artbear 1448 10.02.21 15:42 Сейчас в теме
(106) как раз шара не всегда возможна.
например, в случае Линукс-сервера 1С, как у нас, и Вин-клиентов )
sulfur17; +1 Ответить
107. request4t 10.02.21 15:41 Сейчас в теме
(105)
скопировал обработку на сервер. работаю на сервере. ошибка та же.
109. request4t 12.02.21 20:30 Сейчас в теме
Ошибку поборол, дав права на папку с файлом пользователю USR1CV8. Но отладка все равно не происходит - отладчик не реагирует на точки останова.
110. unichkin 1559 14.02.21 15:06 Сейчас в теме
(109)
Ошибку поборол, дав права на папку с файлом пользователю USR1CV8. Но отладка все равно не происходит - отладчик не реагирует на точки останова.

1) Проверьте "розетку" - у сервера в принципе отладка включена? Отладка \ Подключение - должна быть строчка с типом "сервер".
2) Если с ш1 все ок, то убедитесь что отлаживаемая и запускаемая обработка открывается по одному и тому же *абсолютному* пути. Бывает такое, например - есть шара \\1.1.1.1\Обработки\МояОбработка.epr, и в конфигураторе ее открывают по полному адресу, а в предприятии - через сетевой диск, например. Пути должны быть одинаковы.
111. littlekan 11.06.21 09:26 Сейчас в теме
Здравствуйте!
Все сделал как на видео, но при вызове обработки, после этих манипуляций, 1С-ка вылетает.
112. unichkin 1559 12.06.21 09:32 Сейчас в теме
(111)
Все сделал как на видео, но при вызове обработки, после этих манипуляций, 1С-ка вылетает.


Значит, где-то ошиблись. Скорее всего не закомментировали вызов после помещения в доп. отчеты, и вылетает из-за бесконечной рекурсии.
113. angabanga5 06.07.21 13:15 Сейчас в теме
ошибка : файл не обнаружен. пробовал и с клиента и с сервера.
115. vladnet 361 27.08.21 14:28 Сейчас в теме
У меня отладка не запускалась, пока не назначил другое имя обработки. Это бы желательно отразить.
Плюс нужно имя изменить уже после того как обработку закачать в базу.
116. ksv-stas-61288 01.10.21 10:34 Сейчас в теме
Автор, вы писали "Как показывает практика, этот метод хорош везде - в любой конфигурации, с любыми вызываевыми отчетами \ обработками.."
Вопрос: а как по данной статье отладить доп. отчёт (создал внешний отчёт и поместил его в типовой справочник "Дополнительные отчеты и обработки"), написанный на СКД на общей форме ФормаОтчета, ведь там нет экспортной процедуры (наподобие Печать(...) для печатной формы), а есть только Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)? Заранее, спасибо.
117. unichkin 1559 01.10.21 19:14 Сейчас в теме
(116) Можно вызвать внешний отчет, инициализировать его по текущему объекту, и вызвать метод СкомпоноватьРезультат.
Метод представленный в этой статье можно использовать, но на текущий момент удобнее использовать инструменты разработчика от tormozit - есть вариант расширения, где удобно включать отладку доп. отчетов \ обработок.
118. Satoshi_Nakamoto 03.12.21 13:01 Сейчас в теме
Привет Всем! Не подскажите, как адаптировать вашу идею в мой код. Есть документ в Управление Предприятием 2.4. там нужно открыть форму и отладить ее. Никак не могу написать код, чтобы отладить обработку.
Прикрепленные файлы:
ОченьПростаяОбработка.epf
119. prog1c_vl 28 17.09.22 15:54 Сейчас в теме
Хороший способ отладки, реально все быстрее получается
121. user1472622 27.04.23 07:30 Сейчас в теме
Не работает: "Переменная не определенна Внешние обработки" .
Вставляю на форме Внешней обработки.....
122. alres 27.07.23 10:29 Сейчас в теме
Чтобы не комментировать каждый раз прописал Если Адрес <> ЭтотОбъект.ИспользуемоеИмяФайла Тогда

получаю ошибку "Переполнение стека встроенного языка на сервере."
Впечатление что вызов обработки зацикливается
129. Xershi 1474 04.03.24 19:28 Сейчас в теме
(122) тоже словил переполнение стека.
Скорее всего связано с кешем.
Закомментил в обработке. Словил точку.
Дальше переполнения уже не было.
// Для тестирования контекста отладки, закомментировать после завершения отладки!
Адрес = "F:\Обработки\Внешние обработки и отчеты\Внешние обработки\Дополнительная обработка\УТ\Загрузка курсов валют 1.0.epf";
Если Адрес <> ЭтотОбъект.ИспользуемоеИмяФайла Тогда
	ТекущаяОбработка = ВнешниеОбработки.Создать(Адрес, БезопасныйРежим());
	ЗаполнитьЗначенияСвойств(ТекущаяОбработка, ЭтотОбъект);
	ТекущаяОбработка.ВыполнитьКоманду(ИмяКоманды, ПараметрыВыполнения);
	Возврат;
КонецЕсли;
Показать
130. Xershi 1474 04.03.24 21:51 Сейчас в теме
(129) комментировать, как оказалось не обязательно. Достаточно сделать любую правку.
Похоже это какой-то внутренний платформенный баг. После редактирования, поставить пробел и сохранения обработки ошибка не вылазит, до следующего обновления.
Судя по всему сигнатуры обработки совпадают и внутренний код падает. Это похоже на то как сделать форму с печатью и запустить печать ВПФ, платформа тоже ругается.
123. alexvilo 24.08.23 00:35 Сейчас в теме
Очень помогла статья, да и комментарии автора были интересными и полезными.

Не смотря на то, что публикация древняя, автору огромное спасибо!
124. Serg2000mr 311 05.09.23 13:29 Сейчас в теме
Раньше пользовался данным решением, спасибо автору.
Но теперь использую и рекомендую Расширение для отладки дополнительных отчетов и обработок https://infostart.ru/1c/tools/916110/
sulfur17; +1 Ответить
Оставьте свое сообщение