Добавить поле в макет 1с
В этом уроке мы научимся создавать табличные макеты в 1С, которые в дальнейшем могут быть использованы для программного формирования печатных форм.
К примеру, как я сформировал макеты для тестовой базы.
Я зашёл в форму обработки и перешёл на закладку "Макеты":
Далее я нажал на "Плюсик" и выбрал тип "Табличный документ":
Открылся редактор табличного документа:
Во многих моментах работа в редакторе похожа на работу в программе Excel, но есть свои особенности, на которых я бы хотел остановиться.
Как назначить имя области
Что я понимаю под областью? Это и несколько строк и несколько ячеек, в общем любая часть табличного документа, которая может быть выделена нами, используя левую кнопку мыши.
Вот выделенная область из двух строк:
А вот выделенная область из 2 столбцов:
А сейчас мы выделим область на пересечении первых двух строк и первых двух столбцов:
Так вот. Если мы сумели выделить нужную нам область, то, нажав на ней правой кнопкой и выбрав пункт "Свойства", мы сможем присвоить ей имя, по-которому мы будем к ней обращаться из нашего кода, формируя печатную форму:
Это базовый навык, которым мы должны овладеть, чтобы суметь делать табличные макеты.
Как посмотреть уже назначенные имена
А давайте посмотрим какие имена областям уже назначены в макете?
Для этого из меню конфигуратора выбираем:
Вот она наша только что назначенная область "Шапка":
А если сейчас выделим её в диалоге и нажмём "Выбрать", то в редакторе будет выбрана соотв. область ячеек:
Как задать параметр области
Часто при формировании печатной области требуется не просто вывести область из макета. Нужно ещё и заполнить определенные ячейки определенными параметрами.
Эти параметры мы задаём у области и заданные значения автоматически попадают в нужные ячейки.
Для этого в свойствах нужной нам ячейки (куда будет выводиться значение параметра).
Указываем в поле "Заполнение" значение "Параметр", а в поле "Параметр" пишем имя, по которому мы будем обращаться к этому параметру из кода:
Если же указать в заполнении не "Параметр", а "Шаблон", то можно будет в самой ячейке указать какой-то текст (шаблон) с использованием имени параметра в квадратных скобках:
В этом случае имя параметра (и его позиция в шаблоне) указывается в квадратных скобках.
Как задать параметр расшифровки?
Имя параметра расшифровки задаётся всё в тех же свойствах ячейки:
Уже потом из кода мы присвоим этому параметру (по имени "РасшифровкаНоменклатуры") нужное значение (ссылку на элемент номенклатуры).
И когда пользователь сделает двойной щелчок на этой ячейки - ему откроется значение, присвоенное параметру расшифровки (в данном случае откроется форма элемента номенклатуры).
Дальнейшее напутствие
Мы рассмотрели необходимые основы. А теперь внимательно исследуйте рабочий пример.
Скачайте и разверните эту базу. Найдите в ней обработку "ОбработкаДляИспытаний".
В её макетах есть табличные варианты. Исследуйте их как можно тщательнее, опираясь на приёмы, которые мы рассмотрели чуть выше.
Уже затем (в этой же обработке) переходите к примерам использования этих макетов. Только так вы научитесь создавать свои печатные формы на основе табличных макетов.
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
Наиболее сложным в применении макетов является заполнение колонки “Макет” на вкладке “Макеты” в конструкторе СКД.
В природе существует неплохая справка по этому вопросу. Она помогает понять основные принципы. Но все равно каждый раз приходится экспериментировать с разными видами макетов, чтобы понять можно ли решить конкретную задачу с помощью этого инструмента или нет. Поэтому мне пришла идея выложить результаты экспериментов в виде статьи, чтобы потом можно было к ним обращаться, и в будущем сэкономить время. Не обязательно вчитываться в текст, достаточно быстро пробежаться по скриншотам, чтобы выбрать вид макета, который больше всего подходит для решаемой задачи
В статье я немного повторю упомянутую справку, чтобы изложить некоторые важные детали более понятным и конкретным языком.
Эксперименты я проводил над отчетом следующего вида.
Макет поля
Этот макет применяется к конкретной ячейке, в отличие от макетов группировки и заголовка группировки, которые применяются к целой строке.
Его можно накладывать на поля группировки и на поля ресурсов
Макет заголовка группировки
Данный вид макета, как уже было сказано выше, применяется ко всей строке заголовка.
Если его назначить для самой верхней группировки, то он применится для всей шапки таблицы отчета. Как видно на рисунке, заголовки остальных группировок, а также заголовки ресурсов при этом скрываются. Поэтому приходится эти заголовки дорисовывать вручную. Иногда это и требуется, например для объединения ячеек в шапке
Применять этот макет для группировок второго и более нижних уровней обычно не имеет смысла, т.к. получаемый результат мало где можно применить
Однако если назначить строке макета высоту 1, то можно скрыть заголовки группировок текущего и следующего уровней. На рисунке ниже скрыты заголовки Должность и Сотрудник
Также заслуживает внимания использование типа макета Подвал, например для вывода подписантов.
Использование типов Общий итог, насколько я понял ни на что не влияют. Мне не удалось создать настройку с этими типами, чтобы она применилась
Макет группировки
Этот макет применяется ко всей строке группировки. Он может применяться для некоторых типовых задач, хотя догадаться как его использовать не просто
Если применить этот макет к самой верхней группировке с типом Заголовок, то под каждой группировкой повторяется шапка таблицы. Применять такой макет имеет смысл в тех случаях, например, когда нужно вставить разрывы страницы перед каждой группировкой
Если применить данную схему для группировки нижнего уровня, то получается вот что
Или, если дорисовать столбцы, то получится так
Если возникает задача изменить подвал с итогами, то нужно использовать этот макет с типом Общий итог подвал или Общий итог заголовок. Насколько я понял, эти два типа макета делают одно и то же
Макет ресурсов
Макет используется только для ТАБЛИЦЫ. Он применяется на пересечении группировок, указанных в настройках
Ограничения использования макетов
- Во многих случаях при использовании макетов теряется возможность настройки отчета пользователем. Он не сможет изменять порядок ресурсов и группировок, отключать ресурсы и группировки, т.к. при этом отчет принимает непонятный вид. Данный недостаток не распространяется только на макет поля.
- Нет возможности оформить с помощью макета ТОЛЬКО заголовок нужного ресурса (или группы ресурсов). Например, если нужно выровнять заголовки ресурсов по центру. Придется оформлять всю шапку таблицы полностью и получить ограничение из п.1
- Нет возможности оформить ТОЛЬКО заголовок итогов. Например, несколько раз требовалось заменить слово “Итого” на слово “Всего”. В этом случае придется отрисовывать всю строку итогов и получить ограничение из п.1 или придумывать что-нибудь другое.
Файлы
Все описанные выше примеры приложены к статье в виде файла для скачивания. Он содержит консоль СКД с набором схем (встроенным в нее). Запросы в примере не обращаются к таблицам базы данных, поэтому примеры запускаются на любой конфигурации в режиме управляемого приложения.
В
1) Для начала посмотрим, как выглядит печатная форма до изменений. В меню Кадры выбираем раздел Приемы, переводы, увольнения.
Открываем документ с типом Прием на работу.
Формируем печатную форму Т-1 по кнопке Печать.
При выводе на печать поле Основание остается пустым.
2) Для заполнения по шаблону переходим в меню Администрирование, раздел Печатные формы, отчеты и обработки.
Открываем пункт Макеты печатных форм.
Выбираем из списка печатную форму Прием на работу (Т-1).
Открываем форму для просмотра и редактирования.
В поле Основание дописываем «личное заявление [Работник] от [ДатаПриема].
Для выбранной ячейки необходимо установить свойство Шаблон. Выделяем ячейку и по кнопке Еще открываем пункт Свойства.
Указываем заполнение макета – Шаблон.
У каждой ячейки печатной формы может быть три состояния, определяемые свойствами этой ячейки.
По свойствам значения ячейки бывают:
a. Просто текст, не содержащий в себе значений, которые нужно выводить из документа. Не меняется,
b. Параметр – выводятся из документа, каждый раз меняются, в зависимости от данных документа,
c. Шаблон – содержит в себе и текст, и параметры.
В печатной форме они обозначаются:
a. Текст не имеет обозначений,
c. [] – параметр, который используется в шаблоне.
В связи с этим, поля Работник и ДатаПриема выделены соответствующим обозначением. Это параметры (меняются в каждом документе), которые используются вместе с текстом (слова, которые не меняются для всех документов).
Сохраняем настройки и смотрим, как теперь выглядит печатная форма.
Необходимо скорректировать настройки вывода даты.
Для этого возвращаемся в шаблон печатной формы Т-1 (Администрирование - Печатные формы - Отчеты и обработки). Вынесем параметр в отдельную ячейку, в свойствах укажем Значение макета – Параметр.
Открываем поле Формат. На вкладке Дата заполняем локальный формат даты (выбираем дату без времени) и проверяем пример.
Еще раз формируем печатную форму.
Всегда можно вернуть стандартный макет печатной формы, использовать измененный или совсем удалить измененный макет.
Статья подготовлена специалистами Компании «АНТ-ХИЛЛ»
Тел. (473) 202-20-10
При цитировании статей или заметок ссылка на сайт автора обязательна
Накопились вопросы и нужна помощь?
С удовольствием на них ответим и поможем все настроить! Обращайтесь по тел.
В программах 1С реализован очень удобный инструмент для редактирования печатной формы документов. Теперь опытный пользователь может сам вносить несложные изменения в макет, не привлекая программиста и не меняя типовой программный код в конфигурации программы.
Это очень важно, поскольку доработки по изменению типовых печатных форм без изменения конфигурации могут выполнять только программисты, создавая полноценную обработку печати и подключая ее через дополнительные внешние обработки.
Раньше, до возможности редактирования макета печатной формы, пользователь мог внести исправления в печатную форму вручную, выбрав соответствующую команду редактирования и добавив нужный текст или исправив цифры в полученной выходной форме. Но эти изменения нигде не сохранялись. При формировании печатной формы заново – все приходилось изменять снова.
Сейчас большинство макетов печатных форм доступны для изменений.
Список макетов можно открыть с помощью команды «Администрирование» - «Печатные формы, отчеты и обработки».
Далее, в открывшемся окне открываем гиперссылку «Макеты печатных форм раздела».
В открывшейся форме макета содержится 3 колонки:
1) Наличия изменений в макете (зеленый карандашик);
2) Полное наименование печатной формы;
3) Владелец макета - объект программы, документ или справочник, к которому относится печатная форма.
Навигация в форме «Макета печатных форм»
Найти необходимый макет можно по наименованию или части наименования. Для этого достаточно вписать поисковое выражение в поле слева, и по части выражения печатные формы сформируются списком:
Есть возможность открыть макет форм по определенному признаку с помощью поля «Показывать»:
2) Стандартные макеты (без изменений)
3) Используемые макеты с внесенными изменениями
4) Неиспользуемые макеты с внесенными изменениями
5) Все макеты с внесенными изменениями.
Просмотр макета осуществляется по кнопке «Открыть» или двойным кликом мышки:
Редактирование макета выполняется по двойному клику мышки с выбором режима открытия с редактирования или сразу по кнопке «Изменить»:
В открывшемся макете печатной формы пользователь может внести необходимые изменения.
Изменения, которые можно внести в макет, не навредив работе конфигурации «1С:Бухгалтерия предприятия» – это текстовые вставки с дополнительной информацией, ссылки на какие-то акции и любая другая нужная информация.
Для примера, внесены изменения в печатной форме «Счет-фактура по постановлению №451» в 29 строке (изменение выделено в красной рамке).
После внесения изменений макет необходимо сохранить, нажав на кнопку «Записать и закрыть».
Макет изменен - это подтверждается соответствующим (зеленый карандашик) значком в списке макетов.
Теперь отредактированный макет будет по умолчанию использоваться при печати.
Если что-то не получилось, то всегда можно вернуться к исходному макету. Для этого необходимо в открытом списке «Макетов печатных форм» выделить одним нажатием левой кнопки мыши наш измененный макет, далее нажать по кнопке «Еще» в верхней правой части и выбрать строку «Использовать стандартный макет».
При этом значок изменения макета становится неактивным, показывая, что имеется и пользовательский макет.
Логунова Яна,
Консультант Компании «АНТ-ХИЛЛ»
Тел. (473) 202-20-10
При цитировании статей или заметок ссылка на сайт автора обязательна
Накопились вопросы и нужна помощь?
С удовольствием на них ответим и поможем все настроить! Обращайтесь по тел.
В предыдущей статье мы научились выводить табличный документ на печать, применяя при этом команду формы, что, согласитесь, может быть неудобно: мы не можем распечатать документ из списка, мы не можем распечатать несколько документов из того же списка документов, если это нужно. Поэтому, в этой статье я покажу, как реализовать более универсальную возможность печати табличного документа, используя команду объекта. Для этого мы создадим подчиненную нужному объекту команду, при выполнении которой будет показываться один или несколько табличных документов.
С тем, как был создан макет табличного документа (его мы и будем использовать), можете ознакомиться в этой статье:
А как было реализовано заполнение табличного документа, и осуществлен простой способ его вывода можете ознакомиться в этой статье:
И так, создадим подчиненную нашему документу команду печати.
После выполнения команды Добавить контекстного меню, будет создана подчиненная документу команда, открыт модуль этой команды, и справа откроется окно палитры свойств вновь созданной команды.
Назовем новую команду ПечатьНакладной.
Следующим шагом, нам нужно выбрать группу, в которой эта команда будет отображаться. Поскольку команду должна быть доступна на управляемой форме (или в форме документа, или в форме списка), то и группу нужно выбрать, связанную с формой. Поэтому выберем группу «Командная панель формы. Важное», если мы так сделаем, то кнопка команды печати будет отображаться в командной панели управляемой формы.
Теперь, необходимо выбрать тип параметра, который будет передан в команду при её выполнении. Мы выберем ссылку на документ, которому эта команда подчинена.
В следующий параметр — «Режим использование параметра» установим значение Множественный, чтобы можно было выделить в форме списка несколько документов, и к ним применить команду.
На этом мы закончим настройку свойств команды и перейдем к основной разработке: получению данных документов и заполнение табличного документа этими данными.
Делать всю эту работу мы будет в модуле менеджера документа. В принципе, всю эту работу можно было сделать и в модуле команды, но мы сделаем в модуле менеджера, чтобы потенциально этот код можно было применять и в других случаях. В модуле команды мы будем просто выводить табличный документ на просмотр. Поэтому откроем модуль менеджера документа.
В этом модуле напишем экспортную функцию, в которую в качестве параметров будет передан массив документов (как мы его будем получать, разберем ниже).
В этой функции первым делом создадим программно табличный документ 1С и получим макет, который был создан ранее в статье.
О том как этот макет сделан, читайте здесь: Создание макета табличного документа в 1С 8.3
Теперь я сделаю иерархический запрос, в котором в верхнем уровне иерархии будут документы, на детальном уровне данные из табличной части.
Если всё нормально, то мы выводим шапку документа и таблицы, как мы это делали в предыдущей статье.
Нам осталось получить выборку табличной части документа, обойти её и заполнить соответствующую область.
Получим и выведем подвал, а также выведем горизонтальный разделитель таблиц, чтобы каждый документ печатался на отдельном листе.
Закончим работать с циклом и вернем табличный документ, если он заполнился (для проверки этого факта, я создал переменную, которой присваиваю истина, если табличный документ заполняется данными).
На этом мы закончим работать с функцией в менеджере модуля. Она в целом будет иметь следующий вид.
Откроем модуль команды, которую мы создали ранее.
В этом модуле уже будет существовать обработка команды в клиентском контексте, которая была образована при создании команды.
Обратите внимание на параметр ПараметрКоманды, в этом параметре и содержится массив документов. Это именно массив, потому что при создании команды мы в свойстве команды «Режим использования данных» указали Множественный. Именно этот массив мы и передадим в функцию, которую создали в модуле менеджера объекта.
Создадим в модуле команды функцию в серверном контексте, которая будет обращаться к ранее созданной функции из модуля менеджера документа и возвращать табличный документ. А если документ заполнен, то выведем его на просмотр.
Теперь мы можем распечатать сразу несколько документов из формы списка документов.
Для распечатывания нескольких документов, необходимо выделить мышкой нужные документы и выполнить команду печати.
Если Вы всё еще «плаваете» в конструкциях языка запросов, и у Вас вызывают трудности даже самые простые запросы, то рекомендую вам мой курс «Запросы в 1С от новичка до профи». Где эти и многие другие вопросы рассматриваются более подробно.
В чем особенность этого курса:
• Курс рассчитан на тех, кто не знаком с языком запросов в 1С;
• Учебный материал грамотно скомпонован и прост в освоении;
• Несколько десятков уроков;
• Полезные практические примеры;
• Все уроки изложены понятным и простым языком
Для моих читателей, купон на скидку 25%: hrW0rl9Nnx
Более подробно и основательно разработка в 1С дается в моей книге: «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
- Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника;
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Вступайте в мои группы:
One thought on “ Вывод на печать табличного документа в 1С 8.3. Используем команды объектов ”
Спасибо большое, очень помогло в разработке печати своего документа в УНФ.
Читайте также: