Уже 15 лет работаю с 1С и тут туплю. Переменная не определена (ЭтотОбъект) Процедура или функция с указанным именем не определена (ПолучитьМакет) ЧЯДНТ.
Макет = ЭтотОбъект.ПолучитьМакет("Наряд"); // ошибка.
ТабДокумент = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("Макет");
denis84 @ Сегодня, 9:23
,
Та же ошибка - Процедура или функция с указанным именем не определена (ПолучитьМакет)
alex_shkut @ Сегодня, 9:26
,
Согласен, ЭтотОбъект тут нету, так как список документов. Но просто получить Макет почему не получается?
МассПечать = НакладнаяСобрано.НайтиСтроки(Новый Структура("Выбрать",истина));
Сообщить(""+МассПечать.Количество());
Макет = ПолучитьМакет("Наряд");
alex_shkut @ Сегодня, 9:26
,
Где именно эта функция вызывается?
Макет = Документы.НазваниеМоегоДокумента.ПолучитьМакет("Печать");
volodya1122 @ Сегодня, 9:32
,
В модуле списка документов.
Я уже примерно понял - нельзя получить макет вне Объекта.
Нужно вынести его в общие макеты и оттуда вызывать.
Для таких случаев, когда Объекта нет нужно использовать Общие макеты.
Щас проверю и отпишусь.
ДокументОбъект.<Имя документа> (DocumentObject.<Document name>)
ПолучитьМакет (GetTemplate)
Синтаксис:
ПолучитьМакет(<Макет>)
Параметры:
<Макет> (обязательный)
А вот так заработало:
Макет = ПолучитьОбщийМакет("НарядНаПеревозку");
До этого у меня не было таких задач, где из списка документов необходимо печатать что нибудь.
Тут встала задача пометить в списке документы, распечатать этот список и перенести документы в другое состояние.
Ну вроде решилось )
AnryMc @ Сегодня, 10:34
,
Не, это толстый клиент.
В списке добавлена колонка - на Отправку.
Все помеченные надо распечатать водителю в наряд и сменить статус - "В доставке".
Так вот возникла проблема получения макета, который доступен только через Объект.
Решено Общим макетом.
alex_shkut @ Сегодня, 10:49
,
Для новичков - получить макет печатной формы документа невозможно ВНЕ открытого Объекта.
Если нужно что-то распечатать когда документ не открыт - используйте Общий макет (произвольный) и туда пихайте все что угодно, на ваш вкус.
текОбъект = Список.ТекущиеДанные.Ссылка.ПолачитьОбъект();
Мак = текОбъект .ПолучитьМакет("Наряд");
AnryMc @ Сегодня, 11:18
,
Нету открытого Обїекта = нету Макета.
Ворос решен = ОбщийМакет;
alex_shkut @ Сегодня, 11:46
,
Если на текущий момент документ не открыт (нету ЭтотОбъект) то и печатную форму получить нельзя. Макет.
Для прочих состояний используем общие макеты, которые можно получать независимо от форм.
//Модуль списка
&НаКлиенте
Процедура КомандаПолучитьМакет(Команда)
Для КАЖДОГО текСтр ИЗ Элементы.Список.ВыделенныеСтроки Цикл
ОтчетСформирован = ОбщийМодульСервер.РаспечататьНужныйМакет(текСтр);
ОтчетСформирован.Показать();
КонецЦикла;
КонецПроцедуры
//Модуль ОбщийМодульСервер
Функция РаспечататьНужныйМакет(текРКМ) Экспорт
ТабДок = Новый ТабличныйДокумент;
Макет = Справочники.ХХХХХХХХХХХХ.ПолучитьМакет("НужныйМакет");
//Макет = Документы.ХХХХХХХХХХХХ.ПолучитьМакет("НужныйМакет"); //Или что надо
Шапка = Макет.ПолучитьОбласть("Шапка");
Шапка.Область("R1C1").Текст = "Ура получилось!";
ТабДок.Вывести(Шапка);
ВОЗВРАТ ТабДок;
КонецФункции
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua