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

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

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

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

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

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

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

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

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

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

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

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

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

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

Показать

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

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

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

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

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

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

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

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

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

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

Для варианта вызова ТипКомандыВызовКлиентскогоМетода() видимо отдельно придумывать нужно что-то, т.к. создать обработку на клиенте невозможно.
64. unichkin 1491 28.10.18 04:02 Сейчас в теме
(62) Везде работает, все равно где открыт конфигуратор. Про вызов клиентского - видимо, да, не сталкивался до сих пор, соотв. не было нужды что-то изобретать. Но вообще - возможно, в режиме толстого клиента УФ. Да и на тонком возможно, только гемора чуть побольше.
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 Сейчас в теме
Плюс как минимум за это:
Правой кнопкой мыши по файлу с шифтом - "Копировать как путь"
elga2012; OldGarry; Suslik_Johns; murat_; Gorus; +5 Ответить
83. Suslik_Johns 07.05.20 21:34 Сейчас в теме
(76) это точно!) тоже взяли на заметку
77. Gorus 48 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 1491 10.03.20 15:12 Сейчас в теме
(79) После регистрации в доп. обработках вызов надо закомментировать, посмотрите внимательнее видео
114. angabanga5 06.07.21 13:59 Сейчас в теме
(80) ну я закоментил, всеравно ошибка. потом закоментил и сохранил на всякий случай- ну тогда отладка не начинается)
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 1491 04.11.20 02:27 Сейчас в теме
(85) она здесь используется только потому что это доп. обработка, подключаемая через подсистему БСП. Если включен безопасный режим, платформа запрещает использование внешних ресурсов, и ничего не выйдет.
Если такого метода нет - значит нет БСП, либо внешняя обработка не через БСП работает. И надо иным способом это предусмотреть. Для начала просто попробовать запустить, если ошибок нет - все ок. Но навряд-ли кто-то в своей нетленке будет им пользоваться.
87. nollff 8 05.11.20 16:13 Сейчас в теме
Удалось попасть в экспортную процедуру ВыполнитьКоманду(Идентификатор, ПараметрыВыполнения)
, правда не сразу вышло, но в результате остановился по точке в этой процедуре. Спасибо за статью.
88. ybatiaev 57 08.12.20 17:28 Сейчас в теме
Добрый день!
А отладка заполнения ТЧ будет так работать?

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

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


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

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

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

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

Инженер - программист 1С/разработчик 1С (middle)
Иркутск
зарплата от 100 000 руб. до 180 000 руб.
Полный день

Программист 1С
Иркутск
зарплата от 100 000 руб. до 180 000 руб.
Полный день

Ведущий разработчик 1С
Новосибирск
зарплата от 120 000 руб. до 150 000 руб.
Полный день

Ведущий Консультант/Аналитик 1С
Москва
зарплата от 150 000 руб. до 250 000 руб.
Полный день