Рассмотрим настройку и создание новых печатных форм в системе 1С 8.3.
Создание внешних печатных форм для управляемого приложения рассмотрено в отдельной статье.
Самый простой способ создания печатной формы — с помощью встроенного конструктора печатных форм. Рассмотрим пошаговую инструкцию по созданию и настройке печатной формы на примере создания печатной формы «Счет покупателю».
Содержание
Создание и настройка печатной формы 1С 8.3
Первый шаг — необходимо зайти в палитру свойств нужного нам документа и выбрать Действия — Конструкторы — Конструктор печати:
Первый вопрос системы — выбор варианта работы конструктора. Настройки аналогичны, если у Вас конфигурация работает в управляемом режиме — выберите его, если нет — выберите обычные формы. Мы рассмотрим создание на обычной форме.
Следующий шаг — выбор названия процедуры для печати. Назовём её «Печать счета».
Далее необходимо выбрать реквизиты, которые нужно указать в шапке печатной формы в том порядке, который нам необходим:
После выбора реквизитов шапки печатной формы 1С 8.2 следует сделать выбор данных для табличной части:
Когда и этот шаг сделан, нужно выбрать реквизиты подвала аналогично реквизитам в шапке.
На последней странице можно оставить всё по умолчанию и нажать ОК:
Что получаем в итоге?
Правильно оформленный макет печатной формы:
Процедура, полностью формирующая печатную форму документа:
Получите 267 видеоуроков по 1С бесплатно:
Которые можно настроить в 1С 8.2, как нужно нам.
Вывод вызова созданной печатной формы 1С
Для вызова созданной печатной формы нужно просто разместить кнопку на форму документа. Это сделать очень просто. Для начала создадим кнопку на форме, назовем её «Печать счета»:
Нажимаем на кнопку «лупы» у действия — мы попадем в модуль формы, где вписываем вызов процедуры печати вновь созданного счета:
Где «ПечатьСчета» — имя нашей процедуры.
Созданная и настроенная печатная форма выглядит так:
Другие статьи по 1С:
В дополнение — наш видеоурок по созданию внешних печатных форм и подключению их на примере конфигурации 1С Бухгалтерии:
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
Мы уже знаем, что такое справочник 1С, какие виды справочников бывают и что такое предопределенные элементы справочников 1С. В этой статье разберем формы справочников: какие виды форм можно создать, как их создавать и где можно посмотреть какие формы есть у конкретного справочника.
Посмотреть какие формы есть у справочника можно, используя конструктор справочника. Список форм можно увидеть на закладке «Формы».
Обратите внимание, в этом списке в верхней части имеются поля, в которых указываются основные формы. Основная форма будет открываться командным интерфейсом 1С по умолчанию. Например, когда мы кликаем на команду «Товары» в нашем интерфейсе, то будет открыта основная форма списка справочника «Товары», если она есть, а если её нет, то форма будет сгенерирована автоматически.
Основные формы можно посмотреть еще одним способом. Для этого необходимо открыть палитру свойства справочника.
В этой палитре свойств, на закладке «Представление» можно увидеть список основных форм справочника.
Вы заметили, что и в конструкторе справочника, и в палитре свойств «скрыты» формы для группы и для выбора группы. Поскольку наш справочник не иерархический, то нельзя создать эти виды основных форм. Если мы установим иерархию для нашего справочника, то эти поля станут доступны.
У справочников 1С существую следующие типы форм:
- Форма элемента – та форма, которая откроется пользователю, когда он начнет создавать новый элемент справочника, или редактировать текущий. Как правило, на ней должны быть поля, связанные с реквизитами справочника, которые может редактировать оператор;
- Форма списка – форма, в которой перечислены все элементы справочника;
- Форма выбора – форма, которая откроется, когда пользователь будет выбирать нужный элемент справочника в каком-то поле;
- Форма группы (для иерархических справочников) – та форма, которая откроется пользователю, когда он начнет создавать новую группу справочника или редактировать текущую.
- Форма выбора группы (для иерархических справочников) — форма, которая, откроется, когда пользователь будет выбирать нужную группу в каком-либо поле.
Создание формы справочника 1С
Для того, чтобы создать форму справочника 1С нужно на закладке «Формы» конструктора справочника выполнить команду «Добавить», после этого откроется конструктор формы справочника. В этом конструкторе нужно обратить внимание на тип формы (верхний список переключателей), этим выбором типа формы мы и определим дальнейшую функциональность формы. А также обратите внимание на флаг «Назначить форму основной», установка этого флага определяет, что наша форма в дальнейшем будет основной.
Мы создадим основную форму элемента. После нажатия кнопки «Далее», нам будет предложено выбрать реквизиты, которые пользователь сможет редактировать на форме.
После нажатия кнопки «Готово» у нас будет создана форма справочника, которая тут же будет открыта. Обратите внимание на конструктор справочника.
У нас форма добавилась в список внизу, и, также, заполнилось поле, в котором отображается основная форма элемента. А если, мы зайдем в палитру свойств справочника, то обнаружим, что свойство «Основная форма объекта» заполнено.
Именно наличие формы в этом свойстве и определяет, является она основной или нет!
Точно также можно создать и основную форму списка справочника.
После создание основной формы списка, также свойство справочника «Основная форма списка» станет заполненным.
Остальные статьи по теме конфигурирования:
Более подробно и основательно работа со справочниками, документами и другими объектами метаданных дается в моей книге:
Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
- Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника;
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Рассмотрим написание простейшей внешней печатной формы в 1С 8.3 для управляемого приложения на примере конфигураций Бухгалтерия 3.0 и Управление торговлей 11 (данная печатная форма будет работать в обоих этих конфигурациях).
Например нам требуется написать внешнюю печатную форму к документу Реализация товаров и услуг: вывести основные данные документа, а так же из табличной части Товары: номенклатуру, цену, количество и сумму.
Создание внешней обработки
В конфигураторе 1C Предприятия 8 создаем внешнюю обработку (Файл->Новый->Внешняя обработка), задаем имя, добавляем реквизит Документ с типом ДокументСсылка.РеализацияТоваровУслуг, он не является обязательным для работы печатной формы, но пригодится нам для ее регистрации в базе.
Создание макета печатной формы
Добавляем новый макет, тип макета оставляем Табличный документ. На макете создаем три области: Шапка, Данные и Подвал. Сделать это можно выделив нужное количество строк и нажав меню Таблица->Имена->Назначить имя (Ctrl+Shift+N).
После этого начинаем располагать в областях текст и параметры. В шапку выведем название печатной формы, номер документа и организацию, а также нарисуем границы шапки таблицы и напишем имена колонок. При создании параметра в свойствах ячейки, на закладке макет следует установить свойство Заполнение в значение Параметр.
В области Данные создадим параметры для вывода строк табличной части(Номенклатура, цена и т.д.), а в области Подвал для итогов по количеству и сумме.
Программирование
Зайдем в модуль объекта печатной формы Действия->Открыть модуль объекта.
Теперь в модуле объекта следует создать обязательную функцию СведенияОВнешнейОбработке(). Она необходима для регистрации печатной формы в справочнике ДополнительныеОтчетыИОбработки, в ней собирается структура с данными для подключения формы. Эта функция, а также ряд сопутствующих ей, практически одинаковы для всех печатных форм, поэтому их можно просто копировать в новую печатную форму ничего не меняя.
Рассмотрим содержание функции СведенияОВнешнейОбработке(). Для начала создадим ее в модуле:
Создадим структуру ПараметрыРегистрации в которой и будут храниться все данные необходимые для регистрации.
Создадим массив МассивНазначений в котором будут храниться наименования документов и справочников из которых будет производиться печать.
Наименование нашей печатной формы запишем в переменную Наименование, для того что бы не прописывать его в ручную вынесем получение наименования в отдельную функцию, которая будет получать его из представления внешней обработки.
А теперь заполним переменную.
Заполним МассивНазначений используя реквизит внешней обработки Документ. Также вынесем получение элемента массива в отдельную функцию.
А теперь добавим полученные данные в массив.
Конечно этот метод не является правильным для случая, когда у вас несколько назначений, но для одного вполне годится.
Приступим к заполнению структуры ПараметрыРегистрации.
Вид внешней обработки, может быть: ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов, ПечатнаяФорма и т.д.
Назначение заполним уже полученным массивом:
Наименование из уже заполненной переменной:
Номер версии можно поставить любой по желанию:
Безопасный режим не даст печатной форме вносить изменения в базу данных. Но она у нас вполне безобидна =), поэтому ставим значение Ложь.
В поле Информация вносим описание печатной формы для пользователя. Запишем туда Наименование.
Приступим к созданию команды, которая необходима для вывода на печать нашей печатной формы. Опишем колонки ТаблицыКоманд, вынеся это в отдельную функцию.
Вызовем сознанную функцию.
Добавим команду печати, вынеся этот процесс в отдельную функцию:
Параметры функции ДобавитьКоманду:
- ТаблицаКоманд — созданная в предыдущей функции Таблица значений с типовым набором полей;
- Представление — передадим в параметр Наименование печатной формы;
- Идентификатор — передадим в параметр полное наименование внешней обработки. Вынесем процесс получения в отдельную функцию:
- Использование * — здесь возможны два значения:
- ВызовСерверногоМетода — если обязательная функция Печать() будет находиться в модуле объекта печатной формы и выполняться на стороне сервера(в нашем примере будем использовать именно это значение);
- ВызовКлиентскогоМетода — если обязательная функция Печать() будет находиться в модуле основной формы внешней обработки и выполняться на стороне клиента;
Вызов функции выглядит так:
Осталось передать заполненную таблицу команд в ПараметрыРегистрации:
И возвратить их из функции:
На этом создание функции СведенияОВнешнейОбработке() завершено, все параметры необходимые для регистрации печатной формы собраны. Вот полный код этой и сопутствующих функций:
Приступим к написанию кода, который будет формировать нашу печатную форму. Так как при создании команды печати мы использовали параметр ВызовСерверногоМетода, то в модуле объекта создаем обязательную серверную процедуру Печать(если использовать ВызовКлиентскогоМетода, то процедура Печать должна быть клиентской и располагаться в модуле основной формы обработки).
- МассивОбъектов — массив содержащий ссылки на печатаемые документы или справочники(аналог СсылкаНаОбъект в обычном приложении);
- КоллекцияПечатныхФорм — таблица значений содержащая сформированные табличные документы;
- ОбъектыПечати — строковой параметр, в котором передаются имена макетов печатных форм перечисленные через запятую;
- ПараметрыВывода – параметры вывода табличных документов на печать.
В процедуре Печать нам следует сформировать табличный документ с данными нашей печатной формы и добавить его в Коллекцию печатных форм. Для заполнения табличного документа создадим в модуле объекта серверную функцию ПечатьФормы, передадим в параметр массив со ссылками на печатаемые документы(МассивОбъектов).
В функции создадим переменную для табличного документа, в который будет выводится печатная форма, получим макет и области макета.
Для того чтобы получить строки табличной части Товары всех печатаемых документов используем запрос.
В параметр запроса передаем МассивОбъектов, что бы указать в условии ГДЕ, что нам нужны данные только тех документов из которых выводим печатную форму. Чтобы получить выборку запроса, сначала выполняем его, а затем выгружаем.
Теперь при помощи цикла обойдем все ссылки из массива объектов и в одном табличном документесформируем печатные формы для всех выбранных документов.
В данном цикле начнем формирование печатных форм каждого из документов.
Заполним параметры шапки и выведем ее в табличный документ.
Из полученной запросом таблицы значений ОбщаяВыборка выберем строки только по текущему документу, для этого сформируем структуру отбора. Поле структуры должно называться также, как и поле таблицы по которому осуществляется поиск.
Теперь отберем нужные строки используя метод НайтиСтроки( ) и получим выборку по документу.
Далее в цикле заполняем параметры области Данные для каждой строки выборки документа и выводим их в табличный документ. Также в цикле считаем итоговые значения количества и суммы. Заполнять каждый параметр в отдельности мы не будем, а используем процедуру ЗаполнитьЗначенияСвойств(( , ) из глобального контекста, она копирует значения свойств в свойства . Сопоставление производится по именам свойств. Подробнее об этом можно прочитать в синтаксис-помощнике 1С Предприятия 8.
Заполним и выведем область Подвал.
Для того что бы печатная форма каждого документа выводилась на отдельном листе, поставим горизонтальный разделитель.
Возвращаем заполненный табличный документ из функции ПечатьФормы.
Код функции ПечатьФормы целиком:
Теперь осталось добавить сформированный табличный документ Коллекцию печатных форм. Для добавления табличного документа в коллекцию можно воспользоваться типовой процедурой ВывестиТабличныйДокументВКоллекцию из модуля УправлениеПечатью(процедура есть и в Бухгалтерии 3.0и в Управление торговлей 11). В параметры этой процедуры необходимо передать:
- КоллекцияПечатныхФорм — таблица значений содержащая сформированные табличные документы;;
- ИмяМакета — наименование команды печати;
- СинонимМакета — наименование печатной формы;
- ТабличныйДокумент — заполненный табличный документ.
Для параметров ИмяМакета и СинонимМакета используем уже созданные нами процедуры, которые использовались для заполнения сведений о внешней обработки. Таким образом процедура Печать будет выглядеть следующим образом:
Обратите внимание, что для заполнения параметра ТабличныйДокумент вызывается функция ПечатьФормы, которая описана выше.
На этом создание печатной формы в управляемом приложении завершено, файл с ней доступен можно скачать по ссылке. О том, как подключить печатную форму к документу будет рассказано в следующей статье.
Смотрите видео по созданию внешней печатной формы для управляемого приложения: