Публикации. Публикации Как настроить параметры печати

Печать в 1С Бухгалтерии 8.2 выполняется аналогично печати документов в других программах. Самое главное — сформировать печатную форму, которую нужно вывести на принтер. Настройка печати документов в 1С 8.2 сводится, по сути, к подготовке этой самой печатной формы. Далее — дело техники. Рассмотрю наиболее распространённый случай случаев настройки печати документов в 1С 8.2 на примере форм документов (а есть и другие случаи!).

Также вам будет полезно узнать как делается экспорт данных из 1С , напримре, в таблицу Excel.

Тут была важная часть статьи, но без JavaScript её не видно!

Настройка печати форм документов в 1С 8.2

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


Не путайте кнопку "Печать" внизу формы документа и вкладку "Печать", где вводятся данные для печатной формы! А вот и результат настроенной и сформированной печатной формы 1С на примере показанного выше документа.

сайт_

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

сайт_

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

Видеоурок по настройке печатных форм документов 1С

Примеры настройки печатных форм приводятся для 1С Бухгалтерии 8.2. Это лишь базовые настройки печати документов.

Подведём итоги

Это всего лишь основные сведения по настройке печати документов в 1С 8.2. Сложного тут ничего нет. Если возникают проблемы с печатью, то это, как правило, касается проблем использования Windows, а вовсе не 1С Бухгалтерии.

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

Программа "1С:Бухгалтерия 8" позволяет настроить групповую печать однотипных документов. Такая необходимость может возникнуть в разных случаях: при завершении месяца, когда надо выставить большое количество актов об оказании услуг и счетов-фактур; при печати платежных поручений на налоги с фонда оплаты труда за головную фирму и представительства и филиалы и т.п. Во всех этих случаях неоходимо произвести в программе определенные настройки. Методисты фирмы "1С" на примере рассказывают, как это сделать.

Одной из возможных сервисных функций "1С:Предприятия 8" является групповая обработка справочников и документов, которая доступна в меню "Сервис". С ее помощью, в частности, можно настроить групповую печать документов. Рассмотрим порядок настройки групповой печати документов на конкретном примере.

Примечание:
Предприятие, оказывающее консультационные услуги, выставляет клиентам счета-фактуры в конце месяца. Печатные формы счетов-фактур необходимо предоставить клиентам. Бухгалтеру необходимо распечатать все выставленные покупателям счета-фактуры за период с 01.05.2008 по 31.05.2008 включительно.

Для печати всех выставленных покупателям счетов-фактур в меню "Сервис" выберем "Групповая обработка справочников и документов". На закладке "Объекты отбора" в поле "Тип объекта" выберем - "Документы". Теперь необходимо указать, по каким документам будет произведен отбор. При добавлении нового элемента откроется окно со списком документов, в котором выберем документ "Счет-фактура выданный" (см. рис. 1).

Рис. 1

Теперь перейдем на закладку "Отбор". Нам необходимо отобрать счета-фактуры, выставленные за период с 01.05.2008 по 31.05.2008, и исключить из списка счета-фактуры на аванс. При помощи кнопки (или клавиша Insert) в окне отбора добавляем необходимые условия отбора - см. рис. 2.


Рис. 2

При нажатии кнопки "Отобрать" будут отобраны счета-фактуры, удовлетворяющие заданным условиям. Список отобранных счетов-фактур автоматически сформируется на закладке "Обработка" формы "Групповая обработка справочников и документов". Из списка действий выберем "Печать документов" (см. рис. 3).


Рис. 3

Далее следует выбрать "Печать с предварительным просмотром" или "Печать без предварительного просмотра". Для печати реестра отобранных документов следует выбрать соответствующее значение - "Реестр документов".

Теперь нажимаем кнопку "Выполнить", на вопрос "Выполнить печать документов?" отвечаем "Да".

При этом, если выбрано значение "Печать без предварительного просмотра", сразу будет запущена процедура печати документов. Если же выбрано значение "Печать с предварительным просмотром", на экран будут выведены печатные формы всех отобранных счетов-фактур. В этом случае после просмотра документов необходимо запустить процедуру печати из главного меню программы (меню "Файл" -> "Печать"). Если выбрано значение "Реестр документов", на экран также будет выведена печатная форма реестра со списком отобранных счетов-фактур, которую можно распечатать из главного меню программы (меню "Файл" -> "Печать").

Реализованный в "Групповой обработке справочников и документов" алгоритм является универсальным и может использоваться не только для групповой печати документов.

При использовании обработки с группой справочников/документов доступны следующие действия: изменение даты, проведения документа, пометки на удаление, признака принадлежности к налоговому учету, ответственного, комментариев. Этой обработкой можно воспользоваться, например, для группового изменения реквизитов табличной части документов, даты документов.

Рассмотрим, как осуществляется печать документов из приложений "1С", работающих в режиме сервиса (через Интернет).

Как в локальной версии приложения, так и в сервисе, один и тот же документ можно распечатать в разных вариантах. Например, расходную накладную можно распечатать, как в виде регламентированной товарной накладной (ТОРГ-12), так и, собственно, в виде расходной накладной (для внутренних нужд организации). Поэтому перед началом печати документа, в форме документа следует выбрать желаемый вид печати. Это можно сделать в раскрывающемся меню Печать (как это показано на рис.1 на примере приложения "1С:Управление нашей фирмой" ).

Рис. 1. Начало печати

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

Рис. 2. Печать документов с единственной печатной формой

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

  1. Подтверждение печати обычно надо осуществлять два раза: сначала в форме печати 1С:Предприятия, а затем - в соответствующей форме браузера (рис. 3).
  2. Возможности редактирования пользователем макетов печатных форм в режиме сервиса ограничены. Если вы хотите использовать собственную печатную форму (например, с размещением на ней логотипа своей компании), то сделать это можно, выгрузив из сервиса типовую печатную форму, отредактировав ее в локальной версии приложения и загрузив обратно в сервис (более подробную информацию об использовании настраиваемых печатных форм вы найдете ).


Рис. 3. Печатная форма документа

Интерфейс форм печати документа различен в разных браузерах. Поэтому, если вы используете не один, а несколько браузеров для работы в сервисе, будьте готовы к тому, что привычный порядок работы при печати будет немного различаться, в зависимости от используемого браузера и его версии. Например, браузер Google Chrome предлагает в дополнительном диалоговом окне, выдаваемом непосредственно перед печатью, осуществить предварительный просмотр и задать настройки печати (рис. 4).

Рис. 4. Печать документа в браузере Google Chrome

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

Порядок печати

Приведем общую последовательность действий при печати документов (рис. 5).

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

Рис. 5. Последовательность действий при печати

  1. При необходимости, отредактируйте текст в печатной форме. Для этого дважды щелкните на нужной ячейке формы и измените находящийся в ней текст (рис. 6).



Рис. 6. Редактирование печатной формы

  1. Если вы хотите сохранить готовую печатную форму документа в файл на локальном компьютере, нажмите кнопку Сохранить в печатной форме (см. рис. 3), выберите в открывшемся диалоговом окне Сохранение печатной формы желаемый формат файла, установив рядом с ним флажок, и нажмите кнопку Сохранить в(рис. 7).
    Примечание: Можно задать несколько форматов одновременно - в этом случае будет создано несколько файлов с соответствующими расширениями.


Рис. 7. При желании, сохраните файл в нужном формате

  1. Нажмите кнопку Печать в окне печатной формы (см. рис. 3).
  2. В открывшемся окне печати браузера, при необходимости, выберите параметры печати (принтер и т.д.) и нажмите кнопку Печать еще раз (рис. 8).

В результате, документ будет распечатан на принтере.


Рис. 8. Начало печати при помощи системного диалога браузера (используется Internet Explorer)

Ответы на частые вопросы

1. Что такое способ печати? Какой способ печати лучше выбрать?

Способ печати выбирается в настройках 1С:Предприятия, доступных по команде Главное меню / Сервис / Параметры (рис. 9).

Рис. 9. Главное меню 1С

Параметр Способ печати (рис. 10) определяет степень влияния пользователя на макет документа:

  • PDF - печать без изменения полей и масштаба;
  • HTML - при печати возможны изменения полей и масштаба.

Рис. 10. Выбор способа печати (рекомендуется PDF )

2. Как настроить параметры печати?

Настройки параметров печати 1С:Предприятия доступны в форме документа с помощью команды (рис. 11).

Рис. 11. Выбор параметров страницы

Так как веб-браузеры имеют свои собственные настройки печати, то необходимо, чтобы они совпадали с упомянутыми настройками страницы разбивки табличного документа. Настройки страницы печати браузера редактируются в диалоге Параметры страницы (рис. 12), который в Microsoft Internet Explorer, Mozilla Firefox и Apple Safari вызывается командой меню браузера: Файл / Параметры страницы... (File / Page Setup... ). Для веб-браузера Google Chrome такая настройка не предусмотрена.

Рис. 12. Выбор параметров страницы в браузере

3. Можно ли перед печатью осуществить предварительный просмотр документа?

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

  • При использовании веб-браузеров Microsoft Internet Explorer, Apple Safari и Mozilla Firefox (в большинстве версий), предварительный просмотр открывается командой меню браузера: Файл / Предварительный просмотр (File / Print Preview ).
  • Для веб-браузера Google Chrome предварительный просмотр осуществляется по умолчанию непосредственно перед печатью (см. рис.4 выше).

Типичные ошибки при печати

1. Что делать, если при печати страница выводится на принтер с ошибками?

Проверьте, что в качестве Способа печати (Главное меню / Сервис / Параметры страницы ) выбрана опция PDF . Затем, если ошибки не устранены, проверьте правильность выбора настроек печати 1С:Предприятия (Главное меню / Файл / Параметры страницы - эти настройки надо вызывать из окна с печатной формой документа, как показано на рис. 11) и настроек печати браузера (рис. 12), которые доступны при выборе команды Файл / Параметры страницы .

2. Что делать, если вместо печати на принтере предлагается сохранить в файл формата PDF?

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

Дополнительную информацию о печати вы найдете в статье на сайте ИТС .

Желаем приятной работы!

21 июня 2013

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

Итак, существует несколько вариантов вывода на печать документов.

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

Начнем по порядку:

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

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

Для печати этого списка документов нажимаем на пиктограмму принтера на панели инструментов или комбинацию клавиш Ctrl+P.

Все в таком виде список будет напечатан на бумаге.

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

Для такой ситуации нужно перейти в меню:

В появившемся окне (по умолчанию окно открывается пустым) нужно нажать кнопку «Состав журнала» .


Теперь в универсальный журнал входят документы из журнала «Заказ покупателя» и «Реализация товаров и услуг».

Для удобства работы, эта обработка, может выводить в журнал общие строки с выбранных документов.

Например: В документе «Заказ покупателя» есть реквизиты «Организация», «Контрагент», «Договор», и т.д. и в документе «Реализация товаров и услуг» эти реквизиты тоже есть, но значения у них могут отличаться. Соответственно в универсальном журнале выведутся колонки с одинаковым названием в документах, но значения в них будут свои.

Для этого в обработке «Состав журнала» нажимаем кнопку «Заполнить» .

Журнал соответственно заполнится с общими полями


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

Переходим в меню:

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


При нажатии кнопки «Отбор» программа отбирает нужные нам документы.

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

В этой статье подробно будет рассказано, как новичку, плохо знающему 1С 8 создать печатную форму. Для примера возьмем одну из самых распространенных конфигураций 1С 8 — Бухгалтерию 2.0 . Создание печатной формы 1С этапы написания:

  • Создание файла внешней печатной формы;
  • Создание макета печатной формы;
  • Написание программного кода для вывода данных печатной формы на экран;
  • Создание параметров авторегистрации печатной формы;
  • Подключение внешней печатной формы к базе 1С Предприятия .

Создание печатной формы 1С. Постановка задачи

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

  • Организацию;
  • Контрагента;
  • Договор контрагента;
  • Дату поступления.

В виде таблицы вывести данные табличной части Товары документа. Таблица должна включать в себя следующие колонки:

  • Номенклатура;
  • Количество;
  • Цена;
  • Сумма;
  • А также цена номенклатуры на текущую дату (по виду цен из документа).

Файл внешней обработки

Перейдем к решению задачи. Для начала откроем 1С 8 в режиме Конфигуратор . Именно в этом режиме осуществляются все разработки на платформе 1С 8. Теперь нам необходимо создать файл внешней обработки. Для этого кликнем по меню Файл -> Новый… или по пиктограмме нового файла.

В открывшемся окошке выберем пункт Внешняя обработка .

Далее в поле Имя необходимо вписать название внешней обработки. В нашем случае назовем ее просто: «ПечатнаяФорма», поле синоним при этом заполнится автоматически. Обратите внимание, что в поле Имя, внешней обработки, следует писать название без пробелов и знаков препинания.

Добавим реквизит внешней обработки СсылкаНаОбъект и выберем для него тип ДокументСсылка.ПоступлениеТоваровУслуг . Для этого в дереве метаданных внешней обработки 1С выделим пункт Реквизиты и нажмем кнопку Добавить (кнопка с зеленым плюсом). В правой части экрана откроется окно свойств реквизита, в поле Имя впишем — СсылкаНаОбъект. В поле Тип нажмем кнопку с тремя точками.

В дереве типов раскроем ветку ДокументСсылка , и найдем там элемент ПоступлениеТоваровУслуг, поставим напротив него галочку и нажмем ОК.

Сохраним файл внешней обработки на жесткий диск, для этого воспользуемся меню Файл -> Сохранить , пиктограммой Сохранить (синяя дискета), либо сочетанием клавиш Ctrl + S . Назовем сохраняемый файл «ПечатнаяФорма».

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

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

В дереве метаданных внешней обработки добавим новый макет, в окне конструктора макета ничего менять не будем и нажмем кнопку Готово .

В открывшемся новом макете создадим несколько областей, необходимых для вывода печатной формы. Все необходимые нам области макета будут горизонтальными, поэтому для создания новой области следует выделить необходимое количество строк макета и перейти в меню Таблица -> Имена -> Назначить имя или использовать сочетание клавиш Ctrl + Shift + N, после чего ввести в окошке имя области. При создании области макета не бойтесь ошибиться с количеством строк их всегда можно будет добавить или убрать. Для удаления строки макета 1С выделите нужную строку и выберите в контекстном меню пункт Удалить . Для добавление новой строки в макет, выделите любую строку макета и выберите в контекстном меню пункт Раздвинуть .

Добавление шапки макета

В первую очередь создадим область Шапка , в нее будут выводится данные для заголовка печатной формы. Для данной области нам потребуется семь строк макета. Выделим их и, как я уже писал выше, нажмем сочетание клавиш Ctrl + Shift + N , в поле Имя напишем «Шапка» и нажмем кнопку ОК .

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

Обычно хватает тринадцать или четырнадцать ячеек макета, выделим их в первой строке области Шапка и объединим в одну ячейку (Контекстное меню -> Объединить ). После этого дважды щелкнем по получившейся большой ячейке и напишем название параметра, в нашем случае «ТекстЗаголовка». Для того чтобы введенный текст стал полноценным параметром щелкнем по ячейке правой кнопкой мыши и в контекстном меню выберем пункт Свойства . На закладке Макет найдем поле Заполнение и выберем значение Параметр . Параметры в макете 1С обозначаются скобками «<>».

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

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

На рисунке видно, как отличаются параметры макета, от обычного текста.

Добавление шапки таблицы макета

Последнее, что нам необходимо создать в данной области макета — это шапка таблицы, в которую будут выводится данные табличной части Товары . Колонки необходимые для таблицы были описаны в разделе «Постановка задачи». Шапку таблицы также создадим используя объединение ячеек и написания текста (названий колонок). Границы шапки таблицы выделим при помощи инструмента Рамка , который расположен на панели форматирования макета.

Добавление таблицы в макет

Создадим в макете еще одну область — Данные . В нее будет выводится таблица данных табличной части Товары. Для данной области нам понадобится только одна строка макета. Чтобы вывести все строки табличной части в печатную форму мы будем заполнять и выводить данную область нужное количество раз. Колонки в области Данные должны совпадать с колонками шапки таблицы, поэтому заполнить ее не составит труда. Единственное отличие — в области Данные нам нужны параметры, а не просто текст. Также заметьте, что по умолчанию числовые параметры форматируются по правому краю, а текстовые по левому. Для выделения колонок, также необходимо использовать инструмент Рамка .

Добавление подвала в макет

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

В итоге должен получиться макет следующего вида:

Создание печатной формы 1С. Программирование

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

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

Функция Печать() Экспорт КонецФункции

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

Инициализация основных переменных

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

ТабДок = новый ТабличныйДокумент;

В переменную Макет получим созданный нами макет печатной формы. Для этого используем встроенную функцию ПолучитьМакет(<ИмяМакета>).

Макет = ПолучитьМакет("Макет");

Все области макета получим в переменные. Для этого используем метод макета ПолучитьОбласть(<ИмяОбласти>) .

ОбластьШапки = Макет.ПолучитьОбласть("Шапка"); ОбластьДанные = Макет.ПолучитьОбласть("Данные"); ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");

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

Все необходимые переменные инициализированы. Приступим к заполнению и выводу областей макета в табличный документ. В первую очередь заполним заголовок печатной формы, для этого нам необходимо передать в параметр ТекстЗаголовка , который мы создали в макете, нужный нам текст. Для заполнения значений параметров у области макета существует специальная коллекция, которая так и называется — Параметры. Из которой через «.» можно получить любой параметр. В текст заголовка передадим текст: «Печатная форма», а также номер документа.

ОбластьШапки.Параметры.ТекстЗаголовка = "Печатная форма "+СсылкаНаОбъект.Номер;

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

ОбластьШапки.Параметры.Организация = СсылкаНаОбъект.Организация; ОбластьШапки.Параметры.Контрагент = СсылкаНаОбъект.Контрагент; ОбластьШапки.Параметры.ДатаПоступления = СсылкаНаОбъект.Дата; ОбластьШапки.Параметры.ДоговорКонтрагента = СсылкаНаОбъект.ДоговорКонтрагента;

Все параметры шапки заполнены, выведем ее в созданный нами табличный документ, для этого используем метод Вывести(<Область>) .

ТабДок.Вывести(ОбластьШапки);

Написание запроса для печатной форы

Займемся заполнением и выводом области Данные . Создание печатной формы 1С подразумевает и написание запроса, нам он необходим для получения данных табличной части Товары и цен Номенклатуры на текущую дату будем использовать Запрос . Язык запросов 1С 8 похож на SQL, а точнее практически копирует возможности его оператора SELECT, но при этом весь запрос пишется на русском языке. Поэтому если вы хотя бы отдаленно знакомы с SQL, то и язык запросов 1С 8 поймете легко.

В данной печатной форме запрос будет довольно простым и многие скажут, что можно было бы обойтись и без него, но знание языка запросов и умение его грамотно использовать — одно из главных умений программиста 1С. Запросы позволяют используя меньшие ресурсы получать сложнейшие выборки данных, а также в тексте запроса намного легче разобраться, чем в программном коде написанном без использования запроса (или с минимальным его использованием). К тому же, в 1С 8 есть очень хороший конструктор запросов, позволяющий в интерактивном режиме собирать запрос из нужных таблиц.

Создадим переменную, которая будет содержать в себе запрос.

Запрос = Новый Запрос;

Текст запроса будем составлять при помощи конструктора запросов. Для начала напишем:

Запрос.Текст = "";

Поставим курсор мышки между кавычками, нажмем правую кнопку мыши. В открывшемся контекстном меню выберем пункт Конструктор запроса, он очень поможет нам в создании печатной формы 1С. После этого откроется окно конструктора запроса, оно содержит много вкладок, но для нашего запроса понадобятся только четыре: «Таблицы и поля», «Связи», «Условия», «Объединения / Псевдонимы».

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

В левой части окна конструктора найдем столбец База данных . В нем находится дерево всех объектов метаданных, найдем нужные нам. Для этого раскроем ветку Документы и отыщем документ ПоступлениеТоваровУслуг , раскроем его и найдем табличную часть Товары , перетащим ее в столбец конструктора запросов Таблицы . Перетащить можно тремя способами: собственно перетаскиванием, двойным щелчком по таблице или выделив ее и нажав кнопку «>». Раскроем ветку РегистрыСведений и найдем там таблицу ЦеныНоменклатуры.СрезПоследних , также перетащим ее в столбец Таблицы . Этих двух таблиц достаточно для нашего запроса.

Выберем нужные нам поля из полученных таблиц. Для этого в столбце Таблицы раскроем таблицу и найдем поля: Номенклатура, Сумма, Цена, Количество и перетащим их в третий столбец конструктора — Поля . Раскроем таблицу , найдем поле Цена и тоже перетащим его в Поля .

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

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

После того, как в окно Условия мы добавили поле Ссылка , конструктор запросов сам создаст параметр с аналогичным названием и расположит его после знака «=». Данный параметр можно переименовать, если есть желание. В тексте запроса параметры помечаются знаком «&», но в данном случае этого делать не нужно, так как подразумевается, что во второй части условия стоит параметр, это просто надо запомнить. О том как передать значение в параметр запроса 1С будет рассказано ниже.

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

Для заполнения параметров виртуальной таблицы перейдем на закладку Таблицы и поля конструктора запроса, в колонке Таблицы выделим таблицу ЦеныНоменклатурыСрезПоследних и нажмем кнопку Параметры виртуальной таблицы , расположенную вверху. В открывшемся окне, в поле Период следует задать параметр, в который будет передаваться дата, на которую будет делаться срез цен. В нашем случае это будет текущая дата (то есть сегодня), поэтому и параметр назовем «&ТекущаяДата». В поле условия напишем условия на тип цен, его мы тоже передадим в параметре, который назовем «&ТипЦен». Получившееся условие будет выглядеть следующим образом (где ТипЦен — измерение регистра Цены номенклатуры ):

ТипЦен = &ТипЦен

Параметры виртуальной таблицы заполнены, нажмем кнопку ОК .

Теперь, когда мы ограничили выборку только нужным нам документом, создадим связи между таблицами запроса. Если этого не сделать, то цены из таблицы ЦеныНоменклатурыСрезПоследних не будут связаны с номенклатурой из поступления. Перейдем на вкладку Связи конструктора запросов. Создадим связь по полю Номенклатура между двумя нашими таблицами. Для этого нажмем кнопку Добавить , в поле Таблица 1 выберем таблицу ПоступлениеТоваровУслугТовары , а в поле Таблица 2 — ЦеныНоменклатурыСрезПоследних. В условиях связи выберем поля Номенклатура из обоих таблиц.

Также следует заметить, что в выборке запроса нам необходимо получить все строки из табчасти Товары и цены только в том случае, если таковые имеются на текущую дату по типу цен документа. Таким образом данные табчасти Товары являются обязательными, а данные среза цен нет. Поэтому в связях между этими таблицами необходимо использовать так называемое ЛЕВОЕ СОЕДИНЕНИЕ, причем левой (или обязательной) таблицей будет ПоступлениеТоваровУслугТовары , а правой (или необязательной) ЦеныНоменклатурыСрезПоследних. Для того чтобы левое соединение таблиц запроса заработало так как я описал выше необходимо поставить галочку Все после поля Таблица 1.


Запрос практически готов, осталось только немного поработать над псевдонимами полей. Перейдем на закладку Объединения / Псевдонимы и зададим псевдоним для поля ЦеныНоменклатурыСрезПоследних.Цена . Имя псевдонима будет — ЦенаНаСегодня , нужен он для того чтобы имена полей выборки запроса и имена параметров в макете печатной формы совпадали.

Работа в конструкторе запросов на этом закончена, нажмем кнопку ОК. После того, как окно конструктора закроется вы увидите, что строка с текстом запроса заполнена и имеет следующий вид:

Запрос.Текст = "ВЫБРАТЬ | ПоступлениеТоваровУслугТовары.Номенклатура, | ПоступлениеТоваровУслугТовары.Сумма, | ПоступлениеТоваровУслугТовары.Цена, | ПоступлениеТоваровУслугТовары.Количество, | ЦеныНоменклатурыСрезПоследних.Цена КАК ЦенаНаСегодня |ИЗ |Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(| &ТекущаяДата, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних | ПО ПоступлениеТоваровУслугТовары.Номенклатура | = ЦеныНоменклатурыСрезПоследних.Номенклатура |ГДЕ | ПоступлениеТоваровУслугТовары.Ссылка = &Ссылка";

Выполнение запроса

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

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

Выборка = Запрос.Выполнить().Выбрать();

Заполнение таблицы печатной формы

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

Пока Выборка.Следующий() Цикл КонецЦикла;

Именно в этом цикле мы будем заполнять и выводить область макета Данные . Но для начала инициализируем две переменные числового типа. В них будем собирать итоги по количеству и сумме, которые нам необходимо вывести в область Подвал .

ИтогоСумма = 0; ИтогоКоличество = 0;

Внутри цикла будем заполнять область Данные данными из текущего элемента выборки, в переменные ИтогоСумма и ИтогоКоличество добавлять значения суммы и количества, и наконец, выводить область в табличный документ при помощи уже знакомого нам метода Вывести() . Так как имена полей нашего запроса полностью совпадают с именами параметров области Данные , то для заполнения будем использовать встроенную процедуру ЗаполнитьЗначенияСвойств(<Приемник>, <Источник>), которая копирует значения свойств <Источника> в свойства <Приемника>.

Пока Выборка.Следующий() Цикл ЗаполнитьЗначенияСвойств(ОбластьДанные.Параметры,Выборка); ИтогоСумма = ИтогоСумма + Выборка.Сумма; ИтогоКоличество = ИтогоКоличество + Выборка.Количество; ТабДок.Вывести(ОбластьДанные); КонецЦикла;

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

Осталось заполнить и вывести последнюю область макета — Подвал . Данные для заполнения мы уже подготовили, заполнение и вывод осуществляем по той же схеме.

ОбластьПодвал.Параметры.ИтогоКоличество = ИтогоКоличество; ОбластьПодвал.Параметры.ИтогоСумма = ИтогоСумма; ТабДок.Вывести(ОбластьПодвал);

Табличный документ полностью заполнен, осталось вывести его на экран, чтобы пользователь мог посмотреть печатную форму и при необходимости распечатать. Но в типовых конфигурациях 1С 8 за вывод внешних печатных форм отвечают процедуры специальных модулей. Поэтому достаточно вернуть из функции Печать() заполненный табличный документ.

Возврат ТабДок;

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

Создание печатной формы 1С. Параметры авторегистрации

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

Делается он следующим образом:

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

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

  • Запустите 1С 8 в режиме Предприятие;
  • Перейдите в меню Сервис -> Дополнительные отчеты и обработки -> Дополнительные внешние печатные формы ;
  • Нажмите кнопку Добавить ;
  • В открывшемся окне нажмите пиктограмму Заменить файл внешней обработки ;
  • Если у вас созданы параметры авторегистрации, то соглашаемся их использовать;
  • Если у вас не созданы параметры авторегистрации, то в табличную часть Принадлежность печатной формы добавляем нужный документ или справочник;
  • Нажимаем кнопку ОК.

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