Не могу попасть в модуль внешней обработки #663587


#0 by AlexSib
Подскажите, пожалуйста, столкнулся с такой проблемой. Создал внешнюю обработку, подключил к УТ 11, подключение прошло без проблем. При попытке выполнить команду обработки вылетает ошибка. Создал в модуле формы обработки вызов той же самой команды при открытии формы. Запустил обработку через "файл"-"открыть" все сработало как нужно, т.е. ошибка именно связана с подключением через "внешние отчеты и обработки". Начал смотреть отладчиком, поставил точку останова в общем модуле "Дополнительные отчеты и обработки", в процедуре "Выполнить обработку непосредственно". Процесс получения обработки из хранилища данных происходит успешно, ступор случается когда доходит до момента ВнешняяОбработка.ВыполнитьКоманду. В этот момент стрелка отладчика просто исчезает, т.е. видимо она проваливается в модуль объекта внешней обработки, но этот модуль у меня не открывается, стрелки, которая показывает текущую строку выполняемого кода просто нет. Насколько мне известно, в процессе выполнения 1С копирует файл внешней обработки в какой-то временный каталог и оттуда его открывает, но по адресу C:UsersUserAppDataLocalTemp я ничего похожего не нашел. Может кто-нибудь сможет помочь, как мне попасть в модуль внешней обработки? Подскажите, пожалуйста, уже третий день ломаю голову, ничего не получается :(
#1 by Wobland
подели на 0 в попытке и включи остановку по ошибке. и отладку на сервер
#2 by Повелитель
включи остановку по ошибке этого достаточно
#3 by Повелитель
А обработка действительно там создается: C:UsersUserAppDataLocalTemp Но только на время выполнения, потом сразу удаляется, поэтому ты ее не находишь.
#4 by AlexSib
Попробовал с делением на ноль, появляется такая ошибка: "Ошибка времени выполнения: {ВнешняяОбработка.ВнешняяОбработка.МодульОбъекта}: деление на 0 в модуле ВнешняяОбработка.ВнешняяОбработка.МодульОбъекта, строка 81." Курсор при этом встает на ОбщийМодуль.ДополнительныеОтчетыИОбработки, на строчке: ВнешняяОбработка.ВыполнитьКоманду(ИдентификаторКоманды); и самой стрелочки, которая показывает текущую строку нет. Если не делать деления на ноль, то тоже появляется ошибка: "Ошибка времени выполнения: {ВнешняяОбработка.ВнешняяОбработка.МодульОбъекта}: Ошибка при вызове метода контекста  (Записать) в модуле ВнешняяОбработка.ВнешняяОбработка.МодульОбъекта, строка 82." Курсор позиционируется на том же месте общего модуля, стрелочка текущей строки так же не видна.
#5 by Emilio
что и куда записываешь? открой обработку из файла под полными правами, в отладчике поставь точку останова на строку выше той, в которой ошибка и проверь, что туда записывается.
#6 by Kookish
Сейчас попробовал - действительно, при открытии внешней обработки создается несколько файлов tmp, но ни один по размеру не соответствует этой обработке, и либо там внутри не то, либо они не открываются. При запуске внешней печатной формы файл .epf создается. Можно попробовать прикрутить обработку как внешнюю печатную форму, а форму обработки открывать в функции Печать модуля обработки. И тогда по накатанной: УниверсальныеМеханизмы.НапечататьВнешнююФорму - ИмяФайла = ПолучитьИмяВременногоФайла("epf") - Точка останова, открыть файл в отладчике и т. д...
#7 by AlexSib
Процедура выполнения команды выглядит так: Сделал в модуле формы обработки еще такую процедуру: Захожу в УТ11, открываю из файла обработку, все срабатывает как нужно, в каталоге Temp на диске С: создается указанный файл, в нем записана нужная строка. Если пытаюсь выполнить команду через внешние обработки, то происходит вот такая фигня, как я описал выше. Буду пробовать, надеюсь что получится :)
#8 by hhhh
а зачем такое супердикое место выбрал для файла? "C:data.txt"? Самоубийца что-ли? выбери нормальное какое-нибудь имя, не в корне диска С.
#9 by AlexSib
А, ну да, изначально было C:Tempdata.txt Потом пробовал в разные папки на разные диски, суть остается: если открывать файл обработки команда спокойно выполняется через открытие формы, файл сохраняется в любую папку, хоть в корень диска С. Если делать через подключение во внешние обработки, то вылетает вышеуказанная ошибка :(
#10 by Kookish
Не вижу директив &НаКлиенте &НаСервере. Может при включении обработки в конфигурацию она работает на сервере? И там же пытается файлы сохранять?
#11 by AlexSib
По идее доступность у метода Записать везде, и на клиенте и на сервере.. Я попробовал директивы компиляции поменять, не помогает
#12 by Федор Сумкин
По идее (если я все правильно понял), у пользователя под которым выполняется Запись файла на сервере (а это скорее всего не тот пользователь, который запустил клиент) - недостаточно прав для его записи. Попробуй создать какую-то другую папку и в свойствах папки на закладке Безопасность разреши для "Все" полный доступ и пиши обработкой туда.
#13 by AlexSib
Сделал, не помогает, к сожалению.
#14 by AlexSib
Оказывается дело было в безопасном режиме, странно что пользователю под полными правами безопасный режим не дал записать файл. Вот так вышел на ошибку:
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям