Дополнительная внешняя обработка #453424


#0 by ekat_kuzn
Обработка вызывается из Справочника(ВнешниеОбработки). Где в конфигурации поставить точку останова, чтобы попасть из этой точки останова в модуль исходной обработки?
#1 by Naumov
Если только в обработку нажатия в списке справочника, а потом нырять в обработку.
#2 by ekat_kuzn
спасибо, попробую
#3 by strange2007
Только надо учесть, что обработка сохраняется на диск и надо не пропустить ее открытие. Проще имитировать автозапуск.
#4 by ekat_kuzn
спасибо автозапуск - это вызов через Меню, Файл? для моей цели нужно именно через конфигурацию
#5 by Slon747
Не пойму. А что мешает сначала сохранить обработку на диск и спокойно отлаживать?
#6 by ekat_kuzn
Дело в том, что эта обработка давно отлажена. Нужно нажатием кнопок на форме этой главной обработки вызывать на выполнение другие обработки (которые не добавлены в справочник(ВнешниеОбработки)). На главной форме указывается период, за который выполняется обработка, значение периода нужно передавать в обработки, вызываемые из главной. Вот и ищу, как обратиться к форме обработки, открытой из доп-ных внешних обработок. Поставила точку останова в форме списка справочника(ВнешниеОбработки), процедура(СправочникСписокВыбор), там видно имя временного файла, этот файл записывается в ХранилищеВнешнейОбработки, как обратиться к открытой форме обработки еще не нашла.
#7 by acsent
в такой постановке задаче нерешаема
#8 by Megas
Не совсем понял что ты пишеш, но НужнаяФормаОбработки.Открыть("",ЭтаФорма)   то есть через владельца формы... попал ?
#9 by ekat_kuzn
задача нерешаема, потому что ее невозможно решить, или потому что я непонятно условие задачи написала? вопрос как раз в том, как написать НужнаяФормаОбработки, т.е. как получить эту форму программно в зависимой обработке, если код главной обработки хранится во временном файле (справочнике(ВнешниеОбработки)). А форма эта открыта уже, ведь из нее нажатием на кнопки и вызываются зависимые обработки.
#10 by ekat_kuzn
потом не могу нырнуть в главную обработку, вышла только на двоичные данные и хранилище.
#11 by ekat_kuzn
после этого просто выходится из процедуры СправочникСписокВыбор, в модуле главной обработки не останавливается
#12 by Rie
Что получить-то нужно? Просто остановиться отладчиком в обработке? Остановись в тот момент, где обработка сохранилась во внешнем файле. Загрузи этот файл как внешнюю обработку в Конфигуратор, попробуй остановиться в ней.
#13 by ekat_kuzn
Local SettingsTempv8_119_59.tmp - такое вот имя файла не открывать же его в конфигураторе?????? какой тогда файл нужен ?
#14 by Rie
Перечитывая ветку, всё меньше понимаю... Эту внешнюю обработку, которая главная - ты из принципа как-то менять не хочешь?
#15 by ekat_kuzn
почему не хочу? если нужно, можно и изменить цель: из формы обработки, которая занесена в доп-ные внешние обработки, вызывать, например 10, "подчиненных" (подчиненных, т.к. на форме выбирается для общий период, контрагент) обработок нажатием кнопок на форме, чтобы не заносить каждую из этих 10 обработок в доп-ные внешние обработки.
#16 by Rie
Тогда решение - в . При нажатии на кнопку формы главной обработки вспомогательной обработке сообщается, кто у ней владелец (в параметрах ПолучитьФорму). Далее эта обработка, зная своего владельца, может извлечь из него всё, что ей заблагорассудится. Или наоборот - создавая вспомогательную обработку-объект, задать ей реквизиты. Если эти вспомогательные обработки не занесены в справочник внешних обработок, то они обитают в файлах и
#17 by ekat_kuzn
У меня изначально в каждой вспомогательной обр-ке было написано так: ВыбНачПериода=ВнешниеОбработки.ПолучитьФорму(КаталогИБ+"ExtForms"+"Главная.epf",,,).ВыбНачПериода;  и главная обработка вызывалась не из доп.внешних обработок - всё работало. Приспичило сделать через доп.внешние обработки: ВыбНачПериода не берется с открытой формы, т.к. код находится теперь не по адресу КаталогИБ+"ExtForms"+"Главная.epf".
#18 by ekat_kuzn
т.е. Как указать владельца теперь?
#19 by ekat_kuzn
а у вспомогательных нет своих форм - всё необходимое заносится на форму главной. Это к слову, т.к. не имеет значения для данной проблемы
#20 by ekat_kuzn
хочу пробраться в модуль формы главной, чтобы узнать, как эта форма теперь называется. что-то связанное с временным файлом Например, при отладке печатных форм ставила точку останова в определенном месте в конфигурации, оттуда прыгалось в нужный модуль печатной формы. Здесь хочется также.
#21 by ekat_kuzn
при нажатии на строку с главной в форме списка доп-ных внешних обработок сначала формируется временный файл с именем "ИмяФайла", затем получают его форму (эта строка выделена на рис): Форма = ВнешниеОбработки.ПолучитьФорму(ИмяФайла); (думаю, что надо еще где-то в конф-ции поставить точку останова, где выполняется ПолучитьФорму, чтобы попасть во временный файл????? Когда работала с печатной формой , прыгалось во временный файл, где было видно, что происходит) затем форма открывается. Форма.Открыть;
#22 by ekat_kuzn
нет, вторая предложенная в точка останова не покатит, конечно.
#23 by ekat_kuzn
неужели не возможно ???????
#24 by Rie
Так а посмотреть параметры у метода ПолучитьФорму? Их там не один, и даже не два.
#25 by Rie
Есть внешние обработки. У них нет форм. И не надо. По нажатию кнопки - создать _объект_ внешней обработки, и дёргать нужные методы этого объекта, передавая им нужные параметры. Извини, но такое чувство, что ты пытаешься открыть правой рукой зонтик в левом ухе.
#26 by Rie
+ Двигайся не от форм, а от объектов. IMHO, тогда и наступит счастье.
#27 by ekat_kuzn
Насчет двигаться от объектов, вроде так и делаю: в модуле формы главной обр-ки написано: ... Обработка = ВнешниеОбработки.Создать(КаталогИБ+"ExtForms"+ИмяФайлаВспомогОбработки); ... КонецПроцедуры С помощью команды Создать перешла в мелкую обр-ку, там в модуле объекта: безFile=сред(СтрокаСоединенияИнформационнойБазы,7); ВыбНачПериода=ВнешниеОбработки.ПолучитьФорму(КаталогИБ+"ExtForms"+"Главная.epf").ВыбНачПериода; И такое работало при вызове главной через Файл, Открыть. А через сервис просто не получает значения с формы (напр, ВыбНачПериода 01.01.0001). Почитала про параметры ПолучитьФорму, пробовала так: .ПолучитьФорму(,КаталогИБ+"ExtForms"+"Главная.epf") - пишет каталог не найден. Как же нужно записать параметры? уже спрашивать стыдно(. У меня есть подозрение, что реализовать невозможно
#28 by Rie
Третий параметр у ПолучитьФорму задаёт форму-владелеца. В вызванной форме к форме-владельцу можно обратиться через свойство ВладелецФормы. Не надо получать ещё раз форму для главной обработки - нужно передать её вспомогательной форме, и всё. А ещё спокойнее - получив объект вспомогательной обработки, прямо из главной обработки задать ему нужные реквизиты (надеюсь, эти реквизиты не упрятаны в форму, а являются именно реквизитами обработки?).
#29 by ekat_kuzn
- Извините, что долго не отвечала: дома с обеда интернета не было. - "Вызванной формы" нет:  главная обработка имеет форму, код в модуле формы;  в мелких обработках форм нет, есть макет, код в модуле объекта. - реквизитов у обработок нет При нажатии на кнопки формы сразу формируются отчеты(у меня они реализованы в файлах-обработках), без открытия доп. форм. у главной ВыбНачПериода - реквизит формы Сейчас: у вспом создала реквизит обработки ВыбНачПериода Дописала в модуле формы главной после Обработка = ВнешниеОбработки.Создать(КаталогИБ+"ExtFormsMSFO"+ИмяФайла); (на этой строке ВыбНачПериода 01.01.2010; С ЭТОЙ СТРОКИ СРАЗУ ПРЫГАЕТСЯ В МЕЛКУЮ ОБР) следующее: Обработка.ВыбНачПериода = ВыбНачПериода; СЮДА УЖЕ НЕ ПОПАДАЕМ!!!
#30 by Rie
"Всё страньше и страньше". Есть обработки ("вспомогательные"). Реквизитов у них нет, только процедуры (с параметрами?). Раз синтаксический контроль проходят, то на "неопознанные летающие объекты" (имена реквизитов/переменных, отсутствующих в самой обработке) - не ссылаются. Экспортируемые подпрограммы этих обработок - доступны. Например, если во "вспомогательной" обработке есть процедура то можно написать: Обраб = ВнешниеОбработки.Создать(ИмяФайлаВспомогательнойОбработки); Обраб.ВыполнитьНечто(КуКу,Кука+Реку); Чего для счастья-то не хватает?
#31 by ekat_kuzn
Обраб.ВыполнитьНечто(КуКу,Кука+Реку); Если я правильно поняла, строки и записаны в модуле формы главной. Но со строки , минуя , попадаем в модуль вспом обработки!!!!!!! зачем тогда строка ??
#32 by Rie
Что есть "модуль вспомогательной обработки"? Его секция инициализации?
#33 by ekat_kuzn
модуль объекта "Обработка"
#34 by ekat_kuzn
открываем в конфигураторе файл обработки, в нем нажамаем Действия, затем "Открыть модуль объекта"
#35 by Rie
Если модуль не содержит выполняемых операторов (в секции инициализации) - говорить о "попадании в него" бессмысленно. Некуда там "попадать". Создали - и потопали дальше. Если у тебя в секции инициализации записано нечто нетривиальное - то оно может вести себя самым непонятным образом. Может, лучше вытащить из секции инициализации это в процедуру какую-нибудь?
#37 by Rie
В этом модуле объекта какие-нибудь операторы _в конце модуля_ есть? Если да - то зачем? Если нет - то никакого "попадания в модуль" не может быть.
#38 by ekat_kuzn
я не знаю, что такое "секция инициализации", скажите, пожалуйста. модуль объекта выглядит так: конечно, он не пустой, там алгоритм формирования конкретного отчета. ... Главная; Что не так?
#39 by ekat_kuzn
Главная;   - надо убрать?
#40 by Rie
Я бы убрал не только Главная, но и предыдущие операторы. ВыбНачПериода и Организация - сделал бы параметрами у Главная, а Макет = ... - перенёс бы в начало Главная. Ну и естественно, объявил бы Главная со словом Экспорт.
#43 by ekat_kuzn
СПАСИБО ОГРОМНОЕ, вроде получается!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! (есть еще моментик, постараюсь сама доделать) А я смотрела про временные файлы, двоичные данные, уникальный ключ(((((((( Т.е. секция инициализации - это область ниже процедур? Скажите, пожалуйста, можно ли на этом форуме хотя бы 1 раз изменить свой псевдоним?
#45 by Rie
Она самая (это о секции инициализации). Хотя "секцией инициализации" я называю её неправильно, 1С именует эту часть модуля "раздел основной программы". Понятия не имею (это о псевдониме). Меня как-то до сих пор светлая идея сменить псевдоним не посещала и вряд ли посетит в ближайшие лет 50.
#46 by ekat_kuzn
Спасибо Вам за терпение, доброжелательность и ценные советы! думала, что инженер знаний всё знает об этом форуме.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С