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

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
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. davdykin 25 04.01.17 20:57 Сейчас в теме
Спасибо, познавательно.
avmironov; kild; +2 Ответить
2. capitan 2466 07.01.17 12:41 Сейчас в теме
Посмотрел статью, подумал - зачем так сложно? :)
Если ваша обработка может просто стартовать с диска D:\ПроведениеДокументов.epf
так и стартуйте ее с диска и отлаживайте
В чем профит запихивания во внешние обработки ?

А проблема отладки внешних обработок в том, что они свои настройки хранят в базе.
Ее вы этим финтом не решаете
user659535_Necron500; Isakov_Artem; ybatiaev; Alex_E; +4 6 Ответить
4. unichkin 1559 07.01.17 23:06 Сейчас в теме
(2) (3)
Есть такая малость... Те параметры, которые передает этой самой обработке источник)) Через файл\открыть вы их не получите, разве что сами где-нибудь забьете. Кроме этого сама отладка ведется именно по контексту - открыл объект которому назначена обработка и выполняю команду... И сразу торможусь в конфигураторе на точке останова.И вижу весь отладочный контекст. Захотел - для одного объекта команду выполнил, захотел - для другого. ничего не перевыбирая, ничего не переписывая, а сразу. Больше возможностей для проверки.
user745172; xoxmaister; avmironov; Andreyyy; vvp117; clic007; nemec; eLeMeNtaLe; adhocprog; romankoav; user721584; NaKa; kild; akocur; Gorus; olezhe; yojeeg; Volchock; +18 Ответить
5. unichkin 1559 07.01.17 23:07 Сейчас в теме
(2)
В чем профит запихивания во внешние обработки ?

Обращу ваше внимание на тему статьи - "Отладка дополнительных обработок БСП", а не просто внешних обработок. О профите от помещения в внешние обработки речи не идет. Если изначально делаем назначаемую\глобальную обработку для БСП - так будет проще отлаживать, чем через файл\открыть.
nemec; kild; akocur; akor77; yojeeg; +5 Ответить
28. strange2007 144 27.02.18 04:44 Сейчас в теме
(5) Не проще. Создание обработки, это циклический процесс: Открыть, начать отладку, внести изменения, сохранить и переоткрыть заново.
Для быстрой и качественной отладки делается по одному шаблону для каждого вида (отчёт, заполнение ТЧ и т.д.) и всё. Можно вести разработку для обработок на БСП точно так же, как если бы разрабатывалась обычная обработка или обычный отчёт.
29. unichkin 1559 27.02.18 10:26 Сейчас в теме
(28)
Для быстрой и качественной отладки делается по одному шаблону для каждого вида (отчёт, заполнение ТЧ и т.д.) и всё. Можно вести разработку для обработок на БСП точно так же, как если бы разрабатывалась обычная обработка или обычный отчёт.

Мне надоело что-то кому-то доказывать)) Если смотрели видео \ пробовали сами этот подход - то профит должен быть очевиден. Если не делали этого - то попробуйте. Ну, или работайте как вам больше нравится) В конце концов, если кому-то кажется правильным работать эмулируя окружение - это его дело.
avmironov; vvp117; RibD; Cherkashin_Di; Strannik777; Alien_RS_Forever; kild; akocur; +8 Ответить
30. strange2007 144 27.02.18 10:59 Сейчас в теме
(29) Не надо доказывать. Терпите, ведь это по сути "барахолка". Видео, это для многих круто, но не для всех. Проще говоря в работе видео никогда вообще не смотрю. Поэтому приходится как-то по косвенным признакам пытаться догадываться.
По поводу окружения не понял. Ведь в шаблонах создаёшь это самое окружение в виде параметров.
52. kild 89 01.06.18 18:44 Сейчас в теме
(2)
так и стартуйте ее с диска и отлаживайте
Вы просто не понимаете разницу между внешними обработками и дополнительными обработками. Каким образов вы думаете отлаживать сохраненные параметры у прикрепленной обработки запуская его как внешний, а?
avmironov; Strannik777; akocur; RFP; +4 Ответить
3. Alex_E 2353 07.01.17 13:17 Сейчас в теме
Всё, что можно запустить через Файл - Открыть отлаживается тупо и без выкрутасов.....
user659535_Necron500; klaus38; docerman; strange2007; red80; TrasserZero; +6 Ответить
120. user970589 10 14.01.23 07:40 Сейчас в теме
(3)так то да. а если надо в работе самой базы отладить?
6. ok521 20 12.01.17 17:33 Сейчас в теме
Метод хороший, для отладки внешних печатных форм - то, что нужно. Позволяет цеплять обработку к нужному объекту без всяких дополнительных ухищрений. Подходит и для серверного метода, и для клиентского.
avmironov; kild; RFP; SagittariusA; ni032mas; nagaitseff; +6 Ответить
7. pas 81 16.01.17 13:44 Сейчас в теме
Если в подключаемой обработке есть форма с командными кнопками, то отладчик не заходит в процедуры формы. Видимо, ваш код необходимо выполнять до захода в форму.
Strannik777; +1 Ответить
8. unichkin 1559 18.01.17 15:57 Сейчас в теме
(7) надо понимать, откуда форма открывается. Тут ведь происходит точечная отладка - т.е. конкретный метод выполняем через внешнюю обработку. Ну переопределите открытие формы - в ПриОткрытии подключайте внешнюю обработку, открывайте ее форму, от исходной отказывайтесь. Все аналогично.
72. tireal 74 12.03.19 11:36 Сейчас в теме
(8) а как быть если внешняя обработка заполнения таб. части с вызовом клиентского метода с формы?
Получить форму для обращения к экспортной процедуре "ВыполнитьКоманду" внешней обработки можно только в толстом клиенте. И получается что в этом варианте исполнения ваш метод не исполнить никак правильно?
Прикрепленные файлы:
73. unichkin 1559 12.03.19 14:58 Сейчас в теме
(72) Сам алгоритм должен находиться на сервере, в модуле обработки
74. unichkin 1559 12.03.19 17:09 Сейчас в теме
(72) "Получить форму для обращения к экспортной процедуре "ВыполнитьКоманду" внешней обработки можно только в толстом клиенте. И получается что в этом варианте исполнения ваш метод не исполнить никак правильно?" - кстати, не уверен. Можно вроде и на тонком извратиться, только зачем? Соблюдайте негласные базовые правила - отделяйте основную логику от интерактива, и не будет возникать таких вопросов.
75. tireal 74 14.03.19 09:11 Сейчас в теме
(74) "кстати, не уверен. Можно вроде и на тонком извратиться" - может и можно но в доступности ВнешниеОбработкиМенеджер
ПолучитьФорму только Толстый клиент, а по поводу соблюдать негласные правила... я же приводил пример общего модуля стандартных подсистем - т.е. так работают 99% всех типовых конфигураций и речь напомню об обработки заполнения таблицы формы - т.е. в конце концов мы работаем именно с интерфейсной частью. Так что тут все правила соблюдены.
Да и не об этом речь - смысл вопроса в том что перехватить исполнение кода по вашей методе мы можем только в модуле объекта и никак иначе - вот что я хотел уточнить, и как понял это именно так.
9. tormozit 7136 05.10.17 09:04 Сейчас в теме
В инструментах разработчика в вариантах Расширение и Подсистема есть инструмент "Отладка внешних обработок БСП". Он позволяет отлаживать внешние отчеты и обработки из справочника БСП в натуральном виде в заданном каталоге с минимумом манимпуляций.
Прикрепленные файлы:
Istur; adhocprog; CratosX; mikeA; papche; kote; корум; unichkin; +8 Ответить
10. tormozit 7136 14.11.17 16:20 Сейчас в теме
(9) Обнаружил, что в БСП 2.4 изменился внутренний механизм работы с внутренними событиями. На нем я не нашел как заставить работать инструмент "Отладка внешних обработок БСП" из ИР (перенаправлять создание внешних обработок в файлы).
71. tormozit 7136 11.02.19 17:05 Сейчас в теме
(10) Теперь поддерживается и БСП 2.4+, но только в варианте Расширение.
23. nagaitseff 171 20.02.18 12:13 Сейчас в теме
(9)
это очень хороший инструмент, но отладка работает в том случае, если инструменты разработчика внедрены в конфигурацию (это ответ разработчика инструментов)
24. tormozit 7136 20.02.18 13:03 Сейчас в теме
(23) Использовать эту возможность можно не только при внедрении в конфигурацию (вариант Подсистема), но и при подключении расширения конфигурации (вариант Расширение). А вот вариант Портативный действительно не позволяет использовать эту возможность. Я кстати есть разработчик подсистемы "Инструменты разработчика".
Alex_Iz; sad12345; AlexK_2012; +3 Ответить
25. nagaitseff 171 20.02.18 14:58 Сейчас в теме
(24) Спасибо, про расширение не знал. Буду пользоваться. Инструмент то незаменимый!
63. denmax 388 05.10.18 03:32 Сейчас в теме
Опубликована новая версия универсального отладчика доп. обработок https://infostart.ru/public/916110 Это развитие метода, использованного в нашей более старой публикации, который позаимствовал (9)
11. binx 167 08.12.17 10:02 Сейчас в теме
я обычно создаю форму, создаю на ней реквизиты и поля для требуемых параметров. Отлаживаю потом переписываю на работу как доп. обработки.
немного это времени занимает.
Xershi; ybatiaev; +2 Ответить
12. unichkin 1559 08.12.17 15:31 Сейчас в теме
(11)
немного это времени занимает

- много. И оно не надо. При таком подходе вы лишены контекста разработки, отладка идет от эмуляции окружения.
Alexeibv87; KolBbl4; rudak_a; kild; kote; +5 Ответить
53. kild 89 01.06.18 18:45 Сейчас в теме
(11) Чего?? Делать кучу телодвижений вместо пару строчек для вас не занимает много времени?))
13. binx 167 08.12.17 18:51 Сейчас в теме
контекста разработки я себя не лишаю, и время набить несколько параметров не проблема.
я не против вашего метода. Я делюсь своим.
vodorosl; +1 Ответить
14. unichkin 1559 08.12.17 22:21 Сейчас в теме
(13) я понимаю) Но я против вашего, и делюсь этим) Поскольку сам проходил этот этап - и могу сказать, что это "идеальный газ". Отладка по контексту помогает выявить большое количество ошибок, о которых вы и не узнаете если будете все параметры эмулировать через отладочную форму. Конечно, все еще от конфы зависит, от ситуации. Но лично у меня скорость\качество разработки улучшились.
Strannik777; akocur; kild; +3 Ответить
15. binx 167 09.12.17 10:59 Сейчас в теме
вопрос, ваш метод будет работать в клиент-серверном варианте?
17. unichkin 1559 09.12.17 14:03 Сейчас в теме
16. binx 167 09.12.17 11:00 Сейчас в теме
И о каком контексте вы все время говорите кроме передаваемых в обработку параметров?
18. unichkin 1559 09.12.17 14:07 Сейчас в теме
(16) Я имею в виду что запуск обработки \ отчета происходит по пользовательскому событию. Вы будете открывать обработку в режиме предприятия, забивать параметры, нажимать на кнопку. Я буду открывать документ, вызывать команду из его формы - все также, как делает пользователь. При этом мне не понадобится перезапускать 1С, или переоткрывать инициализирующую форму - у меня есть одна команда, например для заполнения табличной части. Я вызываю ее, при этом всю разработку веду в внешней обработке.
31. strange2007 144 27.02.18 11:00 Сейчас в теме
(18) один раз выбираю во внешней обработке нужный документ, ввожу имя ТЧ и всё, хоть запереоткрывайся, ничего выбирать не надо.
19. binx 167 09.12.17 17:48 Сейчас в теме
в клиент серверном варианте кто должна лежать обработка?
20. unichkin 1559 09.12.17 20:35 Сейчас в теме
В каталоге, доступном пользователю 1С. На локальной машине с этим проблем обычно не возникает, если разнесены - сделайте шару.
21. johnnyshut23 71 09.12.17 22:30 Сейчас в теме
22. dnikolaev 177 19.02.18 19:01 Сейчас в теме
Красиво, просто и понятно. спасибо. Будем использовать
26. kkv90 54 22.02.18 12:00 Сейчас в теме
27. spezc 782 26.02.18 12:46 Сейчас в теме
Категорически одобряю
32. Gorec17 28.02.18 16:22 Сейчас в теме
33. it@contlog.ru 12.03.18 11:14 Сейчас в теме
Спасибо в моей задаче этот метод помог. Но единственно что нужно сохранить обработку на общем ресурсе который одинаково доступен как серверу так и отладчику с клиентом. если они разнесены на разные машины то путь к обработке должен быть через \\ , а если на одной то можно как в примере. Важно чтобы предприятие и конфигуратор открывали обработку с одним и тем-же путем.
romankoav; Irwin; Vida; veiuper; +4 Ответить
34. unichkin 1559 12.03.18 18:07 Сейчас в теме
(33) ну да, это мне кажется прозрачный момент
35. ccserg 63 19.03.18 15:04 Сейчас в теме
что то я не понял , как отладить не Печатную форму , а обработку заполнения ТЧ
и не понял зачем так тода извращаться если таким же способом можно Универсальную создать ? с выбором файла ?
36. unichkin 1559 19.03.18 15:57 Сейчас в теме
(35)
и не понял зачем так тода извращаться если таким же способом можно Универсальную создать ? с выбором файла ?

Смотрите видео.. Все по аналогии. Профит:
- не надо делать лишних интерфейсов - работаем, повторяя пользовательский сценарий в 1С
- не надо эмулировать окружение (забивать параметры на форму)
- не надо использовать вспомогательные обработчики для отладки - я ими попользовался, и скорее бы такой подход назвал извращением, чем этот
37. ccserg 63 19.03.18 19:03 Сейчас в теме
(36)
в видео у вас Печатная форма , и процедура Печать в модуле обработки
у меня обработка ТЧ документа ,
в СведенияОВнешнейОбработке описана команда открытия допформы и все действия в модуле формы уже
не понятно куда в таком случае добавлять код который у вас в процедуре Печать добавляется ?
38. unichkin 1559 19.03.18 21:45 Сейчас в теме
(37)
не понятно куда в таком случае добавлять код который у вас в процедуре Печать добавляется ?

Дайте пример? Вообще, по-идее на форме должен быть только интерактив, а основные действия - в модуле объекта.
39. ccserg 63 20.03.18 06:58 Сейчас в теме
(38)вот к примеру эта обработка
https://infostart.ru/public/561065/
если надо могу её вам скинуть
вызывается форма , где указываются параметры , из формы они переносятся в документ
код в модуле обработки :
Функция СведенияОВнешнейОбработке() Экспорт
	Назначения = Новый Массив ;
	Назначения.Добавить("Документ.ТабельУчетаРабочегоВремени") ;
	
	ПараметрыРегистрации = Новый Структура ;
	ПараметрыРегистрации.Вставить("Вид","ЗаполнениеОбъекта");
	ПараметрыРегистрации.Вставить("Назначение",Назначения);
	ПараметрыРегистрации.Вставить("Наименование","Заполнить Сводно");
	ПараметрыРегистрации.Вставить("Версия","1.0");
	ПараметрыРегистрации.Вставить("Информация","Дополнительная обработка табличной части табеля");
	ПараметрыРегистрации.Вставить("БезопасныйРежим",Ложь); ///--отладка

	
	Команды = ПолучитьТаблицуКоманд() ;
	ДобавитьКоманду(Команды, "Заполнить сводно","ЗаполнитьДокумент","ОткрытиеФормы",Истина,) ;
	

	ПараметрыРегистрации.Вставить("Команды",Команды) ;
	

	Возврат ПараметрыРегистрации;

КонецФункции

Показать

остальной код в уже в форме
40. unichkin 1559 20.03.18 11:52 Сейчас в теме
(39)
ОткрытиеФормы

Как я думал - обвал по архитектуре. Таблицу необходимо заполнять на сервере. Саму таблицу - в табличную часть, заполняем ее на сервере, на клиенте отражаем результат заполнения. Серверный метод можно отладить, используя данный подход. Предупреждая вопросы - переносить алгоритм заполнения на сервер надо не ради отладки, а ради соблюдения ИТС, см. например Минимизация кода, выполняемого на клиенте.
Саму форму теоретически отладить можно, для этого надо сделать метод экспортным и переопределить открытие формы, открыв форму внешней обработки - однако у меня ни разу такой потребности не возникало.
41. ccserg 63 20.03.18 11:58 Сейчас в теме
(40)
как таблицу на сервере ? форма документа открыта на клиенте , зачем её на сервере заполнять
или я не понимаю что то ?
почитал по ссылке , там про сложные алгоритмы и ресурсы компа , это не важно абсолютно в моём случае
42. unichkin 1559 20.03.18 12:21 Сейчас в теме
(41)
зачем её на сервере заполнять

- затем, что работа с таблицей формы в большинстве случаев может породить неявные вызовы сервера. Во-вторых - в принципе при разработке надо стремиться к тому чтобы на форме был только интерактив, весь служебный интерфейс необходимо разрабатывать на сервере -> в модуле объекта. Вы же совместили интерфейс с самим алгоритмом.
К сожалению, все обычно руководствуются правилом "что разрешено - то не запрещено". Почитайте статьи про рефакторинг, на ИС, возможно придете к этим-же выводам.
Не хочу здесь проводить код-ревью вашей обработки, много писать придется. Да вам оно, думаю и не надо)
43. ccserg 63 20.03.18 12:53 Сейчас в теме
(42)скорей всего и не надо , до управляемых форм все было отлично
как на эту ерунду (клиент/сервер) перешли так всё по другому стало ... а многим оно и не нужно
а я прикладные задачи решаю а не глобальные ...
и как вы заметили , кода прибавляется , зачем непонятно , когда тут простейшие алгоритмы
спасибо , может почитаю чего нибудь в этом направлении

а у вас есть пример любой обработки с этим кодом ? поделитесь пожалуйста .
44. unichkin 1559 20.03.18 14:16 Сейчас в теме
(43) Посмотрите примеры в БСП, вот демка для заполнения контрагентов
Прикрепленные файлы:
_ДемоЗаполнениеКонтрагентов.epf
rudak_a; ccserg; +2 Ответить
54. SlavaKron 02.06.18 04:21 Сейчас в теме
(37) Отладить как клиентские так и серверные вызовы, достаточно перед самым запуском подключаемой команды открыть вашу обработку через "Файл->Открыть", потом закрыть и запустить команду. Всё выполнение будет передано этой обработке из файла (имя обработки, естественно, должно совпадать с именем объекта из справочника ДополнительныеОтчетыИОбработки). Версия БСП - 2.4.5.31
sulfur17; Disly; Lazio; veiuper; Piittech; +5 Ответить
55. unichkin 1559 02.06.18 16:16 Сейчас в теме
(54)
(37) Отладить как клиентские так и серверные вызовы, достаточно перед самым запуском подключаемой команды открыть вашу обработку через "Файл->Открыть", потом закрыть и запустить команду. Всё выполнение будет передано этой обработке из файла (имя обработки, естественно, должно совпадать с именем объекта из справочника ДополнительныеОтчетыИОбработки). Версия БСП - 2.4.5.31

Что-то не выходит у меня..
56. SlavaKron 02.06.18 17:41 Сейчас в теме
(55) Двоичные данные внешней обработки из файла должны полностью совпадать с двоичными данными из справочника. Поэтому при каждом изменении в файле, нужно загружать его в справочник.
Когда вы открываете файл обработки через меню Файл-Открыть, вы регистрируете ее Имя и, видимо, хеш-сумму, причем её ИспользуемоеИмяФайла - это файловый путь. Кода запускается команда подключенной обработки с таким же именем, проверяется ее хеш-сумма, и если она не совпадает, то ИспользуемоеИмяФайла заменяется на путь во временном хранилище, но если совпадает, ИспользуемоеИмяФайла не меняется и команда может быть отлажена в файле.
sulfur17; Serg2000mr; +2 Ответить
58. unichkin 1559 03.06.18 00:28 Сейчас в теме
(56) Я насколько понял - вы говорите о обработке, которая после первого запуска создает 1С в временном файле. Она - да, существует до закрытия программы. Только это не отладка будет, а боль сплошная.
126. sulfur17 59 14.11.23 01:31 Сейчас в теме
(54)клевый метод, но к сожалению есть ограничение: он не дает поймать фоновое задание которое выполняется в этой обработке (если вам вдруг такое нужно)
127. unichkin 1559 14.11.23 19:17 Сейчас в теме
(126) все он дает. Обработку на шару надо выложить, которая доступна с сервера.
На клиенте вот отладиться не выйдет, это да. Для такого надо ИР использовать, например. Что-то что заменит целиком объект обработки в момент создания.
128. sulfur17 59 15.11.23 04:03 Сейчас в теме
(127)я отвечал не вам, а (54). Вот его способ - не дает. А ваш - да, не спорю
unichkin; +1 Ответить
45. fanast2 18.04.18 13:47 Сейчас в теме
Метод прикольный, спору нет. Но только не работает у меня:

База на сервере, все сделал как в примере - отладка фоновых заданий, параметр запуска. На точки останова не тормозиться и все тут. Сообщения если оставлять, все выводит в правильном порядке. подскажите что еще попробовать можно
46. unichkin 1559 18.04.18 16:06 Сейчас в теме
(45)
База на сервере, все сделал как в примере - отладка фоновых заданий, параметр запуска. На точки останова не тормозиться и все тут. Сообщения если оставлять, все выводит в правильном порядке. подскажите что еще попробовать можно

Отладка \ Подключение \ Подключенные предметы отладки - должны при запуске базы автоматически светится две строки. Тонкий клиент \ Сервер. Это есть?
47. fanast2 19.04.18 04:51 Сейчас в теме
(46) Да, есть. Платформа 8.3.10.2580. Еще один факт: пробую печатать - отладка не запускается. Следом открываю обработку через файл - открыть, нажимаю кнопку и ТОЖЕ НЕ ПОПАДАЮ В ОТЛАДКУ. В конфигураторе ставлю пробел, сохраняю, открываю - появляется отладка.
то есть смысл в том, что если нажать кнопку печать, то отладка отваливается от этого файла...?

обработка лежит на сетевом диске, он доступен ото всюду. путь тоже правильно написан
48. fanast2 19.04.18 05:26 Сейчас в теме
(47) Поставил точку останова в общем модуле, в который обращается моя обработка, поскольку точки останова в самой обработине не работали. И воуаля, мы зашли туда, F11, и выходим снова в обработку. Но только открылось другое окно (которое слева на картинке)

Как я понял проблемы была в букве сетевого диска и пути к обработке. Я открыл вот такую обработку N:\\*** а через общий модуль открылась обработка вот с таким путем \\192.168****\
Прикрепленные файлы:
49. unichkin 1559 19.04.18 11:49 Сейчас в теме
(48)
Как я понял проблемы была в букве сетевого диска и пути к обработке. Я открыл вот такую обработку N:\\*** а через общий модуль открылась обработка вот с таким путем \\192.168****\

А, да, есть такое. Пути должны быть одинаковые.
sulfur17; +1 Ответить
68. InJey 17.01.19 09:57 Сейчас в теме
Почему не получается?

{ВнешняяОбработка.СчетЗаказКлиентаВнешнийКирсановаТЕСТ.МодульОбъекта(49)}: Ошибка при вызове метода контекста (Создать)
обр = ВнешниеОбработки.Создать(Адрес, БезопасныйРежим());
по причине:
Ошибка подключения внешних метаданных
по причине:
Каталог не обнаружен 'E:\1\Тест.epf'

все сделал по инструкции, пробовал несколько раз менять адрес каталога
69. unichkin 1559 17.01.19 20:04 Сейчас в теме
(68)
все сделал по инструкции, пробовал несколько раз менять адрес каталога

Предполагаю что каталог на сервере не обнаружен
70. InJey 19.01.19 16:15 Сейчас в теме
(69) да я не верно разместил каталог
50. ivamailh 31.05.18 17:45 Сейчас в теме
Отличное видео. Все сработало. Спасибо!
51. user705522_constantin_h 35 31.05.18 20:32 Сейчас в теме
Я пользуюсь https://infostart.ru/public/73691/. По-моему, это удобнее.
57. pavelyar 02.06.18 18:04 Сейчас в теме
59. vpaoli 26 13.07.18 16:47 Сейчас в теме
ваше кино на ютубе не открывается. битая ссылка. хотя бы картинку добавили. ничего понять невозможно в такой статье.
60. user705522_constantin_h 35 13.07.18 17:27 Сейчас в теме
(59)У меня открылось https://www.youtube.com/watch?time_continue=21&v=5ffBzFNOSeM.
Проблемы с вашим интернетом.
61. vpaoli 26 13.07.18 17:54 Сейчас в теме
сорри.
это на моей работе ограничивают досступ к ютуб
62. PerlAmutor 129 26.08.18 09:29 Сейчас в теме
Уточните, пожалуйста, следующие моменты:
- вариант работает на клиент-серверном варианте?
- конфигуратор должен быть открыт на той же машине, где работает сервер предприятия 1С?

Я попробовал использовать сетевую папку которая доступна с сервера и клиента, путь одинаковый, но точка остановки не срабатывает.

Для варианта вызова ТипКомандыВызовКлиентскогоМетода() видимо отдельно придумывать нужно что-то, т.к. создать обработку на клиенте невозможно.
64. unichkin 1559 28.10.18 04:02 Сейчас в теме
(62) Везде работает, все равно где открыт конфигуратор. Про вызов клиентского - видимо, да, не сталкивался до сих пор, соотв. не было нужды что-то изобретать. Но вообще - возможно, в режиме толстого клиента УФ. Да и на тонком возможно, только гемора чуть побольше.
125. sulfur17 59 14.11.23 01:18 Сейчас в теме
(64) а как на тонком сделать?
upd. нашел ответ ниже в (91)
65. SergSergWolf 3 15.11.18 18:31 Сейчас в теме
На каком релизе платформы работает?
Пробую на 8.3.12.1469

Условие

Если Адрес <> ЭтотОбъект.ИспользуемоеИмяФайла

выполняется всегда, так как свойство ЭтотОбъект.ИспользуемоеИмяФайла содержит темпоральное имя в виде
"e1cib/tempstorage/186306aa-905d-4790-bf3d-de9944665b4c"

из за этого возникает бесконечный рекурсивный вызов процедуры
66. SergSergWolf 3 15.11.18 18:47 Сейчас в теме
... заработало
Какие то глюки с кэшем
67. kasperiks 6 12.12.18 09:35 Сейчас в теме
Спасибо за статью, очень помогла. Особенно с последними версиями БСП 2.4
76. AZel84 51 26.04.19 05:55 Сейчас в теме
Плюс как минимум за это:
Правой кнопкой мыши по файлу с шифтом - "Копировать как путь"
Dali; TMV; elga2012; OldGarry; Suslik_Johns; murat_; Gorus; +7 Ответить
83. Suslik_Johns 07.05.20 21:34 Сейчас в теме
(76) это точно!) тоже взяли на заметку
77. Gorus 48 09.05.19 13:13 Сейчас в теме
Спасибо за идею.
Правда, у меня иногда крашился клиент. Пришлось добавить исключение по ЭтомуОбъекту в "ЗаполнитьЗначенияСвойств":
Если Адрес <> ЭтотОбъект.ИспользуемоеИмяФайла Тогда
	обр = ВнешниеОбработки.Создать(Адрес, БезопасныйРежим());
	ЗаполнитьЗначенияСвойств(обр, ЭтотОбъект, , "ЭтотОбъект");
	обр.ОтлаживаемаяПроцедура(Параметр1, Параметр2);
	Возврат; 		
КонецЕсли; 
FEO_MEDBEDb; Serg2000mr; +2 Ответить
78. Egor_R 06.02.20 11:01 Сейчас в теме
Спасибо большое за ценную статью! Работает.
79. ShiftKod 10.03.20 14:05 Сейчас в теме
А у меня вот такое выдает.

Переполнение стека встроенного языка на сервере
{ОбщийМодуль.УправлениеПечатьюСлужебныйКлиент.Модуль(240)}: ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия, Форма);
{ОбщийМодуль.УправлениеПечатьюСлужебныйКлиент.Модуль(40)}: ВыполнитьОткрытиеПечатнойФормыЗавершение(ОбъектыНазначения, Параметры);
{ОбщийМодуль.ДополнительныеОтчетыИОбработкиКлиент.Модуль(494)}: МодульУправлениеПечатьюСлужебныйКлиент.ВыполнитьОткрытиеПечатнойФормы(
{ОбщийМодуль.ДополнительныеОтчетыИОбработкиКлиент.Модуль(264)}: ВыполнитьОткрытиеПечатнойФормы(ВыполняемаяКоманда, Форма, ВыполняемаяКоманда.ОбъектыПечати);
{ОбщийМодуль.УправлениеПечатьюСлужебныйКлиент.Модуль(101)}: МодульДополнительныеОтчетыИОбработкиКлиент.ВыполнитьНазначаемуюКомандуПечати(ОписаниеКоманды, Форма);
{ОбщийМодуль.УправлениеПечатьюСлужебныйКлиент.Модуль(26)}: ВыполнитьПодключаемуюКомандуПечатиЗавершение(Истина, ПараметрыВыполнения);
{ОбщийМодуль.ПодключаемыеКомандыКлиент.Модуль(190)}: ВыполнитьОбработкуОповещения(Обработчик, ПараметрКоманды);
{ОбщийМодуль.ПодключаемыеКомандыКлиент.Модуль(60)}: ПродолжитьВыполнениеКоманды(Контекст);
{Документ.ВозвратТоваровПоставщику.Форма.ФормаСписка.Форма(300)}: ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Элементы.Список);

по причине:
Переполнение стека встроенного языка на сервере
по причине:

ОбщаяФорма.ПечатьДокументов.Форма : 43 : КоллекцияПечатныхФорм = СформироватьПечатныеФормы(Параметры.ИменаМакетов, Отказ);
ОбщаяФорма.ПечатьДокументов.Форма : 479 : УправлениеПечатью.ПечатьПоВнешнемуИсточнику(
ОбщийМодуль.УправлениеПечатью.Модуль : 1610 : ВнешняяОбработкаОбъект.Печать(
ВнешняяОбработка.ПечатныеФормыВозвратТоваровПоставщику.МодульОбъекта : 53 : Обр.Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
...
ВнешняяОбработка.ПечатныеФормыВозвратТоваровПоставщику.МодульОбъекта : 53 : Обр.Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
ВнешняяОбработка.ПечатныеФормыВозвратТоваровПоставщику.МодульОбъекта : 53 : Обр.Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
ВнешняяОбработка.ПечатныеФормыВозвратТоваровПоставщику.МодульОбъекта : 53 : Обр.Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
ВнешняяОбработка.ПечатныеФормыВозвратТоваровПоставщику.МодульОбъекта : 52 : Обр = ВнешниеОбработки.Создать(Адрес, БезопасныйРежим());
по причине:
Переполнение стека встроенного языка на сервере
80. unichkin 1559 10.03.20 15:12 Сейчас в теме
(79) После регистрации в доп. обработках вызов надо закомментировать, посмотрите внимательнее видео
114. angabanga5 06.07.21 13:59 Сейчас в теме
(80) ну я закоментил, всеравно ошибка. потом закоментил и сохранил на всякий случай- ну тогда отладка не начинается)
81. george_tag 16 12.03.20 11:10 Сейчас в теме
Молодец. Я было начал городить какие-то формы для отладки, а тут все просто оказалось. Сам бы я не додумался. Спасибо.
82. user1129453 27.04.20 03:55 Сейчас в теме
Очень интересная статья. Спасибо автору. Видео раз 5 посмотрел. Вопрос такой, а если нет процедуры печать, если это не внешняя печатная форма, а внешняя обработка без печати, как делать в этом случае? как отлаживать?
84. Deimich 26.10.20 11:27 Сейчас в теме
(82) ну так ставьте точку останова в любой вызываемой функции/событии, какая в принципе разница то.
но боюсь, если у вас этот вопрос возникает - то вам надо углубить базовые знания информатики/программирования.
85. request4t 03.11.20 16:47 Сейчас в теме
а если нет функции СведенияОВнешнейОбработке()?
86. unichkin 1559 04.11.20 02:27 Сейчас в теме
(85) она здесь используется только потому что это доп. обработка, подключаемая через подсистему БСП. Если включен безопасный режим, платформа запрещает использование внешних ресурсов, и ничего не выйдет.
Если такого метода нет - значит нет БСП, либо внешняя обработка не через БСП работает. И надо иным способом это предусмотреть. Для начала просто попробовать запустить, если ошибок нет - все ок. Но навряд-ли кто-то в своей нетленке будет им пользоваться.
87. nollff 11 05.11.20 16:13 Сейчас в теме
Удалось попасть в экспортную процедуру ВыполнитьКоманду(Идентификатор, ПараметрыВыполнения)
, правда не сразу вышло, но в результате остановился по точке в этой процедуре. Спасибо за статью.
88. ybatiaev 58 08.12.20 17:28 Сейчас в теме
Добрый день!
А отладка заполнения ТЧ будет так работать?

Вот ошибка - Метод объекта не обнаружен (ЗаполнитьТЧ)
{ВнешняяОбработка.ЗаполнениеОтчетаПроизводстваЗаСмену.Форма.Форма.Форма(341)}: Обр.ЗаполнитьТЧ(пер);
Код находится в форме, которая есть для заполнения ТЧ, в ней описана команда(не клиенте). Из неё эту функцию и вызываю.

&НаСервере
Функция ЗаполнитьТЧ(Док)
	//Адрес = "C:\Users\***\Заполнение отчета производства 201208_006.epf";
	//обр = ВнешниеОбработки.Создать(Адрес, БезопасныйРежим());
	//Обр.ЗаполнитьТЧ(Док);
	//Возврат Истина;
	ПОпытка
	Об = РеквизитФормыВЗначение("Объект");   
Показать
91. unichkin 1559 08.12.20 18:06 Сейчас в теме
(88) Любой серверный метод так можно отладить. Только:
- путь к обработке должен быть доступен с сервера
- в конфигураторе надо открывать обработку по тому же пути. Бывает что путь указывают как сетевой адрес, напр. \\101.20.99.4\Шара\МояОбработка.epf, а открывают из сетевого диска напр. z:\МояОбработка.epf - так не взлетит, открывать надо тот же адрес
- безопасный режим должен быть выключен
sulfur17; +1 Ответить
93. ybatiaev 58 08.12.20 18:50 Сейчас в теме
(91) Путь тут нормальный. Во время загрузки не находит ЗаполнитьТЧ(Док) почему-то. Что я тут не верно сделал? Эта функция вызывается с формы клиента из функции
&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт


Короче закопался (((
96. unichkin 1559 08.12.20 19:13 Сейчас в теме
(93) я так понимаю, метод у вас на форме расположен. А чтобы это все сработало он должен быть экспортным в модуле объекта. Его там нет, и 1С закономерно на это ругается.
89. OldGarry 08.12.20 17:33 Сейчас в теме
Подскажите начинающему, как по этому методу отладить обработку с обращением к пользователю?
В СведенияОВнешнейОбработке() у меня следующие параметры:
Вид = "ЗаполнениеОбъекта";
КомандаИспользование = "ВызовКлиентскогоМетода";

Соответственно вызывается экспортная процедура ВыполнитьКоманду() из модуля формы внешней обработки.

Я столкнулся с проблемой - моя внешняя обработка в результате выполнения кода водвешивает пользовательский режим. Надо отладить, ваш бы метод мне мог бы очень помочь...
90. ybatiaev 58 08.12.20 17:47 Сейчас в теме
(89) Можно так
&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт
	ДопПараметры = новый структура("ссылкаНаСущность", НеОпределено);
	ПоказатьВопрос(Новый ОписаниеОповещения("ПослеЗакрытияВопроса", ЭтотОбъект, ДопПараметры),
                                                        "Что будем делать?", РежимДиалогаВопрос.ДаНет);
КонецПроцедуры	

&НаКлиенте
Процедура ПослеЗакрытияВопроса(Результат, Параметры) Экспорт
    Если Результат = КодВозвратаДиалога.Нет Тогда
        Возврат;
	КонецЕсли;
	ФормаВыбора = ПолучитьФорму("Справочник.Номенклатура.Форма.ФормаВыбора");
	ФормаВыбора.Открыть();
КонецПроцедуры
Показать
Оставьте свое сообщение