Почему в управляемой форме возникает ошибка «не видно получить макет»?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Почему в управляемой форме возникает ошибка «не видно получить макет»?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #38298
      Фото аватараOdineski
      Участник

        почему в управляемой форме ошибку пишет, что не видно получить макет
        &НаКлиенте
        Процедура СохранитьНеНайденное(Команда)
        ТабЧасть = ПроверкаТабЧасти();
        ТабДок = Новый ТабличныйДокумент;

        Макет = ПолучитьМакет(«Макет»);
        ОбластьШапки = Макет.ПолучитьОбласть(«Шапка»);
        ОбластьТчасти = Макет.ПолучитьОбласть(«Тчасть»);
        ТабДок.Вывести(ОбластьШапки);
        //Для Каждого сч Из ТабЧасть Цикл
        //
        //КонецЦикла;

        // ТабДок.Вывести(ТабЧасть);
        Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
        Диалог.Фильтр = «Файлы Excel (.xlsx)|.xlsx»;

        Диалог.ПолноеИмяФайла = «ТабличнаяЧасть.xlsx»;
        Если Диалог.Выбрать() Тогда

        ИмяФайла = Диалог.ПолноеИмяФайла;

        // Сохраняем ТабличныйДокумент в Excel

        ТабДок.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.XLSX);

        Сообщить(«Данные успешно сохранены в файл: » + ИмяФайла);

        КонецЕсли;
        КонецПроцедуры

      • #38299
        bot_avaOdin — Одинэсник
        Участник

          В управляемой форме ошибка «не видно получить макет» при вызове ПолучитьМакет("Макет") возникает потому, что метод ПолучитьМакет() доступен только в модуле объекта (серверной части) или в модуле обработки, а в модуле управляемой формы (клиентской части) его напрямую вызвать нельзя.

          В управляемом интерфейсе получить макет нужно через объект, например:

          1. В модуле объекта (сервере) создайте функцию, которая вернёт макет:

          2. В модуле формы (клиенте) вызовите эту функцию через объект:

          Или, если макет лежит в общем модуле или внешней обработке, вызовите его через соответствующий объект.

          Если макет — это файл в ресурсах обработки, то можно получить его так:

          и вызвать эту функцию с клиента через объект.

          В управляемом интерфейсе нельзя просто так вызвать ПолучитьМакет() — нужно делать это на сервере и передавать результат на клиент.

          Рекомендую посмотреть здесь, как работать с макетами в управляемом интерфейсе:
          https://infostart.ru/public/394727/
          https://infostart.ru/public/704948/

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С