Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Не могу получить макет
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
alex_shkut
Уже 15 лет работаю с 1С и тут туплю. Переменная не определена (ЭтотОбъект) Процедура или функция с указанным именем не определена (ПолучитьМакет) ЧЯДНТ.
Макет = ЭтотОбъект.ПолучитьМакет("Наряд"); // ошибка.
denis84
alex_shkut @ Сегодня, 9:21 необходимо зарегистрироваться для просмотра ссылки ,
ТабДокумент = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("Макет");
alex_shkut
denis84 @ Сегодня, 9:23 необходимо зарегистрироваться для просмотра ссылки ,
Та же ошибка - Процедура или функция с указанным именем не определена (ПолучитьМакет)

alex_shkut @ Сегодня, 9:26 необходимо зарегистрироваться для просмотра ссылки ,
Согласен, ЭтотОбъект тут нету, так как список документов. Но просто получить Макет почему не получается?

МассПечать = НакладнаяСобрано.НайтиСтроки(Новый Структура("Выбрать",истина));
Сообщить(""+МассПечать.Количество());
    
Макет = ПолучитьМакет("Наряд");
volodya1122
alex_shkut @ Сегодня, 9:26 необходимо зарегистрироваться для просмотра ссылки ,

Где именно эта функция вызывается?

 Макет = Документы.НазваниеМоегоДокумента.ПолучитьМакет("Печать");
alex_shkut
volodya1122 @ Сегодня, 9:32 необходимо зарегистрироваться для просмотра ссылки ,
В модуле списка документов.
Я уже примерно понял - нельзя получить макет вне Объекта.
Нужно вынести его в общие макеты и оттуда вызывать.
Для таких случаев, когда Объекта нет нужно использовать Общие макеты.
Щас проверю и отпишусь.

ДокументОбъект.<Имя документа> (DocumentObject.<Document name>)
ПолучитьМакет (GetTemplate)
Синтаксис:
ПолучитьМакет(<Макет>)
Параметры:
<Макет> (обязательный)

А вот так заработало:
Макет = ПолучитьОбщийМакет("НарядНаПеревозку");

До этого у меня не было таких задач, где из списка документов необходимо печатать что нибудь.
Тут встала задача пометить в списке документы, распечатать этот список и перенести документы в другое состояние.
Ну вроде решилось )
AnryMc
alex_shkut @ Сегодня, 10:50 необходимо зарегистрироваться для просмотра ссылки ,

Цитата(alex_shkut @ 23.02.24, 10:50) необходимо зарегистрироваться для просмотра ссылки
В модуле списка документов.


На клиенте? На сервере?

В списке нет "Объекта" к которому вы пытаетесь обратиться - там основной реквизит "Список"

Можно добираться через ТекущиеДанные.ПолучитьОбъект(), Экспортируемую функцию Модуля объекта и ещё .............

alex_shkut
AnryMc @ Сегодня, 10:34 необходимо зарегистрироваться для просмотра ссылки ,
Не, это толстый клиент.
В списке добавлена колонка - на Отправку.
Все помеченные надо распечатать водителю в наряд и сменить статус - "В доставке".
Так вот возникла проблема получения макета, который доступен только через Объект.
Решено Общим макетом.

alex_shkut @ Сегодня, 10:49 необходимо зарегистрироваться для просмотра ссылки ,
Для новичков - получить макет печатной формы документа невозможно ВНЕ открытого Объекта.
Если нужно что-то распечатать когда документ не открыт - используйте Общий макет (произвольный) и туда пихайте все что угодно, на ваш вкус.
AnryMc
Цитата(alex_shkut @ 23.02.24, 12:07) необходимо зарегистрироваться для просмотра ссылки
невозможно ВНЕ открытого Объекта


текОбъект = Список.ТекущиеДанные.Ссылка.ПолачитьОбъект();
Мак = текОбъект .ПолучитьМакет("Наряд");


Объект не открыт - макет поглучен
alex_shkut
AnryMc @ Сегодня, 11:18 необходимо зарегистрироваться для просмотра ссылки ,
Нету открытого Обїекта = нету Макета.
Ворос решен = ОбщийМакет;

alex_shkut @ Сегодня, 11:46 необходимо зарегистрироваться для просмотра ссылки ,
Если на текущий момент документ не открыт (нету ЭтотОбъект) то и печатную форму получить нельзя. Макет.
Для прочих состояний используем общие макеты, которые можно получать независимо от форм.

Цитата(AnryMc @ 23.02.24, 11:18) необходимо зарегистрироваться для просмотра ссылки
Объект не открыт - макет поглючен

AnryMc
Цитата(alex_shkut @ 23.02.24, 12:57) необходимо зарегистрироваться для просмотра ссылки
Нету открытого Обїекта = нету Макета.
Ворос решен = ОбщийМакет;


АБСОЛЮТНО РАБОЧИЙ КОД:
//Модуль списка
&НаКлиенте
Процедура КомандаПолучитьМакет(Команда)
    
    Для КАЖДОГО текСтр ИЗ Элементы.Список.ВыделенныеСтроки Цикл
        
        ОтчетСформирован = ОбщийМодульСервер.РаспечататьНужныйМакет(текСтр);
        
        ОтчетСформирован.Показать();
        
    КонецЦикла;
    
КонецПроцедуры

//Модуль ОбщийМодульСервер
Функция РаспечататьНужныйМакет(текРКМ) Экспорт
    
    ТабДок = Новый ТабличныйДокумент;
    
    Макет = Справочники.ХХХХХХХХХХХХ.ПолучитьМакет("НужныйМакет");    
        //Макет = Документы.ХХХХХХХХХХХХ.ПолучитьМакет("НужныйМакет"); //Или что надо
    
    Шапка = Макет.ПолучитьОбласть("Шапка");

    Шапка.Область("R1C1").Текст = "Ура получилось!";

    ТабДок.Вывести(Шапка);
    
    ВОЗВРАТ ТабДок;
    
КонецФункции
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.