Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

вывод результата во внешней обработке

вывод результата во внешней обработке
Я
   YamEgor
 
27.12.20 - 15:02
Добрый день! подскажите почему не находит макет? во внешней печатной форме вывожу результат в табличный документ и получаем ошибку:
Поле объекта не обнаружено (ПоРодителямПраваОбъектов)
{ВнешняяОбработка.ПоРодителямПраваОбъектов.Форма.Форма.Форма(6)}:    Макет = ВнешниеОбработки.ПоРодителямПраваОбъектов.ПолучитьМакет("Макет");
{ВнешняяОбработка.ПоРодителямПраваОбъектов.Форма.Форма.Форма(65)}:    ПроверитьПоРодителямНаСервере();

&НаСервере
Процедура ПроверитьПоРодителямНаСервере()
    ВсеРодители = Справочники.ИдентификаторыОбъектовМетаданных.НайтиПоНаименованию(ВыбратьРодителя,Истина);
    
    Макет = ВнешниеОбработки.ПоРодителямПраваОбъектов.ПолучитьМакет("Макет");
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ИдентификаторыОбъектовМетаданных.Ссылка КАК Ссылка,
        |    ИдентификаторыОбъектовМетаданных.Имя КАК Имя
        |ПОМЕСТИТЬ ВТ_Родители
        |ИЗ
        |    Справочник.ИдентификаторыОбъектовМетаданных КАК ИдентификаторыОбъектовМетаданных
        |ГДЕ
        |    ИдентификаторыОбъектовМетаданных.Родитель = &Родитель
        |    И НЕ ИдентификаторыОбъектовМетаданных.ПометкаУдаления
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    ВТ_Родители.Имя КАК Имя,
        |    КОЛИЧЕСТВО(ПраваРолей.Роль) КАК Роль
        |ИЗ
        |    ВТ_Родители КАК ВТ_Родители
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПраваРолей КАК ПраваРолей
        |        ПО ВТ_Родители.Ссылка = ПраваРолей.ОбъектМетаданных
        |
        |СГРУППИРОВАТЬ ПО
        |    ВТ_Родители.Имя
        |
        |ИМЕЮЩИЕ
        |    КОЛИЧЕСТВО(ПраваРолей.Роль) = 1";
    
    Запрос.УстановитьПараметр("Родитель", ВсеРодители);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
    ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
    ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
    
    ТабДок.Очистить();
    ТабДок.Вывести(ОбластьЗаголовок);
    ТабДок.Вывести(ОбластьШапкаТаблицы);
    ТабДок.НачатьАвтогруппировкуСтрок();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
        ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
    КонецЦикла;
    
    ТабДок.ЗакончитьАвтогруппировкуСтрок();
    ТабДок.Вывести(ОбластьПодвалТаблицы);
    ТабДок.Вывести(ОбластьПодвал);
    
КонецПроцедуры
   ДенисЧ
 
1 - 27.12.20 - 15:04
"ВнешниеОбработки.ПоРодителямПраваОбъектов"
А ты обработку-то зарегистрировал, чтобы так к ней обращаться
   YamEgor
 
2 - 27.12.20 - 15:05
извиняюсь не во внешней печатной форме , а во внешней обработке вывожу в таб док результат
   YamEgor
 
3 - 27.12.20 - 15:07
(1) а если ее не регистрировать просто открыть через файл открыть тогда как?
   ДенисЧ
 
4 - 27.12.20 - 15:08
(3) об = РеквизитФормыВЗначение("Объект")// или как называется основной реквизит

и об.ПолучитьМакет()
   YamEgor
 
5 - 27.12.20 - 15:11
(4) спасибо получилось
   Cthulhu
 
6 - 27.12.20 - 15:13
   Cthulhu
 
7 - 27.12.20 - 15:17
// типа

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.