Конструктор печати справочника создает

Обновлено: 14.05.2024

Заканчивается поддержка УПП

В соответствии с решением, принятым на Большом партнёрском семинаре 27-28 февраля 2021 г, фирма «1С» объявляет о том, что предполагает завершение поддержки конфигурации УПП через 5 лет — весной 2026 года. Подтверждение этого намерения и точный срок окончания поддержки, как сообщалось ранее, будут объявлены не менее чем за 3 года до завершения поддержки конфигурации УПП, то есть ориентировочно весной 2023 года.

По срокам поддержки локализованных для других стран версий конфигурации УПП решения не приняты, о планах прекращения их поддержки будет объявлено не менее чем за 3 года до вступления такого решения в силу.

Фирма «1С» рекомендует пользователям и партнерам не откладывать переход с 1С:УПП на более современные решения фирмы «1С» на последние годы поддержки конфигурации УПП, т. к. найти ресурсы на внедрение 1С:ERP в 2024-2026 годах может оказаться сложнее, чем в 2021-2023 годах. Кроме того, пользователи, осуществляющие переход с 1С:УПП на современные ERP-решения фирмы «1С» в ближайшие 2 года, получат дополнительные преимущества по акции «Аналитика и Академия ERP».

Введение

Не буду детально расписывать как проходил проект перевода Заказчика с УПП на ЕРП.

Немного введу в курс дела по проекту: Заказчик является крупнейшим предприятием пищевой отрасли. До начала проекта у Заказчика было УПП 1.2 (даже не 1.3) в 2021-м перешли на ERP 2.4. В целом по проекту делали переход с УПП + ДО с большим количеством внешних интеграций. Переходили на связку ERP + ЗУП + ДО. Начали с августа 2020 года. Порекомендовали ИТ-специалистам заказчика пройти курсы 1С. В ноябре, после обучения, специалисты присоединились к проекту (кто не потянул - уволился). Учет проектных задач в информационной системе «Канбан» и Google Doc, использовали встраиваемую справку в ERP, информационную систему Поддержки, встроенную прямо в ERP, Стандартное хранилище 1С. В обязательном порядке проводили еженедельные планерки с фиксацией задач и прогресса. Стандартный перенос из УПП в ERP пришлось переделать. Перенос остатков делали в январе. До апреля учет вели в двух системах в УПП и в ERP обменивались оперативными документами и НСИ по правилам обмена (чтобы снять нагрузку с работающих пользователей т.к. они все-таки бизнесом занимаются и не являются каторжникамиJ). За время учета в двух системах адаптировали интеграции и нестандартные подсистемы УПП, модифицировали железо и инфраструктуру серверов, настраивали права доступа, адаптировали мышление пользователей к проверкам данных и закрытию в ERP и ЗУП (не было обрубания канатов на 01.01). Гладко перешли с системы на систему без привязки к началу года. (Кому нужно обращайтесь, внедряли и УПП и ЕРП, понимаем и там и там).

В условиях пандемии Проект на 98% реализовывался удаленно, без посещения Заказчика.

Расскажу о задаче переноса печатных форм в сжатые сроки.

Одной из задач стал перенос около 300 печатных форм встроенных и подключаемых, адаптированных под различных клиентов, и самописной подсистемы настроек печати (через документы, регистры, справочники, реквизиты и алгоритмы в самом коде).

Исходные вводные при планировании этой задачи были такие:

  • Ограниченное количество свободных программистов и их переключение между проектами.
  • Недостаточная информация от пользователей по особенностям работы механизма печати в УПП.
  • Большой объем доработок, без описания, без данных об актуальности.
  • Необходимость реализации задачи к фиксированной дате.
  • Мы поняли, что переделывать все 300 печатных форм 1 в 1 пахнет безумством, и мы не сможем это сделать ни в бюджет, ни в срок. Стали искать варианты у коллег.
  • Идею подали коллеги, внедрявшие в 2019 крупное мясное производство ( принципы работы с торговыми партнерами у крупного производителя пищевой продукции одинаковые), переняли у них идею как сделать настройку общих печатных форм и параметризацию макетов вместо создания индивидуальных комплектов печати под каждого клиента. Таким образом, мы бы перешли от 300 печатных форм с параметрами в УПП к ограниченному количеству печатных форм в ERP (в районе 15) с понятным алгоритмом поддержки их в дальнейшем. Универсальные настраиваемые алгоритмы печати и макетов – мы назвали «Конструктор печати».
  • Далее потребовалось снизить объем задачи, провели 2 онлайн встречи с пользователями и ИТ-специалистами Заказчика, на которых определили:
    1. Список используемых видов документов
    2. Список используемых видов печатных форм
    3. Список контрагентов с особенностями печати (в основном ими оказались сети: Метро, Ашан, Лента, Билла и т.п.)
    4. Утвердили с ИТ-службой Заказчика и пользователями смену концепции печати комплектов форм для контрагентов на «Конструктор печати»
    5. Составили таблицу в Google Docs с планом работ

По итогам этого шага мы актуализировали список контрагентов со специфическими макетами (убрав старых ненужных или по которым перешли на ЭДО), сократили список видов печатных форм (далее по тексту – «ПФ») на 40% (убрали неиспользуемые), согласовали механизм реализации и разбили задачу на подзадачи для возможности передачи разным программистам.

Задача приняла очертания и была запущена в работу:

  • Для начала архитектором был разработал «скелет» системы.
  • Затем подключались другие программисты, которые адаптировали в рамках общей идеи механизмы в разных формах.

В итоге получилось расширение «Конструктор печати», являющееся подключаемой к ЕРП подсистемой, расширяющей стандартные возможности печати. Доработка предназначена для печати основных видов печатных форм для различных контрагентов. Печать идет с единым алгоритмом, персонифицирующимся параметрами, и единым макетом, персонифицирующимся индивидуальными макетами и возможностью ручной корректировки макета в режиме 1С:Предприятие. Т.е. вместо кучи печатных форм существует общий алгоритм печати, который в зависимости от заданных у контрагентов параметров, корректирует макет вывода печатной формы под него. Расширение разработано для систематизации около 300 печатных форм из УПП и их настроек, их перевода в ERP и дальнейшей юзабилити (единообразного и удобного использования пользователями и тех. специалистами) настройки печати комплектов печатных форм сетевых и других контрагентов с разными требованиями.

Как все организовано

Подключение подсистемы

Подсистема представлена в виде расширения и набора дополнительных подключаемых печатных форм


Подключение расширения

Открываем 1С:Предприятие, и далее в главном окне:

  1. Переходим в Главное меню - Настройки - Параметры - Отображать команду «Функции технического специалиста».
  2. Переходим в Главное меню - «Функции технического специалиста» - Стандартные - Управление расширениями конфигурации - Добавляем расширение.
  3. Перезапускаем сеанс 1С:Предприятие.

Рис. Форма подключения расширения


Подключение внешних печатных форм

Каждую печатную форму требуется сохранить как внешнюю в файл


Затем подключить в режиме 1С предприятие

В разделе «НСИ и администрирование – Администрирование – Печатные формы, отчеты и обработки – Дополнительные отчеты и обработки».

Лучше создать подгруппу для всех форм конструктора печати, для удобства настройки.

Затем последовательно подключить все формы.


Почему формы в расширении

Формы присутствуют в расширении ещё и для того, чтобы макеты, прикрепленные к ним, появились в типовом механизме редактирования макетов, что позволило бы редактировать макеты вручную.


Появляются в разделе «НСИ и администрирование - Печатные формы, отчеты и обработки – Макеты печатных форм».


Раздел «Конструктор печати»

В интерфейсе 1С:Предприятия при активации расширения появится раздел «Конструктор печати», содержащий ссылки на все нужные настройки и обработки.


Первоначальная настройка

Для настройки первоначально нужно заполнить справочник «Виды параметров», и далее переходить к индивидуальной настройке контрагентов.


Заполнить справочник "Конструктор печати: Виды параметров"

В форме списка справочника по кнопке [Заполнить параметры по умолчанию]

Навигационная ссылка: e1cib/list/Справочник.печать_ВидыПараметров


Параметры отобразятся сгруппировано по видам печатных форм.

Первоначальные параметры прописаны в модуле менеджера справочника «Виды параметров», но также могут быть добавлены вручную пользователем.



  • При создании нужно заполнить все параметры по аналогии с предопределенными настройками.
  • Имя для разработчика, указанное в параметре нужно использовать как имя переменной в Макете печатной формы.
  • Значения можно задавать константами (строковыми, числовыми, дата, булево) или получать кодом через переменную Док (= Ссылка на документ, из которого идет печать).

Заполнить настройки печати контрагента можно несколькими способами

1. В панели формы Контрагента, в меню «Ещё»


или в самих регистрах сведений «Конструктор печати: Параметры макетов» и «Конструктор печати: Макеты».

Навигационная ссылка: e1cib/list/РегистрСведений.печать_Макеты

Навигационная ссылка: e1cib/list/РегистрСведений.печать_ПараметрыМакетов

2. В общих настройка в разделе «НСИ и администрирование – Настройка НСИ и разделов – Продажи – Печать документов – Настройки печати комплектов документов»


3. В документе в меню «Печать» - «Конструктор печати с настройками»


Предпочтительней для пользователей использовать варианты 2.2 и 2.3 т.к. в диалоге будут объединены как настройки состава комплекта и количества экземпляров, так и выбор макетов и параметров.

Форма настройки «Комплекта печати» состоит из шапки (Вид документа, Организация, Контрагент) и закладок с настройками:

  • Основное – закладка, где настраивается состав комплекта и количество экземпляров, каждой печатной формы



Либо ручное редактирование макетов можно выполнить в регистре сведений «Конструктор печати: Макеты» или в типовом механизме настройки макетов в разделе «НСИ и администрирование - Печатные формы, отчеты и обработки – Макеты печатных форм»


У нужного макета жмем [Изменить]


Открывается макет печатной формы, который можно отредактировать


Также можно отменить изменения и вернуться к исходному варианту.

  • Параметры макетов – закладка, на которой по видам печатных форм, можно настроить параметры вывода печатных форм. Сами параметры и их обработка в основном уже закодированы в расширении в каждой печатной форме. Важно, что параметры хранятся в периодическом регистре сведений и начинают действовать с указанной даты «Действует начиная с».


Доступные виды печатных форм конструктора.

Формы прописываются в перечислении и оформлены в виде обработок.


Обработки печати встроены в расширение. Каждому виду печатной формы, соответствует 1 обработка. Формы предварительно сохраняются и подключаются как внешние к документам, автоматически определяя документы для подключения. Каждая обработка также имеет форму отладки, в которой задается ссылка на документ и вид печатной формы, тестовое выполнение по кнопке [Печать].



В коде обработки идет запрос на выбор макета и запрос на получение всех настроек контрагента.


Макет= РегистрыСведений.печать_Макеты.ПолучитьМакетДляПечати(Контрагент, Перечисления.печать_ТипыПФ.ТОРГ12);

ПараметрыМакета= РегистрыСведений.печать_ПараметрыМакетов.ПолучитьПараметрыПечати(Контрагент, Дата, Перечисления.печать_ТипыПФ.ТОРГ12);

Настройки затем выводятся в секциях макета, вот, например, вывод номера ТОРГ-12 и номера автомобиля


Будут выводиться в зависимости от настроек у контрагента


Порядок выбора настроек печати для контрагента.

Для контрагента могут быть не заданы настройки печати, тогда настройки берутся от головного контрагента либо группы контрагентов (Справочник «Иерархия контрагентов»)

  • Комплектность (список печатных форм и количество) – выбираются в порядке 1. Контрагент; 2. Головной контрагент.


Регистр сведений НастройкиПечатиОбъектов Модуль менеджера:

Ф ункция печать_КомплектПечатныхФорм(…)

  • Параметры и макеты ПФ - выбираются в порядке 1. Контрагент; 2. Головной контрагент. 3. Группа контрагентов.


Регистр сведений печать_ПараметрыМакетов_ Модуль менеджера:

Печать комплекта


Из формы документа

Осуществляется для конкретного документа по кнопке меню Печать – [Комплект документов …].


Из формы списка документов.

Либо осуществляется из журнала документа для нескольких выделенных строк документов, также по кнопке меню Печать – [Комплект документов ….]

В этой статье мы научимся создавать внешнюю печатную форму для управляемого приложения 1С 8.3, которое написано на БСП («1С: Бухгалтерия предприятия 3.0», «1С: Управление торговлей 11»). Причем создавать с нуля, не используя так называемые шаблоны. Вы сами научитесь создавать шаблоны внешних печатных форм.

Все это делается довольно просто))

И так, создадим новую обработку 1С.

Мы будем создавать внешний счет на оплату покупателю, поэтому обработку так и назовем: «СчетНаОплатуВнешний».

Внешняя обработка 1С 8.3

Сохраним ее на жесткий диск.

Зайдем в модуль обработки, и создадим экспортную функцию СведенияОВнешнейОбработке.

Внутри этой функции создадим структуру ПараметрыРегистрации, которая будет содержать определенный список полей. Каждое поле мы разберем в отдельности.

Создадим первый элемент структуры, он будет иметь ключ с название «Вид».

Значением данной связки КлючИЗначение идет одна из строк:

В нашем случае должна быть строка «ПечатнаяФорма».

Следующий элемент структуры должен иметь ключ с названием Назначение.

В качестве значения данного элемента должен выступать массив, где перечислены будут все документы или справочники, в которых будет выходить данная печатная форма.

Они должны иметь тип строка, и быть в следующем формате:

Документ.»НазваниеДокумента»

Справочник.»НазваниеСправочника»

У нас этот массив будет возвращать отдельная функция ПолучитьНазначениеОбработки.

Допишем созданный последним элемент структуры.

Создадим новый элемент структуры, ключ которого будет называться «Наименование», а в значении будет содержаться наименование обработки, которое будет отображаться в справочнике «Дополнительные внешние печатные формы».

Следующий элемент структуры будет иметь название «Версия», значением данного элемента будет версия обработки. Задается программистом на его усмотрение.

Следующий элемент имеет название «Информация», который содержит краткую информацию по обработке.

Следующий элемент имеет название «БезопасныйРежим», его необходим устанавливать в значение истина или ложь, в зависимости от того необходимо устанавливать или отключать безопасный режим во время выполнения обработки. Мы установим значение Истина.

И в последнем параметре необходимо добавить команды, которые будут поставляться обработкой. Для этого нам необходимо создать и заполнить таблицу команд. Разработаем функцию, которая создает и возвращает таблицу с определенным набором полей. Делать это будем в функции ПолучитьТаблицуКоманд.

Создадим функцию и таблицу значений внутри нее.

Теперь создадим пять колонок этой таблицы.

И первая колонка – Представление (тип строка).

Эта колонка – представление команды в пользовательском интерфейсе, т.е. то, что пользователь увидит при нажатии меню»Печать» в документе или справочнике.

Вторая колонка – Идентификатор.

Это может быть любая текстовая строка, уникальная в пределах данной обработки.

Третья колонка – Использование.

Параметр данной колонки типа строка, должен принимать одно из четырех значений –

  • ОткрытиеФормы – Открывает форму обработки.
  • ВызовКлиентскогоМетода – будет вызвана клиентская процедура из модуля формы обработки.
  • ВызовСерверногоМетода — будет вызвана серверная процедура из модуля обработки.
  • СценарийВБезопасномРежиме – тоже будет вызвана серверная процедура из модуля обработки в безопасном режиме.

Конкретно мы будем использовать вызов серверного метода.

Следующая колонка – показывать оповещение. Принимает значение истина или ложь, в зависимости от того надо показывать оповещение или нет.

И последняя колонка – модификатор. Это дополнительный модификатор команды. В нашем случае будет иметь название ПечатьMXL.

Теперь создадим процедуру, которая будет заполнять данную таблицу значений.

В данном коде все понятно.

В функции СведенияОВнешнейОбработке создадим команду и заполним ее.

Создаем таблицу значений:

Теперь заполним ее.

Еще раз пройдемся по параметрам.

  • Первый параметр, непосредственно таблица команд вновь созданная.
  • Второй параметр, как будет отображаться команда пользователю на форме (документа, справочника).
  • Третий – уникальный идентификатор команды, запомните его, он нам еще пригодится!
  • Четвертый параметр – использование, что вызовет Ваша команда.
  • Пятый параметр – показывать оповещение, мы не будем это делать.
  • Шестой параметр – модификатор, в нашем случае он всегда один ПечатьMXL.

Теперь передадим вновь созданную таблицу команд в структуру ПараметрыРегистрации.

И пусть наша функция СведенияОВнешнейОбработке возвращает данную структуру.

Все теперь наша обработка будет передавать нужные параметры регистрации, которые будут необходимы при создании элемента справочника дополнительные печатные формы и обработки. Обращаю ваше внимание, что название всех полей в структуре Параметры регистрации, а также название и типы всех колонок в таблице команд, должны быть те которые приведены в примере, иначе Ваша обработка не зарегистрируется.

Теперь в модуле объекта создадим процедуру Печать. Это процедура с четырьмя параметрами: МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода.

И вот начинается самое интересное, теперь вам необходимо войти в аналогичную процедуру в менеджере объекта счет на оплату покупателю, или в обработке, которая, по сути, является менеджером печати.

Как узнать, где находится нужная нам функция?

Откроем модуль менеджера документа Счет на оплату покупателю.

Открыть модуль менеджера объекта

И найдем процедуру ДобавитьКомандыПечати, которая заполняет список команд .

В этой процедуре найдем код, где добавляется команда для нужной нам печатной формы (список команд добавляется в таблицу значений КомандыПечати). И обратим внимание на свойство МенеджерПечати. Если этому свойству присваивается какое-нибудь значение — это путь к объекту метаданных, как правило к обработке, то значит при выводе нужной печатной формы будет отработан код в процедуре Печать, которая находится в модуле менеджере этого объекта (в обработке). А если это свойство в принципе не фигурирует при заполнении команды печати, то значит будет отработан код в процедуре Печать, которая находится в модуле менеджера нашего основного объекта (в нашем случае это документ СчетНаОплатуПокупателю)

Посмотрим на процедуру ДобавитьКомандыПечати в модуле менеджера документа «Счет на оплату покупателя».

Добавить команды печати

оскольку мы делаем внешнюю печатную форму счета на оплату, то нас интересует первое добавление в таблицу значений (см. свойство Представление), и мы видим, что в этом случае заполнено свойство МенеджерПечати, где указан объект Обработка.ПечатьСчетаНаОплату. Это значит, что нам нужно найти процедуру Печать в модуле менеджера обработки ПечатьСчетаНаОплату.

А если бы мы решили сделать внешнюю печатную форму договора счета на оплату (второе добавление в таблицу значений КомандыПечати), то нам нужно было бы найти процедуру Печать в модуле менеджера документа СчетНаОплатуПокупателя.

Откроем модуль менеджера обработки ПечатьСчетаНаОплату.

Модуль менеджера обработки ПечатьСчетаНаОплату

И раскроем процедуру Печать.

Процедура печать обработки ПечатьСчетаНаОплату

Нас интересует второе условие (где фигурирует строка «СчетЗаказ», см. идентификатор нужной команды в процедуре ДобавитьКомандыПечати модуля менеджера документа), скопируем это условие в процедуру Печать нашей внешней обработки.

Внимание! Копировать напрямую процедуру Печать из модуля менеджера (без разницы обработка это, документ или справочник) не следует. Поскольку у них отличается количество параметров, в последствие это приводит к ошибкам при работе.

Так же из модуля менеджера обработки скопируем процедуру СформироватьПечатнуюФорм

В этом коде есть строка, где заполняется таблица сведений счета на оплату.

Эта таблица получается при помощи процедуры модуля менеджера объекта (в нашем случае это документ СчетНаОплатуПокупателю). Найдем эту процедуру в модуле менеджера документа СчетНаОплатуПокупателю.

Получаем таблицу сведений счета на оплату

И скопируем её в модель нашей внешней обработки.

А сам код процедуры СформироватьПечатнуюФорму в модуле внешней обработки исправим, убрав все не нужное от туда.

Если мы сейчас сделаем проверку модуля внешней обработки, то выйдет две ошибки. Первая, что не определена переменная ПараметрыПечати в процедуре Печать, и, что не найдена функция ПолучитьТекстЗапросаДляФормированияТаблицыСведенийСчетаНаОплату в функции ПолучитьТаблицуСведенийСчетаНаОплату.

Создадим переменную ПараметрыПечати в процедуре Печать. Это будет простая структура.

А потом найдем функцию ПолучитьТекстЗапросаДляФормированияТаблицыСведенийСчетаНаОплату в модуле менеджера документа СчетНаОплатуПокупателю и скопируем её в модуль внешней обработки.

Процедура в модуле менеджера счета на оплату

Должен получится следующий состав процедур и функций модуля внешней обработки (для удобства я разделил их на две области).

Состав процедур внешней печатной формы

Еще раз делаем проверку модуля. Ошибок не обнаружено.

Продолжаем, теперь нам необходимо, что бы брался наш макет, и печатался по нашей команде.

Нас интересует процедура СформироватьПечатнуюФорму, а в ней мы уделим внимание методу ПечатьСчетаНаОплату общего модуля ПечатьТорговыхДокументов.

Метод ПечатьСчетаНаОплату

Очевидно, она непосредственно формирует табличный документ. Перейдем в этот общий модуль, и скопируем функцию ПечатьСчетаНаОплату в модуль нашей внешней обработки.

Копирование процедуры ПечатьСчетаНаОплату

Делаем проверку модуля внешней обработки. Ругается на несуществующие методы ВывестиЗаголовокПредупреждение и НомерСчетаНаОплату.

Ошибки при проверки модуля внешней печатной формы

Переходим в общий модуль, от куда мы взяли функцию ПечатьСчетаНаОплату, находим процедуру ВывестиЗаголовокПредупреждение , и копируем ее в модуль внешней обработки.

Функции общего модуля

А функция НомерСчетаНаОплату в общем модуле ПечатьТорговыхДокументов экспортная, поэтому мы просто исправим код в процедуре ПечатьСчетаНаОплату, где используется проблемная функция, сделав вызов этой функции из вышеупомянутого общего модуля.

Проверяем еще раз ошибки. Все нормально.

Не забудем в процедуре СформироватьПечатнуюФорму убрать вызов метода ПечатьСчетаНаОплату из общего модуля.

Теперь зайдем в скопированную функцию ПечатьСчетаНаОплату, и посмотрим, где в ней подтягивается макет.

Путь к общему макету

Находим данный макет в общих макетах и копируем его в макеты нашей обработки.

Копирование общего макета

Исправляем выделенный код, где подтягивается макет, следующий образом.

Теперь зайдем в наш скопированный макет, и сделаем какое-нибудь изменение, чтобы вы видели, что команда подтянула именно макет из внешней обработки.

Внешний счет на оплату

Вернемся обратно в процедуру Печать нашей внешней обработки.

Идентификатор печатной формы

И теперь осталась одна небольшая хитрость, без которой ваш внешний отчет не будет работать. Необходимо текст «СчетЗаказ» (это идентификатор типовой печатной формы).

Заменить на название идентификатора команды («СчетНаОплатуВнешний»).

Все, сохраняем данную обработку. И запускаем «1С: Предприятие» из конфигуратора 1С.

Идем в администрирование. В дополнительные отчеты и обработки.

Нажимаем на кнопку «Добавить из файла» и выбираем нашу созданную обработку.

Внешняя печатная форма Счет на оплату

Записываем. И смотрим, как выходит наша печатная форма.

Записываем. И смотрим, как выходит наша печатная форма.

Ссылка на дубль статьи на Инфостарте. В конце этой статьи приведены примеры внешних печатных форм счета на оплату, ТОРГ 12, ПКО , М11 и Требование накладная в одной обработке (документ Требование накладная). Все внешние печатные формы сделаны для конфигурации «1С: Бухгалтерия предприятия» (релиз 3.0.67.67).

Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»

  1. Книга написана понятным и простым языком — для новичка.
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Научитесь понимать архитектуру 1С;
  4. Станете писать код на языке 1С;
  5. Освоите основные приемы программирования;
  6. Закрепите полученные знания при помощи задачника;


Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Промо-код на скидку в 15% — 48PVXHeYu


Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:

можно оплатить вручную:

Яндекс.Деньги — 410012882996301
Web Money — R955262494655

Вступайте в мои группы:

2 thoughts on “ Создание внешней печатной формы в типовых конфигурациях 1С 8.3 ”

программирование не для всех.
то ПечатьXML, то ПечатьMXL, потом опять ПечатьXML. где правильно?
открыть модуль менеджера документа Счет на оплату покупателю — у меня там пусто. приехали, конечная. вот и поучились программированию.

Не суть так важно. Такая задача вероятно не так часто бывает. Но в любом случае внешние формы и т.п. наверное надо научиться делать.

Создадим справочник Курсы. В данном справочнике будут хранится текущие курсы.
Данный справочник будет иерархический. Для этого на закладке Иерархия включим данное свойство (рис.1).

Создадим дополнительные реквизиты :

  1. ДатаНачала . Т.к. это дата, то и тип будет дата . Данный реквизит сделаем обязательным. Для этого откроем свойства реквизита и найдем группу Представление и в свойстве Проверка заполнения выберем Выдавать ошибку (рис. 4).
  2. Продолжительность . Тип число и длинна 3. Данный реквизит будет содержать общее кол-во часов обучения.
  3. Стоимость . Тип число, длина 9 и точность 2. В результате максимальное число будет «999 999,99″.
  4. Преподаватель . В поле тип выбираем СправочникСсылка.Преподаватели , в результате данный реквизит будет ссылаться на элемент справочника Преподаватели.
  5. Квалификация . Тип строка и длина 250.

Также создадим таблицу Предметы с одним реквизитом Предмет. Тип реквизита строка, а длина 250 (рис. 5).

В предыдущих уроках мы создавали формы, из-за того что стандартные реквизиты имеют непонятное для пользователя название или они вовсе не нужны. Создавать ради этого формы было необязательно, этого можно было изменив синоним данных реквизитов или отключив их.

Изменим название, а точнее синоним у реквизита Родитель, он появился когда мы указали что справочник имеет иерархию.

Откроем список стандартные реквизиты нажав на кнопку Стандартные реквизиты (рис. 3). Выберем нужный реквизит, в данном случаи Родитель и зайдем в его свойства. Изменим синоним на требуемый, я назвал его раздел.

Создадим печатную форму

Для начала создадим команду. Хотя данный шаг лучше переместить в самый конец, т.к. мы будем ссылаться на процедуры которых не существует.

Перейдем на закладку Команды и создадим новую команду (рис.6). Я назвал ее ПечатьЭлемента.

Укажем ей группу Командная панель.формы.Важное, в результате у нас будет быстрый доступ из списка и из формы элемента.

Тип параметра команды укажем текущий справочник.

Также можно выбрать отображение команды и картинку (рис.7).

Думаю по комментариям в коде все станет понятно.

Теперь создадим макет. Для этого переходим на закладку Макеты и создаем новый с именем Элемент (рис.9 и 10).

Первое, чтобы изменить размеры столбцов для отдельной строки необходимо выделить ее и изменять ширину (рис.11). В результате система выдаст предупреждении что отключается для данной строки форматирование.

Отформатировать можно с помощью соответствующей панели инструментов (рис. 12).

Заходя в свойства ячейки можно настраивать ее, к примеру вертикальное положение (рис. 13).

Для того чтобы у нас заменялись данные можно использовать два способа заполнения Шаблон и Параметр(рис. 13 и 16).

Шаблон — слова заключенные в «[» и «]» будут заменятся на указанные данные, а все что вне скобок останется без изменения.

Параметр — задается только название реквизита или требуемого элемента.

Так же необходимо обозвать выводимые области, для вывода. Выдели строку, зайдем в свойства (рис. 14) и дадим ему имя.

Я использовал 4 области. Заголовок, данные, Таб, и ДанныеТаб.

Результат можно увидеть на рисунке 17.

Так же может просмотреть видео создания макета.


Теперь создадим процедуру обработки и заполнения документа на основании макета.

Макеты предназначены для хранения или отображения самых разнообразных данных, используемых как прикладным решением в целом, так и отдельными объектами конфигурации. Создание и редактирование макетов производится соответственно с помощью конструктора макетов. Конструктор макетов вызывается при создании нового макета объекта конфигурации:

  1. для создания макетов объектов конфигурации
  2. для создания общих макетов
  3. при написании текстов модулей
  4. верны утверждения 1, 2
  5. все утверждения верны

Вопрос 04.02 экзамена 1С:Профессионал по платформе. Для открытия окна конструктора макета необходимо.

  1. выполнить пункт "Действия — Добавить", если выбрана ветвь подчиненного объекта "Макеты"
  2. выполнить пункт "Действия — Добавить", если выбрана ветвь "Общие макеты
  3. установить курсор в текст модуля и выбрать пункт "Текст – Конструктор макета"
  4. верно утверждение 1 и 2

Вопрос 04.03 экзамена 1С:Профессионал по платформе. Макет какого типа может быть создан конструктором макетов?

  1. Active document
  2. Табличный документ
  3. XML документ
  4. Таблицу значений
  5. Все ответы правильные
  6. Верны 1, 2 утверждения

Вопрос 04.04 экзамена 1С:Профессионал по платформе. Какие данные может содержать макет, созданный конструктором макетов?

  1. Текстовый документ
  2. Географическую схему
  3. Дерево значений
  4. Все ответы правильные
  5. Верны 1, 2 утверждения

Вопрос 04.05 экзамена 1С:Профессионал по платформе. При работе с конструктором макета необходимо выполнять загрузку из файла при работе с типами макета:

  1. Табличный документ, Текстовый документ, HTML-документ
  2. Текстовый документ, Двоичные данные, Active document, Географическая схема
  3. Двоичные данные, Active document, Географическая схема
  4. HTML-документ, Двоичные данные, Active document, Географическая схема

Правильный ответ третий. Поле загрузки файла доступно из конструктора макетов при выборе указанных типов данных:

Вопрос 04.30 экзамена 1С:Профессионал по платформе. Как можно вызвать конструктор форм объектов конфигурации?

  1. Из окна редактирования объекта конфигурации, закладка "Форма", при создании новой формы
  2. При помощи контекстного меню из окна "Конфигурация"
  3. Никак. Конструктор форм является составной частью конструктора выходных форм
  4. Верно 1 и 2

Правильный ответ четвертый - конструктор вызывается либо при создании новой формы объекта, либо при создании новой общей формы из окна Конфигурация.

Вопрос 04.31 экзамена 1С:Профессионал по платформе. При создании формы конструктором формы был установлен флажок "Назначить форму основной". После сохранения этой формы можно ли будет назначить основной другую форму?

  1. Нет, пока не будет удалена текущая основная форма
  2. Нет ни при каких условиях
  3. Можно, предварительно сняв флаг "Основная" в свойствах формы, бывшей основной ранее
  4. Можно в окне редактирования объекта конфигурации

Новая ФормаЭлемента3 прописалась в поле Основная форма объекта конфигурации безо всяких дополнительных действий. При необходимости ее можно заменить на другую тут:

Вопрос 04.32 экзамена 1С:Профессионал по платформе. При создании формы конструктором формы количество размещаемых на форме командных панелей.

  1. не ограничено
  2. не более двух
  3. всегда - две (верхняя и нижняя)

Вопрос 04.33 экзамена 1С:Профессионал по платформе. После нажатия на кнопку "Далее", в соответствии с рисунком, на второй закладке конструктора общих форм можно будет:

  1. Определить состав констант и связанных с ними элементов управления, размещаемых на форме
  2. Определить состав констант, некоторых свойств глобального контекста и связанных с ними элементов управления, размещаемых на форме
  3. Определить состав некоторых свойств глобального контекста и связанных с ними элементов управления, размещаемых на форме
  4. Список реквизитов и связанных с ними элементов управления будет пуст (без возможности добавления)

Вопрос 04.34 экзамена 1С:Профессионал по платформе. Конструктор формы списка справочника на закладке "Далее".

  1. всегда позволяет разместить на форме и дерево групп и список элементов
  2. всегда позволяет разместить на диалоге список элементов и, кроме того, для иерархических справочников с иерархией групп и элементов, - дерево групп
  3. для иерархических справочников состав размещаемых элементов определяется видом иерархии справочника

Вопрос 04.35 экзамена 1С:Профессионал по платформе. Конструктор формы списка иерархического справочника при указании размещения дерева...

  1. сразу позволяет выбрать просмотр групп и элементов
  2. не позволяет выбрать просмотр групп и элементов. Это можно сделать позже - при работе с формой из конфигуратора
  3. не позволяет выбрать просмотр групп и элементов. Это можно сделать позже - при работе с формой из пользовательского режима

Вопрос 04.36 экзамена 1С:Профессионал по платформе. Можно ли в конструкторе формы элемента справочника на втором шаге (кнопка "Далее") указать размещение табличного поля, содержащего данные подчиненного справочника?

  1. Нет, такие действия нужно выполнять уже при работе с формой
  2. Да, при любых условиях
  3. Да, если текущий справочник является владельцем только для одного справочника

Правильный ответ первый. Например, справочнику Физические лица подчинен справочник Банковские счета, но в составе таблиц его нет, т.к. это отдельная сущность:

Вопрос 04.37 экзамена 1С:Профессионал по платформе. Можно ли в конструкторе формы документа на втором шаге (кнопка "Далее") указать размещение табличного поля, содержащего данные документа, на основании которого введен данный документ?

  1. Нет, такие действия нужно выполнять уже при работе с формой
  2. Да, при любых условиях
  3. Да, только если данный документ является владельцем только для одного документа

Правильный ответ первый, такой таблицы не будет доступно из конструктора, т.к. это отдельная сущность.

Вопрос 04.38 экзамена 1С:Профессионал по платформе. Можно ли в конструкторе формы документа на втором шаге (кнопка "Далее") указать размещение табличного поля, содержащего данные регистра, для которого данный документ может являться регистратором?

  1. Нет, такие действия выполняются уже при работе с формой
  2. Да, при любых условиях
  3. Да, только если документ может иметь движения только по одному регистру

Правильный ответ второй (но на самом деле - только для обычных форм). Движения являются неотъемлемой частью документа, поэтому могут быть отражены на форме:

Вопрос 04.39 экзамена 1С:Профессионал по платформе. В конструкторе формы документа при необходимости нестандартного размещения элементов управления.

  1. можно указать необходимость размещения на форме всех или только некоторых элементов управления, соответствующих составу подчиненных объектов
  2. можно указать требуемый вид элементов управления, соответствующих составу подчиненных объектов
  3. верно все вышеперечисленное

Вопрос 04.40 экзамена 1С:Профессионал по платформе. У документа уже определены все основные формы. При создании новой формы в конструкторе выставляют следующие флажки (см. рисунок). Что произойдет после того, как форма будет создана?

  1. Форма2 будет назначена основной формой документа
  2. Форма2 будет назначена основной формой списка документа
  3. Ничего, поскольку основные формы уже назначены
  4. Ничего, поскольку не выставлен флажок "Основная форма списка и выбора"

11 комментариев:

Стоит заметить, что на данный момент 1С не заносит табличные поля в колонки (вопрос 4.28), а располагает их ниже. Если табличных полей больше одного, то для каждого создаётся страница.

Другими словами, настройка "Располагать элементы управления в . колонку(и)" не действует на табличные поля, они всегда располагаются на всю ширину формы (страницы).

"Вопрос 04.32 экзамена 1С:Профессионал по платформе. При создании формы конструктором формы количество размещаемых на форме командных панелей.

1.не ограничено
2.не более двух
3.всегда - две (верхняя и нижняя)

Вот опять. Почему мне нужно запоминать не правильный вариант? Почему 1С не исправляет эту ошибку? Понимаю, что не здесь это решают. Просто крик души. Не может ли так случиться, что в какой то момент они исправят ошибку?

Даааа жалко что приходиться запоминать некоторые ответы типа "но на самом деле", это не первый и не последний вопрос экзамена такой =(

возможно в 4.32 имеется в виду, что на форме могут быть еще командные панели табличной части, например, а табличных частей может быть много

Именно так! Ведь никакого противоречия не наблюдается. И напротив, все логично и лаконично )
Конструктор создает столько командных панелей, сколько размещает табличных полей, плюс командные панели формы (1 для УФ и 2 для ОФ).

Вопрос 04.39 - ответ 3 так как, для управляемых и обычных форм можно указывать нужно ли выводить элемент на форму или нет. А для обычных форм в конструкторе формы можно также указать из списка и вид управления формы (поле ввода, поле выбора и тд).

По 4.38 хотел бы прояснить "но на самом деле - только для обычных форм". Так вот.
Термин "Табличное поле" используется сугубо в контексте ОФ. В контексте УФ этот элемент уже носит название "Таблица формы". Исходя из этого мы видим, что вопрос относится к конструктору именно обычной формы.
А раз так) то все встает на свои места и ответ на вопрос становится очевидным.

Вопрос 04.39 В конструкторе формы документа при необходимости нестандартного размещения элементов управления.

1. можно указать необходимость размещения на форме всех или только некоторых элементов управления, соответствующих составу подчиненных объектов. Верно, в левой части конструктора форм мы птичками можем выбрать все реквизиты в или только некоторые.

2. можно указать требуемый вид элементов управления, соответствующих составу подчиненных объектов. Верно в правой части конструктора формы мы можем указать тип элемента формы ( поле ввода, переключатель, надпись и т. д.)

Ага, Вводит в блуд 2 вещи, во первых не указано в вопросе что форма неуправляемая, во вторых за каким-то хреном написано "всех или только некоторых элементов управления, соответствующих составу подчиненных объектов", сама формулировка крайне крючкотворская и неинтуитивная, как будто тут речь об иерархии, или подчинении объектов ИБ, а по факту просто о реквизитах и табличных частях документа и их отражении на форме.

Читайте также: