Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 1, свеженьких 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Не могу получить макет , ПолучитьМакет не работает в форме списка.          
alex_shkut Подменю пользователя
сообщение 23.02.24, 9:21
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 37
Из: Сумы
Спасибо сказали: 5 раз
Рейтинг: 4.3

Уже 15 лет работаю с 1С и тут туплю. Переменная не определена (ЭтотОбъект) Процедура или функция с указанным именем не определена (ПолучитьМакет) ЧЯДНТ.
Макет = ЭтотОбъект.ПолучитьМакет("Наряд"); // ошибка.


Сообщение отредактировал Vofka - 23.02.24, 9:41

denis84 Подменю пользователя
сообщение 23.02.24, 9:23
Сообщение #2

Оратор
Иконка группы
Группа: Местный
Сообщений: 428
Из: Украина
Спасибо сказали: 137 раз
Рейтинг: 138.5

alex_shkut @ Сегодня, 9:21 * ,
ТабДокумент = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("Макет");


Сообщение отредактировал denis84 - 23.02.24, 9:24

alex_shkut Подменю пользователя
сообщение 23.02.24, 9:32
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 37
Из: Сумы
Спасибо сказали: 5 раз
Рейтинг: 4.3

denis84 @ Сегодня, 9:23 * ,
Та же ошибка - Процедура или функция с указанным именем не определена (ПолучитьМакет)

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

МассПечать = НакладнаяСобрано.НайтиСтроки(Новый Структура("Выбрать",истина));
Сообщить(""+МассПечать.Количество());
    
Макет = ПолучитьМакет("Наряд");


Сообщение отредактировал Vofka - 23.02.24, 9:41

volodya1122 Подменю пользователя
сообщение 23.02.24, 9:32
Сообщение #4

Оратор
Иконка группы
Группа: Местный
Сообщений: 336
Из: Тернопіль
Спасибо сказали: 133 раз
Рейтинг: 135.7

alex_shkut @ Сегодня, 9:26 * ,

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

 Макет = Документы.НазваниеМоегоДокумента.ПолучитьМакет("Печать");


Сообщение отредактировал Vofka - 23.02.24, 9:41

Спасибо сказали: andreykyiv@bigmir.net,

alex_shkut Подменю пользователя
сообщение 23.02.24, 9:50
Сообщение #5

Общительный
**
Группа: Пользователи
Сообщений: 37
Из: Сумы
Спасибо сказали: 5 раз
Рейтинг: 4.3

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

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

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

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

AnryMc Подменю пользователя
сообщение 23.02.24, 10:34
Сообщение #6

Оратор
Иконка группы
Группа: Местный
Сообщений: 328
Спасибо сказали: 96 раз
Рейтинг: 97.6

alex_shkut @ Сегодня, 10:50 * ,

Цитата(alex_shkut @ 23.02.24, 10:50) *
В модуле списка документов.


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

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

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


Спасибо сказали: andreykyiv@bigmir.net,

alex_shkut Подменю пользователя
сообщение 23.02.24, 11:07
Сообщение #7

Общительный
**
Группа: Пользователи
Сообщений: 37
Из: Сумы
Спасибо сказали: 5 раз
Рейтинг: 4.3

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

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

Спасибо сказали: andreykyiv@bigmir.net,

AnryMc Подменю пользователя
сообщение 23.02.24, 11:18
Сообщение #8

Оратор
Иконка группы
Группа: Местный
Сообщений: 328
Спасибо сказали: 96 раз
Рейтинг: 97.6

Цитата(alex_shkut @ 23.02.24, 12:07) *
невозможно ВНЕ открытого Объекта


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


Объект не открыт - макет поглучен

Сообщение отредактировал AnryMc - 23.02.24, 11:18

Спасибо сказали: andreydv87,

alex_shkut Подменю пользователя
сообщение 23.02.24, 12:16
Сообщение #9

Общительный
**
Группа: Пользователи
Сообщений: 37
Из: Сумы
Спасибо сказали: 5 раз
Рейтинг: 4.3

AnryMc @ Сегодня, 11:18 * ,
Нету открытого Обїекта = нету Макета.
Ворос решен = ОбщийМакет;

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

Цитата(AnryMc @ 23.02.24, 11:18) *
Объект не открыт - макет поглючен


AnryMc Подменю пользователя
сообщение 23.02.24, 12:26
Сообщение #10

Оратор
Иконка группы
Группа: Местный
Сообщений: 328
Спасибо сказали: 96 раз
Рейтинг: 97.6

Цитата(alex_shkut @ 23.02.24, 12:57) *
Нету открытого Обїекта = нету Макета.
Ворос решен = ОбщийМакет;


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

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

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

    ТабДок.Вывести(Шапка);
    
    ВОЗВРАТ ТабДок;
    
КонецФункции

Спасибо сказали: andreykyiv@bigmir.net,

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 13.04.24, 8:41
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!