Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 июл 2024, 20:40

доступ к внешней обработки из регламентного или из другой обработки

Автор andron81_81, 14 июн 2024, 09:41

0 Пользователей и 1 гость просматривают эту тему.

andron81_81

привет всем.

Не занимался подобным и на просторах не нарыл.
Задача стоит в создании регламентного. Регламентное должно запустить функцию во внешней обработке.
Но я для начала пытаюсь из внешней обработки (назовем её первая) запустить функцию в другой внешней (вторая).

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

А во второй обработке в форме Функция тест:
функция Тест()
возврат 555;
конецФункции

При нажатии на кнопку в первой обработке получаю ошибку :

Метод объекта не обнаружен (Тест)
{ВнешняяОбработка.Первая.Форма.Форма.Форма(16)}:         Р = Об.Тест();


не могу понять даже суть ошибки: что это за "Форма.Форма.Форма" ?

Максим75

andron81_81, сделайте Тест экспортной.
Только к экспортным процедурам или функциям можно обращаться извне.

andron81_81

Максим75, спасибо. Но к сожалению не помогло  :dfbbdrfb:

функция тест() экспорт
    возврат 555;
   
конецФункции   

LexaK

andron81_81,
ЦитироватьА во второй обработке в форме Функция тест:

в Форме!!!

перенесите ИЗ Формы В модуль обработки свою функцию Тест () Экспорт
(какие формы на сервере?)
если помогло нажмите: Спасибо!

andron81_81

LexaK, спасибо за отклик. но тоже не помогло в модуле обработка2 прописал так :
функция тест() экспорт
возврат 555;
конецФункции

Максим75

andron81_81, а Вы в справочнике ВнешниеОбработки заменили на измененную обработку?
Ведь там старое осталось. У Вас же сама обработка из двоичных данных заполняется.

andron81_81


andron81_81

всем огромное спасибо ! проблема решена , вы помогли

LexaK

andron81_81, так как у вас есть спр.ВнешниеОбработки
значит у вас используется какая-то БСП!!!

!!!
не надо самому писать выгрузку ВО в файл и запуск ее из файла
!!!

поищите в обших модулях уже есть код запуска ВО именно из спр.ВнешниеОбработки

пример
    ИмяОбработкиСлужебное = ДополнительныеОтчетыИОбработкиВызовСервера.ПодключитьВнешнююОбработку(ВнешняяОбработкаДляОткрытияСсылка);
там-же
// Создает и возвращает экземпляр внешней обработки (отчета).
// Подробнее см. ДополнительныеОтчетыИОбработки.ОбъектВнешнейОбработки().
//
// Параметры:
//   Ссылка - СправочникСсылка.ДополнительныеОтчетыИОбработки - подключаемый отчет или обработка.
//
// Возвращаемое значение:
//   ВнешняяОбработкаОбъект - объект подключенной обработки.
//   ВнешнийОтчетОбъект     - объект подключенного отчета.
//   Неопределено           - если передана некорректная ссылка.
//
Функция ОбъектВнешнейОбработки(Ссылка) Экспорт
   
    Возврат ДополнительныеОтчетыИОбработки.ОбъектВнешнейОбработки(Ссылка);
   
КонецФункции
если помогло нажмите: Спасибо!

andron81_81

LexaK,
вы пишите :
"поищите в обших модулях уже есть код запуска ВО именно из спр.ВнешниеОбработки"

я так понимаю вы намекаете, что модуль должен быть "ДополнительныеОтчетыИОбработки" . Но его я не нахожу.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск