2 что такое конструктор печати

Обновлено: 01.05.2024

Продолжение одинэсной темы, ответы на книгу Радченко, занятие 2 и 3.

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

Реквизиты предназначены для описания наборов одинаковой для всех документов этого типа информации, стандартные реквизиты - дата и номер документа;

Табличные части - для описания набора информации, которая одинакова по структуре, но различна по количеству;

Проведение - действие, которое выполняет изменение других данных системы на основании информации документа;

В 1С:Предприятие создать новый документ. Данные заполняются как с помощью поля выбора, так и с клавиатуры;

Конструктор форм - это инструмент разработчика для создания форм, построенные по принципу "мастеров": ввод данных в определенной последовательности;

Редактор форм используется для создания и редактирования форм объектов прикладного решения. Редактор форм обеспечивает редактирования диалога формы, её реквизитов и редактирование модулей;

Основной интерфейсный инструмент, служит для управления и отображения записей Базы Данных; Примеры: кнопка, табличное поле, поле ввода и др;

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

Выбираем элемент формы, находим в палитре свойств событие, жмем на значок лупы. В модуле создастся шаблон процедуры - обработки события;

Общий модуль служит для хранения процедур, которые могут быть доступны для любых объектов конфигурации;

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

Чот я редко пишу, ну и ладно. Продолжаю сражаться, глава 7 и 8.

Для чего предназначен объект конфигурации Отчет?
Объект конфигурации отчет служит для описания алгоритмов, при помощи которых пользователь может получать необходимые ему выходные данные.

Как создать отчет с помощью конструктора схемы компоновки данных?
В конфигураторе выбираем ветсь "Отчеты", правый клик мыши - команда "Добавить". На вкладке "Основные" выберем кнопку "Открыть схему компоновки данных"



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


На самом деле, скажу я честно, эта "система компоновки данных" мне совсем не нравится. Гораздо проще работать с кодом, проще и понятнее, чесслово.

Как отобразить отчет в разделах прикладного решения?
Правый клик по отчету - вкладка "Подсистемы"

Занятие 8

Для чего предназначен объект конфигурации макет?
Объект конфигурации макет предназначен для хранения различных форм представления данных, которые могут потребоваться каким-либо объектам конфигурации или всему прикладному решению в целом; Одно из предназначений подчиненного макета - создание печатной формы этого объекта;

Что такое конструктор печати?
Конструктор печати - это инструмент для создания печатных форм (хотя на самом деле удобнее не пользоваться конструктором)

Как создать макет с помощью конструктора печати?
Выбираем объект конфигурации, которому нужен макет (это может быть документ, отчет, внешняя обработка), правый клик по нему, команда "Изменить", вкладка "Макеты", кнопка "Конструктор Печати".




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

Как изменить табличный документ?
Изменение размеров ячеек происходит аналогично Excell, а другие свойства - правый клик по ячейке, свойства, справа выползет палитра свойств.

Какая разница в заполнении ячейки табличного документа текстом, параметром или шаблоном?
Текст - то, что будет показано на экране в любом случае;
Параметр - будет заменен некоторым значением, которое может быть присвоено ему (параметру) средствами встроенного языка. Например, запросом можно заполнить таблицу с колонкой номенклатура. При выводе на печать таблица будет построчно выводится, причем колонка Номенклатура будет выгружаться на место, где стоял параметр Номенклатура. Естественно, это требует дополнительной работы, но тут мне сейчас лениво описывать.
Шаблон - текстовая строка, в определенные места которой будут вставлены значения параметров.

Как с помощью встроенного языка вывести в табличный документ новую область?
С помощью следующей конструкции:
ОбластьИмяОбласти = Макет.ПолучитьОбласть("ИмяОбласти");
Перед этим надо создать на макете данную область. Выделяем колонку или строку, правый клик, команда "Свойства" и именуем нужную область.

Как изменить внешний вид и поведение формы?
Внешний вид формы меняется непосредственно при редактировании формы, а поведение формы - правый клик по открытой форме, команда свойства. В палитре свойств есть целая куча настроек поведения



Как отобразить сумму по колонке таблицы?
Вводим в форму подвал, в окошке формы выбираем колонку, прописываем путь к данным подвала

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

Ключ записи (Однозначно позволяет идентифицировать запись) является совокупностью значений измерений регистра и периода;

Правый клик в конфигурации по ветке «Регистры сведений», команда «Добавить», на вкладке «Основные» выбрать периодичность


Ведущее – запись регистра сведений имеет смысл, когда существует в базе данных объект, на который ссылается данное измерение;

Где АктуальнаяДата – параметр типа «Дата», определяет точку на оси времени, в которой нас интересует значение розничной цены.

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

Перечисление – описание структуры хранения постоянных наборов значений, не изменяемых в процессе работы конфигурации;

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



суббота, 8 июня 2013 г.

1сное же!

Чот я редко пишу, ну и ладно. Продолжаю сражаться, глава 7 и 8.

Для чего предназначен объект конфигурации Отчет?
Объект конфигурации отчет служит для описания алгоритмов, при помощи которых пользователь может получать необходимые ему выходные данные.

Как создать отчет с помощью конструктора схемы компоновки данных?
В конфигураторе выбираем ветсь "Отчеты", правый клик мыши - команда "Добавить". На вкладке "Основные" выберем кнопку "Открыть схему компоновки данных"



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


На самом деле, скажу я честно, эта "система компоновки данных" мне совсем не нравится. Гораздо проще работать с кодом, проще и понятнее, чесслово.

Как отобразить отчет в разделах прикладного решения?
Правый клик по отчету - вкладка "Подсистемы"

Занятие 8

Для чего предназначен объект конфигурации макет?
Объект конфигурации макет предназначен для хранения различных форм представления данных, которые могут потребоваться каким-либо объектам конфигурации или всему прикладному решению в целом; Одно из предназначений подчиненного макета - создание печатной формы этого объекта;

Что такое конструктор печати?
Конструктор печати - это инструмент для создания печатных форм (хотя на самом деле удобнее не пользоваться конструктором)

Как создать макет с помощью конструктора печати?
Выбираем объект конфигурации, которому нужен макет (это может быть документ, отчет, внешняя обработка), правый клик по нему, команда "Изменить", вкладка "Макеты", кнопка "Конструктор Печати".




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

Как изменить табличный документ?
Изменение размеров ячеек происходит аналогично Excell, а другие свойства - правый клик по ячейке, свойства, справа выползет палитра свойств.

Какая разница в заполнении ячейки табличного документа текстом, параметром или шаблоном?
Текст - то, что будет показано на экране в любом случае;
Параметр - будет заменен некоторым значением, которое может быть присвоено ему (параметру) средствами встроенного языка. Например, запросом можно заполнить таблицу с колонкой номенклатура. При выводе на печать таблица будет построчно выводится, причем колонка Номенклатура будет выгружаться на место, где стоял параметр Номенклатура. Естественно, это требует дополнительной работы, но тут мне сейчас лениво описывать.
Шаблон - текстовая строка, в определенные места которой будут вставлены значения параметров.

Как с помощью встроенного языка вывести в табличный документ новую область?
С помощью следующей конструкции:
ОбластьИмяОбласти = Макет.ПолучитьОбласть("ИмяОбласти");
Перед этим надо создать на макете данную область. Выделяем колонку или строку, правый клик, команда "Свойства" и именуем нужную область.

Как изменить внешний вид и поведение формы?
Внешний вид формы меняется непосредственно при редактировании формы, а поведение формы - правый клик по открытой форме, команда свойства. В палитре свойств есть целая куча настроек поведения



Как отобразить сумму по колонке таблицы?
Вводим в форму подвал, в окошке формы выбираем колонку, прописываем путь к данным подвала

В этой статье мы научимся создавать внешнюю печатную форму для управляемого приложения 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. где правильно?
открыть модуль менеджера документа Счет на оплату покупателю — у меня там пусто. приехали, конечная. вот и поучились программированию.

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

Конструктор печати 1C предназначен для создания макета печатной формы некоторых объектов прикладного решения и процедуры на встроенном языке, которая будет формировать печатную форму на основании этого макета.

Конструктор печати работает со справочниками, документами, журналами документов, регистрами сведений и пр., и позволяет:

  • выбрать вариант работы конструктора (для форм управляемого или обычного режима);
  • создать новую команду или изменить существующую;
  • определить поля (реквизиты), которые будут печататься в шапке и таблицах макета;
  • задать параметры печати.



Конструктор печати 1С


В результате работы конструктора печати:

Если в конструкторе печати указано имя процедуры, которая будет выполнять построение печатной формы, и такая процедура уже присутствует в модуле, то конструктор перепишет ее заново, при этом введенный ранее в тело процедуры текст будет потерян.

Вызов конструктора печати 1С:


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


Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

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

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