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

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

Перейти к публикации

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. davdykin 25 04.01.17 20:57 Сейчас в теме
Спасибо, познавательно.
2. capitan 1935 07.01.17 12:41 Сейчас в теме
Посмотрел статью, подумал - зачем так сложно? :)
Если ваша обработка может просто стартовать с диска D:\ПроведениеДокументов.epf
так и стартуйте ее с диска и отлаживайте
В чем профит запихивания во внешние обработки ?

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

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

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

- много. И оно не надо. При таком подходе вы лишены контекста разработки, отладка идет от эмуляции окружения.
rudak_a; kadild; kote; +3 Ответить
53. kadild 01.06.18 18:45 Сейчас в теме
(11) Чего?? Делать кучу телодвижений вместо пару строчек для вас не занимает много времени?))
13. binx 95 08.12.17 18:51 Сейчас в теме
контекста разработки я себя не лишаю, и время набить несколько параметров не проблема.
я не против вашего метода. Я делюсь своим.
14. unichkin 1348 08.12.17 22:21 Сейчас в теме
(13) я понимаю) Но я против вашего, и делюсь этим) Поскольку сам проходил этот этап - и могу сказать, что это "идеальный газ". Отладка по контексту помогает выявить большое количество ошибок, о которых вы и не узнаете если будете все параметры эмулировать через отладочную форму. Конечно, все еще от конфы зависит, от ситуации. Но лично у меня скорость\качество разработки улучшились.
Strannik777; akocur; kadild; +3 Ответить
15. binx 95 09.12.17 10:59 Сейчас в теме
вопрос, ваш метод будет работать в клиент-серверном варианте?
17. unichkin 1348 09.12.17 14:03 Сейчас в теме
16. binx 95 09.12.17 11:00 Сейчас в теме
И о каком контексте вы все время говорите кроме передаваемых в обработку параметров?
18. unichkin 1348 09.12.17 14:07 Сейчас в теме
(16) Я имею в виду что запуск обработки \ отчета происходит по пользовательскому событию. Вы будете открывать обработку в режиме предприятия, забивать параметры, нажимать на кнопку. Я буду открывать документ, вызывать команду из его формы - все также, как делает пользователь. При этом мне не понадобится перезапускать 1С, или переоткрывать инициализирующую форму - у меня есть одна команда, например для заполнения табличной части. Я вызываю ее, при этом всю разработку веду в внешней обработке.
31. strange2007 143 27.02.18 11:00 Сейчас в теме
(18) один раз выбираю во внешней обработке нужный документ, ввожу имя ТЧ и всё, хоть запереоткрывайся, ничего выбирать не надо.
19. binx 95 09.12.17 17:48 Сейчас в теме
в клиент серверном варианте кто должна лежать обработка?
20. unichkin 1348 09.12.17 20:35 Сейчас в теме
В каталоге, доступном пользователю 1С. На локальной машине с этим проблем обычно не возникает, если разнесены - сделайте шару.
21. johnnyshut23 61 09.12.17 22:30 Сейчас в теме
22. dnikolaev 19.02.18 19:01 Сейчас в теме
Красиво, просто и понятно. спасибо. Будем использовать
26. kkv90 61 22.02.18 12:00 Сейчас в теме
27. spezc 695 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 1348 12.03.18 18:07 Сейчас в теме
(33) ну да, это мне кажется прозрачный момент
35. ccserg 48 19.03.18 15:04 Сейчас в теме
что то я не понял , как отладить не Печатную форму , а обработку заполнения ТЧ
и не понял зачем так тода извращаться если таким же способом можно Универсальную создать ? с выбором файла ?
36. unichkin 1348 19.03.18 15:57 Сейчас в теме
(35)
и не понял зачем так тода извращаться если таким же способом можно Универсальную создать ? с выбором файла ?

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

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

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

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

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

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

Показать

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

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

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

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

Что-то не выходит у меня..
56. SlavaKron 02.06.18 17:41 Сейчас в теме
(55) Двоичные данные внешней обработки из файла должны полностью совпадать с двоичными данными из справочника. Поэтому при каждом изменении в файле, нужно загружать его в справочник.
Когда вы открываете файл обработки через меню Файл-Открыть, вы регистрируете ее Имя и, видимо, хеш-сумму, причем её ИспользуемоеИмяФайла - это файловый путь. Кода запускается команда подключенной обработки с таким же именем, проверяется ее хеш-сумма, и если она не совпадает, то ИспользуемоеИмяФайла заменяется на путь во временном хранилище, но если совпадает, ИспользуемоеИмяФайла не меняется и команда может быть отлажена в файле.
murenysh; +1 Ответить
58. unichkin 1348 03.06.18 00:28 Сейчас в теме
(56) Я насколько понял - вы говорите о обработке, которая после первого запуска создает 1С в временном файле. Она - да, существует до закрытия программы. Только это не отладка будет, а боль сплошная.
45. fanast2 18.04.18 13:47 Сейчас в теме
Метод прикольный, спору нет. Но только не работает у меня:

База на сервере, все сделал как в примере - отладка фоновых заданий, параметр запуска. На точки останова не тормозиться и все тут. Сообщения если оставлять, все выводит в правильном порядке. подскажите что еще попробовать можно
46. unichkin 1348 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 1348 19.04.18 11:49 Сейчас в теме
(48)
Как я понял проблемы была в букве сетевого диска и пути к обработке. Я открыл вот такую обработку N:\\*** а через общий модуль открылась обработка вот с таким путем \\192.168****\

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

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

все сделал по инструкции, пробовал несколько раз менять адрес каталога
69. unichkin 1348 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 Сейчас в теме
57. pavelyar 02.06.18 18:04 Сейчас в теме
59. vpaoli 29 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 29 13.07.18 17:54 Сейчас в теме
сорри.
это на моей работе ограничивают досступ к ютуб
62. PerlAmutor 124 26.08.18 09:29 Сейчас в теме
Уточните, пожалуйста, следующие моменты:
- вариант работает на клиент-серверном варианте?
- конфигуратор должен быть открыт на той же машине, где работает сервер предприятия 1С?

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

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

Условие

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

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

из за этого возникает бесконечный рекурсивный вызов процедуры
66. SergSergWolf 21 15.11.18 18:47 Сейчас в теме
... заработало
Какие то глюки с кэшем
67. kasperiks 5 12.12.18 09:35 Сейчас в теме
Спасибо за статью, очень помогла. Особенно с последними версиями БСП 2.4
76. AZel84 49 26.04.19 05:55 Сейчас в теме
Плюс как минимум за это:
Правой кнопкой мыши по файлу с шифтом - "Копировать как путь"
OldGarry; Suslik_Johns; murat_; Gorus; +4 Ответить
83. Suslik_Johns 07.05.20 21:34 Сейчас в теме
(76) это точно!) тоже взяли на заметку
77. Gorus 47 09.05.19 13:13 Сейчас в теме
Спасибо за идею.
Правда, у меня иногда крашился клиент. Пришлось добавить исключение по ЭтомуОбъекту в "ЗаполнитьЗначенияСвойств":
Если Адрес <> ЭтотОбъект.ИспользуемоеИмяФайла Тогда
	обр = ВнешниеОбработки.Создать(Адрес, БезопасныйРежим());
	ЗаполнитьЗначенияСвойств(обр, ЭтотОбъект, , "ЭтотОбъект");
	обр.ОтлаживаемаяПроцедура(Параметр1, Параметр2);
	Возврат; 		
КонецЕсли; 
murenysh; +1 Ответить
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 1348 10.03.20 15:12 Сейчас в теме
(79) После регистрации в доп. обработках вызов надо закомментировать, посмотрите внимательнее видео
81. george_tag 13 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 1348 04.11.20 02:27 Сейчас в теме
(85) она здесь используется только потому что это доп. обработка, подключаемая через подсистему БСП. Если включен безопасный режим, платформа запрещает использование внешних ресурсов, и ничего не выйдет.
Если такого метода нет - значит нет БСП, либо внешняя обработка не через БСП работает. И надо иным способом это предусмотреть. Для начала просто попробовать запустить, если ошибок нет - все ок. Но навряд-ли кто-то в своей нетленке будет им пользоваться.
87. nollff 5 05.11.20 16:13 Сейчас в теме
Удалось попасть в экспортную процедуру ВыполнитьКоманду(Идентификатор, ПараметрыВыполнения)
, правда не сразу вышло, но в результате остановился по точке в этой процедуре. Спасибо за статью.
88. ybatiaev 54 08.12.20 17:28 Сейчас в теме
Добрый день!
А отладка заполнения ТЧ будет так работать?

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

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


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

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

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

&НаКлиенте
Процедура ПослеЗакрытияВопроса(Результат, Параметры) Экспорт
    Если Результат = КодВозвратаДиалога.Нет Тогда
        Возврат;
	КонецЕсли;
	ФормаВыбора = ПолучитьФорму("Справочник.Номенклатура.Форма.ФормаВыбора");
	ФормаВыбора.Открыть();
КонецПроцедуры
Показать
92. unichkin 1348 08.12.20 18:09 Сейчас в теме
(89) именно на клиенте метод не отладите, см. куда он потом на сервер стучится, там и работайте. Либо используйте расширение ИР (http://devtool1c.ucoz.ru/) - там отлаживается целиком вся обработка, и таких проблем не возникает.
94. ybatiaev 54 08.12.20 18:52 Сейчас в теме
(92) скачал, поставил. Уйма всего. Не направите на путь?
95. unichkin 1348 08.12.20 19:10 Сейчас в теме
(94) На том же сайте \ в расширении есть справка, все довольно просто и последовательно. Начните с команды "Отладка внешних обработок БСП (ИР)", только запускайтесь в толстом УФ клиенте. Дальше все интуитивно
ybatiaev; +1 Ответить
97. OldGarry 09.12.20 12:37 Сейчас в теме
(92) С бедой худо бедно разобрался. ) Спасибо.
Теперь попробую "ВызовСерверногоМетода" с вашим методом отладки...
Ссылка, на ИР у меня не открывается (404 ошибка). Есть какой-то секрет?
98. unichkin 1348 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'

?
Оставьте свое сообщение
Вопросы с вознаграждением