[РЕШЕНО] Как открыть внешнюю обработку из кода

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Bkmz, 18 авг 2017.

  1. TopicStarter Overlay
    Bkmz
    Offline

    Bkmz Опытный в 1С

    Регистрация:
    6 июл 2013
    Сообщения:
    416
    Симпатии:
    11
    Баллы:
    29
    Есть конфигурация основной режим запуска "Обычное приложение". В нем есть обработка встроеная в конфигураторе в дерево метаданных. На форме есть команда которая должна открыть подключенный через предприятие внешний отчет.

    Имеется код:

    Код:
    &НаКлиенте
    Процедура ОткрытьОтчетПоОстаткамЛимитки(Команда)
       
        ПутьКВременномуФайлу = КаталогВременныхФайлов() + "ВременныйФайл" + Формат(ТекущаяДата(),"ДФ=ddMMyyyyhhmmss")+ ".tmp";
        Отчет = Справочники.ВнешниеОбработки.НайтиПоНаименованию("Ведомость по товарам на складах");
       
        Если Отчет = Справочники.ВнешниеОбработки.ПустаяСсылка() Тогда
            Возврат;   
        КонецЕсли;
       
        Справочники.ВнешниеОбработки.НайтиПоНаименованию("Ведомость по товарам на складах").ХранилищеВнешнейОбработки.Получить().Записать(ПутьКВременномуФайлу);
       
        Если Отчет.ВидОбработки = Перечисления.ВидыДополнительныхВнешнихОбработок.Отчет Тогда
            ВнешниеОтчеты.ПолучитьФорму(ПутьКВременномуФайлу).Открыть();
        КонецЕсли;
           
        УдалитьФайлы(ПутьКВременномуФайлу);
       
    КонецПроцедуры
    
    Временный файл создается в папке, но

    Дает ошибку на строке ВнешниеОтчеты.ПолучитьФорму(ПутьКВременномуФайлу).Открыть();
    такого содержания:

    Код:
    {Обработка.КонтрольЗакрытияДокументов.Форма.Форма.Форма(117)}: Значение не является значением объектного типа (Открыть)
      ВнешниеОтчеты.ПолучитьФорму(ПутьКВременномуФайлу).Открыть();
    В чем ошибка?
  2. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.246
    Симпатии:
    963
    Баллы:
    204
    В том, что нужно сделать:

    ВнешняяОбработкаОбъект = ВнешниеОбработки.Создать(ПутьКВременномуФайлу);

    ИЛИ

    Форма = ВнешниеОбработки.ПолучитьФорму(ПутьКВременномуФайлу, "ИмяПолучаемойФормы",........)
    Bkmz нравится это.
  3. TopicStarter Overlay
    Bkmz
    Offline

    Bkmz Опытный в 1С

    Регистрация:
    6 июл 2013
    Сообщения:
    416
    Симпатии:
    11
    Баллы:
    29
    Надо было во внешнем отчете добавить форму. Т.е. та что формируется по умолчанию не подходит. Надо было явно задать. Код рабочий
    Тему можно закрывать

Поделиться этой страницей