1с как обратиться к макету внешней обработки
Подскажите пожалуйста, как получить путь к макету внешнего отчета.
Так - "ОбщийМакет.ПФ_MXL_РасчетныйЛистокНастраиваемый" путь к общему макету
"Отчет.ПечатнаяФормаТ11.ПФ_MXL_Т11а" путь к макету отчета
А как к внешнему отчету?
"ВнешнийОтчет.АнализНачисленийИУдержаний.ПФ_MXL_РасчетныйЛисток" - не работает!
Ну по логите будет ВнешнийОтчет.ИмяОтчета.ИмяМакета. У вас макет отчета во внешнем отчете вставлен? может так надо ВнешнийОтчет.ИмяОтчета.Макеты.ИмяМакета
(1) А где он нужен? Если в модуле самого отчета, то просто Макет = ПолучитьМакет("ИмяМакета").
Если в Форме отчета, то типа того
(5) А пути, аналогичного вышеперечисленным, нет, только относительный от самого внешнего отчета, т.е. по сути само имя макета. Далее при получении самого макета в коде уже либо вызывается макет по полному пути, либо создается объект внешнего отчета и макет тащится оттуда
(5) Простого пути у внешних отчетов в принципе нет. Внешние отчеты находятся в хранилище.
Путь к хранилищу в Справочник.ДополнительныеОтчетыИОбработки.
Получив отчет из хранилища, вы можете получить из него макет.
Если нужен только макет, то можно его создать в расширении в общих макетах.
Вы скажите за чем вам нужно получить путь к макету. Возможно из за того что мы не понимаем зачем вам это мы и предлагаем стандартные решения чтобы получить именно макет а не путь
Вот смотрите что сделал. сделал внешнюю обработку, добавил макет. через метаданные получил полное имя
ЭтотОбъект.Метаданные().Макеты.ИмяМакете.ПолноеИмя() - вернуло "Макет.ИмяМакета"
То есть если имя макета будет РасчетныйЛист, то для внешней обработки вернет Макет.РасчетныйЛист
Может это поможет
То есть у любого объекта можно получить ОбъектМетаданных а по нему и полное имя - ПолноеИмя(). Для макета обработки будет "Макет.ИмяМакета"
(11)Создал внешний отчет РасчетныйЛист, там есть код:
МакетыВариантовОтчетовПечатныхФорм() это соответствие, которое выглядит так:
хотел сюда вставить путь к макету внешней обработки.
В общем решил по другому.
Спасибо
1. В конфигураторе 1C Предприятия 8 создаем внешнюю обработку (Файл->Новый->Внешняя обработка), задаем имя.
2. В модуле обработки пишем код. Постараюсь его максимально комментировать. Главное должно быть:
- функция ПечатьВнешнейПечатнойФормы табличного документа - которая выведет данные в макет
- функция Печать - вызывается из конфигурации! в нее передается массив печатаемых объектов
- и функция СведенияОВнешнейОбработке(). Она необходима для регистрации печатной формы в справочнике ДополнительныеОтчетыИОбработки, в ней собирается структура с данными для подключения формы. Эта функция, а также ряд сопутствующих ей, практически одинаковы для всех печатных форм, поэтому их можно просто копировать в новую печатную форму ничего не меняя.
3. Добавляем макет вывода печатной формы:
4. Сохраняем и добавляем в конфигурацию:
Подключается через Администрирование - Печатные формы, отчеты и обработки:
Создаете новую обработку, записывайте и при открытии документа Реализация, нажав на Печать - появляются доступные печатные формы с разными подписывающими.
Похожие FAQ
Как заполнить табличную часть формы программно? 8
Нужно по кнопке Заполнить - сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код заполнения ТЧ НаСервере П 17 правил для составления оптимального ЗАПРОСа к данным базы 1С 44
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C: Enterprise Development Tools 50
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем Google maps : вывод точек на карту и режим панорамы 7
В отличие от яндекс карт в GMaps можно использовать панорамы - за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С возможностью просмотра панора База 1С при запуске уходит в дамп и вылетает 1
В последнее время частенько обращаются пользователи у которых после замены или ремонта компьютера 1С не запускается, а точнее при открытии уходит в dump и вылетает. Как правило, решение одно: Отключить аппаратное ускорение видеокарты В Window Посмотреть все результаты поиска похожих
Еще в этой же категории
Как выгрузить все дополнительные обработки и отчеты в каталог? 6
Выгрузить все дополнительные обработки и отчеты в каталог всего за пару кликов. Простейшая обработка в один реквизит и команду. Набросайте элементы на форму и вставьте код в модуль формы обработки. И без всякого скачивания. Работоспособность п Добавление дополнительных отчетов и обработок в управляемом приложении 6
Для добавления отчета или обработки нужно в модуле добавить Функцию СведенияОВнешнейОбработке() Функция СведенияОВнешнейОбработке() Экспорт // Объявим переменную, в которой мы сохраним и вернем "наружу" необходимые данные ПараметрыРегистрации Посмотреть все в категории Внешние печатные формы, отчеты и обработки заполнения
1. В конфигураторе 1C Предприятия 8 создаем внешнюю обработку (Файл->Новый->Внешняя обработка), задаем имя.
2. В модуле обработки пишем код. Постараюсь его максимально комментировать. Главное должно быть:
- функция ПечатьВнешнейПечатнойФормы табличного документа - которая выведет данные в макет
- функция Печать - вызывается из конфигурации! в нее передается массив печатаемых объектов
- и функция СведенияОВнешнейОбработке(). Она необходима для регистрации печатной формы в справочнике ДополнительныеОтчетыИОбработки, в ней собирается структура с данными для подключения формы. Эта функция, а также ряд сопутствующих ей, практически одинаковы для всех печатных форм, поэтому их можно просто копировать в новую печатную форму ничего не меняя.
3. Добавляем макет вывода печатной формы:
4. Сохраняем и добавляем в конфигурацию:
Подключается через Администрирование - Печатные формы, отчеты и обработки:
Создаете новую обработку, записывайте и при открытии документа Реализация, нажав на Печать - появляются доступные печатные формы с разными подписывающими.
Похожие FAQ
Как заполнить табличную часть формы программно? 8
Нужно по кнопке Заполнить - сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код заполнения ТЧ НаСервере П 17 правил для составления оптимального ЗАПРОСа к данным базы 1С 44
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C и Google Maps 21
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш 1C: Enterprise Development Tools 50
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем 1С Предприятие что это? 12
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который выпускает компания 1С . Что такое Посмотреть все результаты поиска похожих
В процессе разработки печатных форм или отчетов на обычных формах разработчики 1С часто использовали команду «ПолучитьМакет» на стороне клиента. В управляемых же формах платформы 1С 8.3 эта команда доступна только на сервере или толстом клиенте. Так как подавляющее большинство пользователей работают в режиме тонкого, программистам придется изменить процесс, чтобы получить макет внешней обработки 1С.
Как получить макет на клиенте?
В этом нам поможет отдельная функция, работающая на стороне сервера. С помощью функции «РеквизитФормыВЗначение()» мы передадим объект в виде нашей внешней обработки в серверную функцию и там получим макет. В качестве реквизита формы выступает основной реквизит, выделенный на самой форме жирным шрифтом. Подробный код функции содержит следующие строки:
Рис.1 Подробный код функции
Передача объекта с клиентской формы на сервер;
Получение макета по наименованию. Наименование задается при добавлении макета во внешнюю обработку;
Рис.2 Получение макета по наименованию
Возвращаем полученный макет на клиент;
Это изменение призвано оптимизировать работу тонкого клиента и перенести «тяжелые» операции на сервер. Подобные разграничения пропагандирует компания 1С, стараясь оставить на стороне клиента лишь работы по прорисовке интерфейса. Чуть больше строк кода даст нам прирост производительности и более стандартизированный код. Если придерживаться единых стандартов 1С при разработке, то будет намного удобнее и понятнее поддерживать сложные конфигурации.
- Главная
- Программирование 1С
- 1С. Печать из формы внешней обработки, вывод табличного документа в общую форму "Печать документов" посредством БСП.
1С. Печать из формы внешней обработки, вывод табличного документа в общую форму "Печать документов" посредством БСП.
Изменение существующих или создание новых печатных форм – задача довольно распространённая. Как правило, в таких случаях создаётся внешняя печатная форма и подключается через стандартную подсистему дополнительных отчётов и обработок. Однако, иногда возникают задачи, в которых печатная форма должна формироваться с учётом данных, вводимых пользователями непосредственно перед печатью. То есть, сначала должна открыться форма, в которую пользователь вводит данные, и только потом выполняется команда "Печать".
Допустим, нам нужно создать печатную форму некой справки, часть данных которой вводятся в форме перед печатью. Кнопка "Печать" должна располагаться на форме.
Создаём внешнюю обработку. В модуле обработки, в функции СведенияОВнешнейОбработке () , устанавливаем параметры регистрации внешней обработки.
Обычно для внешних печатных форм параметру "Вид" присваивается значение "Печатная форма", но так как у нас сначала должна открываться форма, то устанавливаем значение "Дополнительная обработка".
В этой же функции СведенияОВнешнейОбработке () при обращении к процедуре ДобавитьКоманду () для внешних печатных форм в параметр "Использование" обыкновенно передаётся значение "ВызовСерверногоМетода" или "ВызовКлиентскогоМетода". Здесь же мы укажем значение "ОткрытиеФормы".
В итоге функция будет выглядеть так:
Создаём макет печатной формы.
Далее создаём основную форму обработки и необходимые реквизиты формы. Создаём и размещаем на форме команду "Печать". Формировать табличный документ для печати будем в обработчике этой команды. В зависимости от того, какие данные требуются для печатной формы, организовываем заполнение табличного документа либо на клиенте, либо на сервере. В данном примере заполняем на сервере и затем возвращаем табличный документ на клиент.
Итак, в модуле формы:
Табличный документ сформирован, осталось вывести его для печати в предназначенную для этого общую форму "Печать документов". Сделаем это с помощью стандартных механизмов БСП.
Дополним обработчик команды "Печать":
Теперь в результате выполнения команды "Печать" из формы нашей внешней обработки, табличный документ будет выводиться в форму "Печать документов", которая предоставляет удобный интерфейс для печати:
- 1С
- Управляемые формы
- Обработки
- Внешняя печатная форма
- Печать
- Библиотека стандартных подсистем (БСП)
Комментарии
Простите, а как получить данные того объекта, к которому будет привязана эта форма?
Печатная форма же должна заполняться данными из документа или справочника, к которому привязана.
Реально работающий пример в отличие от других советов. Большое спасибо, у меня наконец все получилось .
Читайте также: