Добавить макет в расширение 1с
С появлением в 1С механизма “Расширение конфигурации” добавлять/изменять печатные формы стало по-настоящему просто. Рассмотрим на примерах изменение существующей печатной формы путевого листа и добавление своей формы и кнопки для вывода этой формы.
Как заменить типовую печатную форму 1С на свою?
Для этого нужно выполнить следующие действия:
- Создать новое расширение конфигурации.
- “Добавить в расширение ” документ путевой лист, печатную форму которого нужно изменить.
- Скопировать типовую печатную форму путевого листа (макет) в расширение.
- Отредактировать скопированную печатную форму в соответствии с вашей задачей.
- Скопировать типовую процедуру вывода на печать в расширение, изменить её имя и указать перед ней директиву препроцессора &Вместо(“Печать”). Изменить имя макета в коде процедуры.
Видео демонстрирует изменение типовой печатной формы:
Как добавить свою печатную форму в 1С?
Для этого нужно выполнить следующие действия:
- Создать новое расширение конфигурации (как это сделать показано в видео выше) или использовать ранее созданное.
- “Добавить в расширение” группы команд “Печать” и “Печать прочее”.
- “Добавить в расширение” роль Полные права и другие роли при необходимости настройки прав доступа к кнопке печати по ролям.
- Скопировать типовую печатную форму путевого листа (макет) в расширение.
- Отредактировать скопированную печатную форму в соответствии с вашей задачей.
- Скопировать типовую команду печати в расширение, изменить её имя, изменить имя макета в коде процедуры, при необходимости отредактировать программный код процедуры.
- Настроить права доступа для команды.
- Открыть модуль команды и отредактировать имя процедуры, указанной в п.7.
Видео демонстрирует добавление своей печатной формы и кнопки:
Ура, у нас наконец-таки интересная тема! В этом видео мы рассмотрим с вами такое явление, как расширение макетов.
Механизм расширений позволяет нам дорабатывать макеты типовых конфигураций, но в его использовании, как обычно, есть интересные особенности, о которых нужно знать.
О них сегодня и поговорим.
Желаю вам приятного просмотра!
Спасибо за уроки!
Напишите как вы получаете эти знания, чтобы нам рассказать? (ИТС, книжки и т.д.)
Или вы как тестировщик перебираете все возможные варианты?
(1) Тимур, сначала я посмотрел курс "Программирование в стандартных типовых решениях, использование БСП" Учебного центра № 3, в котором мне рассказали основы работы с расширениями. После этого я просто стал их использовать на практике и внимательно за ними наблюдать )
Также при подготовке видео я использовал книгу "Расширения конфигураций" Елены Хрусталевой.
Уважаемый Илья, не обратили ли вы случайно внимание на поведение объекта "штрихкод"? В типовой УТ 11 с ним тоже случается беда (и с ЛОГО) они перестают работать штатно. Увидел что полная замена (вместо объединения) решает вопрос - помогло. Спасибо. Но всё равно интересно, что не так :)
Макеты в расширении это конечно замечательно, но вот столкнулась с проблемой.
Если в расширение добавить общий макет "ОписаниеИзменений", тогда база при запуске 1С Предприятия зависает на 5-7 минут. Может подскажете, с чем связано и как это обойти?
п.с. да, если макет из расширения убрать , тогда запускается за 5-10 секунд. Дело именно в том что в расширении этот общий макет.
Не работает такое в ЗУП 3.1 вынес макет отчета в расширение, изменил его, и ничего. Макет из расширения не подтягивается.
Боль, связанная с тем, что почти каждое действие, которое надо сделать в обозревателе, будет казаться костылем по сравнению с тем, как это делается в 1Ске. Буду показывать на примере сортировки строк в табличке.
В ролике описывается текстовый правщик "Кодемир". Правщик сделан в формате ActiveX отображалки для работы в толстом клиенте в конфигурации "Ленстудия". Конфигурация "Ленстудия" - это наш ответ конфигуратору, и в следующих экрозаписях мы постараемся о Ленстудии рассказать более подробно. Правщик Кодемир зрительно выглядит очень похожим на текстовый правщик в конфигураторе. Это сделано осознанно для уменьшения нагрузки при одновременной работе с конфигуратором и Ленстудией. В экрозаписи обзорно показан основной функционал Кодемира.
Создание веб-морд для 1Ски это долго, сложно и тяжело. Создав достаточно большое количество проектов, стало понятно, что мы что-то делаем не так и надо менять подходы к построению веб-морд для 1Ски. Данный проект это попытка сделать некое решение для упрощения сложной работы веб-программиста и 1Сника одновременно. Попытка разработать некое универсальное решение, которое будет сделано по всем знакомым принципам быстрой разработки.
БП 3.0 Добавил макет акта о работах счет на оплату, отредактировал как надо все ок. Добавил УПД, ТОРГ12 он все ровно подхватывает макеты из конфигурации. знает кто в чем проблема? Кэш чистил, в бубном прыгал
Как создать макет в документе через расширение ?
Всем доброе время суток! Хочу предупредить,я новичок. Задача следующая: С помощью расширения.
1с 8.3 Бух как добавить внешнюю форму макет кс-2 кс-3
1с 8.3 Бух как добавить внешнюю форму макет кс-2 кс-3?
1с предприятие 8.2 добавить строку в макет печатной формы УПД
1с предприятие 8.2. Нужно добавить строку в макет печатной формы Универсальной приемосдаточной.
Как добавить реквизит на макет для печатной формы документа
Есть документ, использовала конструктор печати, и вынесла все необходимые реквизиты. Но в процессе.
Речь именно о расширении конфигурации?
Если так, то измен ли код для получения добавленных макетов вместо типовых?
Т.е. это не новый макет, а заимствованный?
А расширение хоть подключилось?
ну значит дьявол в деталях
или название такое же и из-за того глючит
или директивы нет или не та написана
или название макета на одну букву ошибся.
чудес-т как обычно не бывает
_ЕГОР_, Отследи весь код печати. Скорей всего есть обращение к Общему макету, а заимстчовал макет из обработки или документа.
Вообщем моя новая проблема видимо нашли причину этой - макет берется тот который находится в пользовательской части, поэтому расширение не подхватывается. Однако если я делаю использовать стандартный макет - то при печати тоже виснет сервак.
как это ?
попроси пользователя нажать на кнопку "i" и сказать - написано ли, что расширение подключено.
если да, то какая-то кислая отговорка про "не подхватывается".
Yulunga, у пользователей еще это расширение не подключено. а отговорка вполне хорошая, я проверил. могу попробовать объяснить лучше если не понятно)
_ЕГОР_, Не понятно. Объясни. Сталкивклся однажды с подобным, но это было связано с Общим макетом в БП. Что то делаешь не так.
Сейчас стандартно так - есть макет в конфигураторе, и есть какие то стандартные макеты в пользовальской части. Т.е. если все должно быть стандартно, то макет берется из конфигуратора. Если нужно там шрифты увеличить, то пользователь может из под пользоваетельской части сам открыть макет, и поменять шрифты, размеры и т.д. Тогда будет браться этот измененный макет, а не тот который в конфигураторе. Поэтому, когда я правил макет в расширении - то подхватывался тот пользовательский макет, а не из конфигурации. И я не понимал какого фига.
И как это сделать, если можно? Пытаюсь добавить макет схемы компоновки в расширение, он добавляется - но на редактирование не открывается.
(0) в смысле не открывается?
Я создавал макет - открывается пустой, когда в самом расширении пусто.
Или высыпает кучу ошибок, когда пихаешь туда готовый макет, но в расширении нет всех объектов, на которые ссылается СКД
Но чтоб совсем не открывался макет СКД - не видел такого.
Нажимаю ПКМ на макете схемы компоновки, делаю "добавить в расширение". Он добавляется.
Щелкаю дважды по этому добавленному в расширению макету - открывается окно параметров, где всего три параметра - имя, тип макета "схема компоновки данных" и принадлежность объекта "заимствованный".
Открыть на редактирование не получается.
Ага, речь идет именно про заимствование уже созданного в основной конфигурации СКД
А зачем он тебе на редактирование нужен, когда можно довольно просто и спокойно влепить через расширение свою собственную копию готового СКД и отредактировать его так, как тебе нужно?
з.ы. Я обычно делаю готовое СКД во внешнем отчете. И на финале встраиваю уже полностью готовое в расширение. Попытки его редактирования конструктором выдают слишком много дурных ошибок, а мне это не нужно - нужен результат, который достижим даже внешними отчетами, но их уже готовые реально удобней и красивей вызывать из встроенных в расширение.
(4) вариант СКД бывает гораздо проще встроить в дополнение к существующему, чем что-то с ним делать в расширении
Но я часто делаю именно копию от существующего отчета, придаю ему уникальность, чтоб он не испортил типовые варианты СКД своим существованием, а затем уже дорабатываю его в виде внешнего, поначалу никуда не встраивая, а после доработки делаю под эту новую версию вставку отчета в расширение с командой в расширении в заимствованной какой-то подсистеме - получается удобный интерфейс для пользователя.
(5) Это если отчет более-менее стандартный, а есть отчеты где всё гвоздями прибито и даже нет возможности гибких настроек.
1C. "Недопустимое значение параметра" при вызове макета в расширении
Дано: 1С (в данном примере конфигурация 1С:Университет ПРОФ), платформа 8.3.10. Создано расширение, в котором к документу добавлен новый макет. В модуле менеджера документа есть процедура, формирующая печатную форму на базе макета. Необходимо было заменить данную процедуру (при помощи директивы расширения "&Вместо") и заменить вызов встроенного макета на наш, добавленный в расширение.
Проблема: при вызове добавленного макета в момент его печати в режиме "1С:Предприятие" возникала ошибка при получении макета:
: Ошибка при вызове метода контекста (ПолучитьМакет)
Макет = Документы.ЗаявлениеПоступающего.ПолучитьМакет ("Расш1_МакетЗаявлениеПоступающего");
по причине:
Недопустимое значение параметра (параметр номер '1')
Код, вызывающий ошибку:
Варианты решения:
1. Добавить функцию, выполняемую на сервере, которая вызовет добавленный макет из документа:
А затем из заменяемой процедуры вызвать эту функцию:
(как оказалось этот способ не нужен. Причину читайте ниже)
2. Другой вариант - перенести макеты в общие и следующей командой вызвать (получить) макет из "Общие макеты":
------
Видимо это всё-таки какой-то глюк платформы (протестировано на 8.3.10.2252 и 8.3.10.2299), но если просто добавить пустой макет в общие макеты в расширении, то команда, ранее вызывавшая ошибку (ПолучитьМакет из макета документа без допфункций на сервере), начинает нормально работать. При удалении пустого общего макета, команда вызова макета из документа снова вызывает ошибку (даже если вынесена в функцию на сервере, как показано в способе 1).
Т.е. если всё-таки хочется сделать макеты нормально в документе (ожидая, что когда-нибудь этот глюк исправят), то нужно сделать макет-заглушку в общих макетах. Например:
При этом, если в расширении добавлено несколько макетов к документу, то "заглушки" достаточно только одной.
Если Вам понравилась статья, пожалуйста, поставьте лайк, сделайте репост или оставьте комментарий. Если у Вас есть какие-либо замечания, также пишите комментарии.
Читайте также: