Макет печатной формы документа
Откроем в конфигураторе окно редактирования объекта конфигурации Документ «ПриходнаяНакладная». Перейдем на закладку «Макеты», нажмем кнопку «Конструкторы» и запустим конструктор печати.
В открывшемся окне конструктора на первом шаге укажем, что будет создана новая команда «Печать» для формирования печатной формы документа:

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

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

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

Нажмем OK. В конфигураторе откроется модуль команды «Печать», модуль менеджера документа «ПриходнаяНакладная» и макет этого документа.
Модуль команды Печать
Модуль менеджера документа

Редактирование макета
Добавим новую область для вывода итоговой суммы документа. Выделим мышью две пустые строки под табличной частью документа и выполним пункт главного меню Таблица > Имена > Назначить имя. Назовем область Всего , нажмем ОК.
В созданной области, в колонке Цена , напишем ВСЕГО , а в колонке Сумма напишем ВсегоПоДокументу :
Вызвав палитру свойств для последней заполненной нами ячейки, в свойстве Заполнение укажем, что в этой ячейке будет находиться не текст, а параметр.
Откроем модуль менеджера документа «ПриходнаяНакладная», найдем в нем процедуру Печать и отредактируем ее следующим образом
Как открыть модуль макета 1с
Макет печати. склонение по падежам
подскажите как в макете печати фио было склоняемое?
Перенос текста по строкам в макет печати
Здравствуйте, подскажите в макете печати есть примеру 4 строки. В одном строке <Параметр> текст.
Ссылка картинки из справочника в макет печати
Добрый вечер! Извини что если не правильно написал заголовок) Есть 2 справочника, Рентген и.
Вывод даты в макет для печати.
Доброго времени суток! Помогите пож решить проблему с выводом даты в макет для печати. На форме .
Сообщение от Jylik
Сообщение от Jylik
Tklwegsd, MonteKristo, Конфигурация 1с8.3 Предприятие, просто учусь работать с конфигуратором.
При создании макета открывается "Модуль менеджера", в котором прописывается код макета — его уже нашел "он открывается правым кликом по подЪобъекту Документов. (2 строчка)"
-Новый вопрос. Как из справочников в коде (модуля менеджера) (Справочники.Номенклатура.ТипТовара) в макет (документы.ЗаказКлиента) загрузить инфу (ТипТовара)
Сообщение от Jylik
Сообщение от Jylik
Добавлено через 31 секунду
Читайте СП
Добавлено через 2 минуты
Сообщение от Jylik
SonicQ, Вообще-то, молодой человек. ВСЁ, кроме моего кода работает!
Справочники.Номенклатура КАК Номенклатура
|ГДЕ
| НоменклатураюСсылка В (&Ссылка1)";
Должно быть:
Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Ссылка В (&Ссылка1)";
А почему В (&Ссылка1)? Что такое &Ссылка1?
SonicQ, у меня этот справочник носит имя "справочникИ".
MonteKristo, о! Этого я не заметил.
А что не так с &Сылка1 ? Это же переменная, из которой по идее записывается информация.
Добавлено через 1 минуту
MonteKristo, по прежнему ошибка:
Сообщение от Jylik
и сделать это одним запросом. Твой второй ни к чему
Добавлено через 3 минуты
в итоге получается так
MonteKristo, и как проверить?)) Я новичек)
Добавлено через 1 минуту
SonicQ, ? не понял вопроса.
Поставить точку останова перед циклом и запустить в режиме отладки. Запусти печать. Когда в точке остановит, то заходи в табло. Пиши Запрос.Выполнить().Выгрузить() и посмотри что туда попадает.
Добавлено через 2 минуты
Ну или еще более простой вариант: добавь перед циклом команду Сообщить(Выборка.Клиент). Запусти. При формировании должен тебе он показать контрагента. Если не покажет, значит запрос ничего не тянет.
Jylik,
нужен пример того как будет выглядить в итоге отчет.
У тебя есть документ "Заказ клиента №1"
В нем 5 позиций товаров:
1. Лопата 1 (тип товара 1)
2. Лопата 2 (тип товара 1)
3. Лопата 3 (тип товара 1)
4. Лопата 4 (тип товара 2)
5. Лопата 5 (тип товара 2)
в итоге у тебя отчет должен вывести:
Заявка на Тип товара 1 №1 от 01.01.0001
В таблице товаров будет: лопата 1, лопата 2, лопата 3.
________________________________________________
Заявка на Тип товара 2 №1 от 01.01.0001
В таблице товаров будет: лопата 4, лопата 5
Вывод ТЗ на уже созданный макет печати
На форме документа есть ТЗ СтоимостьУслуг, которая заполняется по кнопке из внешней базы. Данные с.
Вытянуть код номенклатуры в макет печати документа переоценки
1С:Предприятие 8.2 (8.2.19.130) конфиг 1.2.15.2 Скажите пожалуйста, как вытянуть код номенклатуры.
Для матрицы подсчитать количество элементов, меньших нуля, ровных нулю и больших нуля
Для заданной матрицы A подсчитать количество элементов, меньших нуля, ровных нулю и больших нуля.
Как открыть модуль макета 1с
В прошлый раз мы с Вами решили, что неплохо было бы разобраться с печатными формами 1С. Каждый электронный документ 1С может быть распечатан на бумагу и делается это с помощью печатных форм 1С. Печатные формы состоят из именованных блоков, например Шапка, Строка и Подвал.

Как сделать печатную форму – уже понятно. Как разбить ее на блоки – тоже. Но как происходит печать в 1С всего этого дела? А особенно – как вывести не просто текст макета, а содержимое электронного документа?
Вот это мы и посмотрит прямо сейчас.
Подготовка макета для печати в 1С
Для начала придется начать с самого простого и заполнить макет для печати в 1С статическим текстом и линиями таблиц. Ведь кто-то должен сделать эту скучную работу?
Размещаем статический текст для печати в 1С
Для начала неплохо было бы разместить название нашей печатной формы. Выделим несколько ячеек в строке, и выберем пункт меню Таблица/Объединить. В результате несколько ячеек будут объединены в одну.

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

Размещаем оформление макета для печати в 1С
У нас есть именованная область Строка. В ней при печати в 1С будет выводиться каждая строка таблицы документа Товары. Вероятно мы хотели бы, чтобы таблица выглядела при печати в 1С тоже таблицей? Тогда нужно нарисовать для нее границы.
Для этого выберем ячейки строки и на панели выберем кнопку Границы. Мы выбрали вариант Граница везде – она рисует границы ячеек сразу со всех сторон. Если необходимо ограничиться только одной стороной, то нужно выбрать соответствующую кнопку.

Для того, чтобы линии, которыми рисуются границы были не такие, как стандартные, выделите ячейки и нажмите правой кнопкой мыши. В появившемся меню выберите пункт Свойства.
В привычном окне свойств можно выбрать вид и цвет линий для отрисовки границ.

Размещаем картинки и прочую мишуру для печати в 1С
Многие спрашивают – а как разместить на печатной форме 1С что-то кроме текста? Например – картинку.
А очень просто. Мало того, скажу сразу, что штрих-код (если Вам нужно его распечатать) тоже является картинкой.
Поставим курсор на любую ячейку. Выберем меню Таблица/Рисунки. Это целое подменю, которое позволяет вставить на макет для печати в 1С не только картинку или рисованный объект – но и объекты извне 1С, зарегистрированные на компьютере с помощью COM класса (например, элемент управления выпадающий список).
Для тех, кто интересуется созданием на макете сложных конструкций для печати в 1С, загляните также в выпадающее меню Таблица/Настройка печати. Здесь можно задать повторение области на каждой странице, колонтитулы и область печати.
Как разместить содержимое электронного документа при печати в 1С
Для размещения на макете при печати в 1С содержимого электронного документа – используется метод подстановки. Состоит он из двух частей.
Часть первая. Необходимо на макете разместить параметры, в которые Вы будете подставлять значения при печати в 1С.
Поставим курсор в ячейку. Впишем название параметра (одним словом, без пробелов и прочего мусора). Далее войдем в свойства этой ячейки (как — уже говорилось выше) и выберем Заполнение = Параметр.

Часть вторая. Подстановка значений производится не в когда Вы программируете в конфигураторе, а в момент печати документа в 1С. Соответственно с помощью программирования нужно указать 1С что нужно подставить в этот параметр.
Производится это следующим образом:
Макет = ПолучитьМакет(«НазваниеМакета»);
облКакаято = Макет.ПолучитьОбласть(«НазваниеОбласти»);
облКакаято.Параметры.НазваниеПараметра = «То что я хочу подставить из базы»;
Как Вы видите мы просто получаем по имени сначала сам макет, потом одну из его областей, а потом просто обращаемся к параметру по его названию.
Естественно, значение может быть как строкой или цифрой, так и значением указанным в документе.
Как производится печать макета в 1С
После того, как макет готов, пора задуматься о программировании процесса печати в 1С.
Печать в 1С обычно программируется несколькими процедурами, которые находятся в модуле объекта документа. Как открыть модуль объекта, можно посмотреть здесь.
Процедура Печать() обычно имеет пометку Экспорт и управляет печатью документа в 1С с помощью параметра ИмяМакета, в котором передается что хотелось бы распечатать.
Для каждого варианта макета делается процедура ПечатьИмяМакета(), в которой прописана печать конкретного макета. Вот ее мы сейчас и посмотрим.
Программирование печати в 1С состоит из трех пунктов.
Пункт 1. Запрос данных для печати в 1С из базы
Прежде чем печатать электронный документ в 1С, нам нужно запросить его данные из базы данных. Очевидно, чтобы распечатать документ, пользователь обычно «входит» в него (открывает его форму) и нажимает кнопку Печать. Поэтому в процедуре печати можно было бы просто обращаться к реквизитам документа (что это – обсуждали здесь) по имени.
Однако это считается некрасиво, не универсально и т.п. Например, вдруг будет использована обработка массовой печати документов (часто ли такой пользуются?). Поэтому принято в процедуре печати делать запрос к базе данных, который запрашивает данные документа. Например, так:
Запрос = Новый Запрос;
Запрос.Текст ;
Запрос.УстановитьПараметр(«ДокументДляПечати», Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
Выборка.Следующий();
Пункт 2. Заполнение макета для печати в 1С
Печать в 1С производится в табличный документ. Это специальный объект 1С, который позволяет выводить таблицы, наподобии Excel, на экран и на печать. Печатается, естественно макет, вернее его области поочередно.
Соответственно нам нужно сначала получить табличный документ, потом макет. Поочередно выводим области на печать, заполняя параметры макета.
ТабДок = Новый ТабличныйДокумент;
Макет = ПолучитьМакет(«ИмяМакета»); //или ПолучитьОбщийМакет(«»)
облШапка = Макет.ПолучитьОбласть(«Шапка»);
ТабДок.Вывести(облШапка);
облСтрока = Макет.ПолучитьОбласть(«Строка»);
Пока ВыборкаСтрокДокумента.Следующий() Цикл
облСтрока.Параметры.Товар = ВыборкаСтрокДокумента.Товар;
ТабДок.Вывести(облСтрока);
КонецЦикла;
облШапка = Макет.ПолучитьОбласть(«Подвал»);
ТабДок.Вывести(облПодвал);
Пункт 2. Вывод документа на печать в 1С
Последним пунктом является вывод полученного документа на экран или принтер. В типовых конфигурациях для этого используется типовая процедура (в каждой может быть своя), например, УниверсальныеМеханизмы.НапечататьДокумент().
В других случаях можно просто использовать типовые функции объекта ТабличныйДокумент: ТабДок.Показать() или ТабДок.Напечатать() .
Макет печатной формы документа
Откроем в конфигураторе окно редактирования объекта конфигурации Документ «ПриходнаяНакладная». Перейдем на закладку «Макеты», нажмем кнопку «Конструкторы» и запустим конструктор печати.
В открывшемся окне конструктора на первом шаге укажем, что будет создана новая команда «Печать» для формирования печатной формы документа:

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

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

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

Нажмем OK. В конфигураторе откроется модуль команды «Печать», модуль менеджера документа «ПриходнаяНакладная» и макет этого документа.
Модуль команды Печать
Модуль менеджера документа

Редактирование макета
Добавим новую область для вывода итоговой суммы документа. Выделим мышью две пустые строки под табличной частью документа и выполним пункт главного меню Таблица > Имена > Назначить имя. Назовем область Всего , нажмем ОК.
В созданной области, в колонке Цена , напишем ВСЕГО , а в колонке Сумма напишем ВсегоПоДокументу :

Вызвав палитру свойств для последней заполненной нами ячейки, в свойстве Заполнение укажем, что в этой ячейке будет находиться не текст, а параметр.
Откроем модуль менеджера документа «ПриходнаяНакладная», найдем в нем процедуру Печать и отредактируем ее следующим образом
Макеты печатных форм в 1С 8.3
Для того, чтобы распечатать сформированный документ в 1С, его необходимо преобразовать в печатную форму при помощи макета печатной формы. Такой шаблон формы для печати создается при помощи специального конструктора, который внешне схож с таблицей Excel.
Используя программу 1С в режиме управляемых форм, можно редактировать макет печатной формы и вносить изменения в печатную форму документа самостоятельно. Не изменения конфигурации программы пользователь имеет возможность менять внешний вид (линии таблиц, шрифт и т.д), вставить свой логотип и другое.
Подробнее разберем, что такое печатный макет в 1С, рассмотрим возможности изменения, просмотра и настроек, используем в качестве примера программу 1С:Бухгалтерия версии 3.0.
Как изменить макет печатной формы в 1С 8.3
В качестве примера создадим документ типа «Реализация (акт, накладная)» находящийся в меню «Продажи» и выстоим печатную форму для данной накладной.
Нам понадобилось внести изменения в печатную форму, а также в документ добавить логотип организации.
Организация вправе кроме обязательных реквизитов вносить изменения, при этом сохраняя утверждённый формат документа. Наличие логотипа не является обязательны реквизитом, однако организация может его добавить. Нажав кнопку «Печать», вы переходите в печатную форму, далее нажимает кнопку «Еще», там высвечиваются следующие пункты: «Перейти к макетам форм» и «Изменить макет».

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

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

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

Если требуется вставить картинку, для этого необходимо нажать кнопку «Еще» и выбрать команду «Картинки», которая находится в меню «Рисунок».

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

Нужный рисунок разместился в форме. При помощи маркеров по краям рисунка, возможно увеличить или уменьшить его размер. В случае если что-то не получилось, действие можно изменить, для этого достаточно использовать комбинации Ctrl+Y – вернуть действие, Ctrl+Z – отменить действие.

Вставляется логотип в рамке. Далее правой кнопкой нажимаем на вставленный логотип и выбираем меню «Свойства».

В появившимся окне можно задать параметры объекта. Нам необходимо удалить рамку, для этого мы нажимаем «Стиль линии» далее «Без линии».

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

Проверили, логотип на месте.

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

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

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

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


В макет печатной формы рисунок вставляется автоматически.
Шаблон и параметры макета
В качестве примера возьмем программу автоматизации бухгалтерского налогового учета на базе 1С и на нем рассмотрим документ «Накладная» как другой макет в разделе «Администрирование» — «Печатные формы, отчеты и обработки» далее «Макеты печатных форм». Следует обратить внимание на то, что ячейки макета содержат имена параметров, а не только текст, заключены эти параметры в скобки <>. Благодаря параметрам макета в нужную ячейку можно вводить необходимые данные, но не стоит забывать, что в модуле программы должны быть указаны эти значение параметров.

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

На экране появилось окно, в котором видно, что значение ячейки <Товар> — это параметр. Но задать можно не только параметры и текст, также в макете для ячейки возможно задать шаблон, в свойствах должно быть указано, что это именно шаблон. При использовании шаблона можно скомбинировать параметры и текстовые значения. Для это нужно в значении ячейки товара отметить, что это шаблон, а при выборе значения шаблона в поле «Текст» при указании параметра использовать квадратные скобки.

После сохранения макета, рядом появляется карандаш, который говорит о том, что макет изменялся.

Теперь проверяем сохраненный макет, открываем и видим, что в ячейке есть написанный текст.

Текст с форматированием в макете печатной формы добавляется таким же образом. Используя шаблон нельзя в одной ячейке применить сразу несколько вариантов форматирования, это значит, что оформление будет для всей ячейки.
Рассмотрев примеры видно, что при необходимости изменить макеты возможно. В случаях, требующих создания внешней или новой печатной формы, используется уже режим «Конфигуратор», в пользовательском же режиме доступны только не большие изменения.
Мы свяжемся с вами в ближайшее время.
Хотите получать подобные статьи по четвергам?
Быть в курсе изменений в законодательстве?
Подпишитесь на рассылку
Как посмотреть модуль который в макете? 0_О
Это обработка в части функционала выгружает документ в виде XML из базы, когда я посмотрел эти файлы XML в блокноте то увидел тэги которые встречаются в самой конфигурации «Бухгалтерия предприятия КОРП, редакция 3.0 (3.0.49.20)» в «ОбщийМодуль.ОбменСКонтрагентамиВнутренний» (строка 8828):
Вот фрагмент из XML-файла:
ВЫВОД: Сан Саныч, да, видимо так все и реализовано, так как в итоге файл XML формируется с тегами из типовой бухгалтерии, а обращения к общим модулям типовой бухгалтерии нет нигде в обработке. Значит эти обращения есть в тех самых «внешних обработках» из макетов, которые при работе сохраняются на диск и подключаются.
Информационные системы / Курсовая_6_семестр / Учебники / Радченко М.Г. 1С- Предприятие 8.3. Практическое пособие разработчика. Примеры и типовые приемы (2013) (1)
На четвертом шаге конструктор предложит сформировать нам подвал (нижнюю часть) печатной формы. Мы не станем ничего указывать (подвал в данном случае использовать не будем), нажмем Далее и перейдем к пятому шагу (рис. 8.5).
Рис. 8.5. Конструктор печати. Шаг 5
Здесь ничего изменять не будем. Тем самым согласимся с тем, что команда для вызова процедуры формирования печатной формы будет помещена в командную панель формы, в раздел Важное .
В конфигураторе откроется модуль команды Печать , модуль менеджера документа ОказаниеУслуги и макет этого документа
Рис. 8.6. Макет документа «Оказание услуги»
252 1С:Предприятие 8.3. Практическое пособие разработчика
Заметим, что разработчик может создать макет печатной формы с нуля и для ее вывода создать соответствующую команду и кнопку в форме документа, но в данном случае всю работу сделал за нас конструктор печати:
Создан макет печатной формы документа ОказаниеУслуги с именем Печать (см. рис. 8.6).
Создана команда документа ОказаниеУслуги с именем Печать . В модуль этой команды помещен обработчик, вызывающий процедуру печати документа, выполняющуюся на сервере.
Сама процедура печати помещена в модуль менеджера документа
ОказаниеУслуги (рис. 8.7).
Рис. 8.7. Структура документа «Оказание услуги»
в дереве объектов конфигурации
В командную панель формы документа ОказаниеУслуги помещена команда Печать для формирования печатной формы документа
Причем поскольку команда Печать принадлежит документу ОказаниеУслуги в целом, а не конкретной его форме, эту команду можно будет помещать в любую форму, созданную для документа.
В будущем мы будем самостоятельно создавать процедуры обработчиков команд и размещать соответствующие им кнопки в форме, но пока воспользуемся результатами работы конструктора печати и проверим макет в работе.
Рис. 8.8. Макет документа «Оказание услуги»
В режиме «1С:Предприятие»
Запустим «1С:Предприятие» в режиме отладки и откроем документ
Оказание услуги № 1 .
Обратите внимание, что в командной панели документа появилась новая кнопка Печать (рис. 8.9).
Рис. 8.9. Форма документа «Оказание услуги» с новой кнопкой «Печать»
254 1С:Предприятие 8.3. Практическое пособие разработчика
Кнопка Печать добавилась также и в командную панель формы списка документов Оказание услуги . Поэтому распечатать документ можно, не открывая его, а просто выделив в списке и нажав кнопку Печать .
Нажмем эту кнопку (в форме списка или в форме документа) и увидим печатную форму нашего документа (рис. 8.10).
Рис. 8.10. Печатная форма документа «Оказание услуги»
Как видите, конструктор сформировал вполне подходящую печатную форму для нашего документа. Единственное, чего не хватает в данной форме, это итоговой суммы документа.
В следующем разделе на примере добавления итоговой суммы документа мы познакомимся с тем, как можно редактировать макеты и формы объектов конфигурации.
В режиме «Конфигуратор»
Прежде всего, добавим итоговую сумму в печатную форму документа
Откроем конфигуратор, раскроем дерево документа Оказание Услуги и дважды щелкнем на макете Печать .
Как видите, макет документа состоит из именованных областей, которые в определенном порядке выводятся на печать.
Те именованные области, которые мы видим слева, были созданы с помощью конструктора. Но разработчик может сам создавать или удалять области, переименовывать их и т. п.
Добавим новую область для вывода итоговой суммы документа. Выделиммышьюдвепустыестрокиподтабличнойчастьюдокумента и выполним пункт главного меню Таблица Имена Назначить имя…
Рис. 8.11. Создание области ячеек для вывода итоговой строки
Назовем область Всего , нажмем ОК .
Чтобы формат добавленных нами строк совпадал с имеющимся форматом заголовка и табличной части документа, изменим ширину колонок.
Для этого потянем мышью в заголовке таблицы за правую границу колонки 2 так, чтобы ее ширина совпала с шириной колонки № в шапке таблицы документа. Отпустим мышь.
Платформа предложит создать новый формат для выделенных строк. Согласимся.
Аналогичные действия выполним и для колонок 3, 4, 5 и 6.
В созданной области, в колонке Цена напишем ВСЕГО , а в колонке
Сумма напишем ВсегоПоДокументу (рис. 8.12).
Рис. 8.12. Создание ячеек для вывода итога
256 1С:Предприятие 8.3. Практическое пособие разработчика
Вызвав палитру свойств для ячейки ВсегоПоДокументу (контекстное меню – Свойства ), в свойстве Заполнение укажем, что в этой ячейке будет находиться не текст, а параметр (рис. 8.13).
Рис. 8.13. Свойства ячейки «ВсегоПоДокументу»
Каждая ячейка редактируемого нами табличного документа может содержать либо текст, либо некоторый параметр, либо шаблон.
Текст , содержащийся в ячейке, будет показан на экране.
Параметр будет заменен некоторым значением, которое может быть присвоено ему средствами встроенного языка. Текст, содержащийся в ячейке, является именем этого параметра.
Шаблон представляет собой текстовую строку, в определенные места которой будут вставлены значения параметров.
Поэтому, указав для ячейки в качестве заполнения Параметр , мы определили параметр области с именем ВсегоПоДокументу , которому присвоим нужное нам значение при формировании печатной формы.
Откроем модуль менеджера документа ОказаниеУслуги .
Для этого перейдем на закладку Прочее окна редактирования объекта конфигурации Документ ОказаниеУслуги и нажмем кнопку Модуль менеджера (рис. 8.14).
Рис. 8.14. Открытие модуля менеджера документа «ОказаниеУслуги»
Найдем в нем процедуру Печать и отредактируем ее следующим образом (новые строки выделены жирным шрифтом), листинг 8.1.
Листинг 8.1. Печать формы документа (фрагмент)
ОбластьЗаголовок = Макет.ПолучитьОбласть(«Заголовок»); Шапка = Макет.ПолучитьОбласть(«Шапка»);
ОбластьПереченьНоменклатурыШапка = Макет.ПолучитьОбласть(«ПереченьНоменклатурыШапка»); ОбластьПереченьНоменклатуры = Макет.ПолучитьОбласть(«ПереченьНоменклатуры»);
ОбластьИтог = Макет.ПолучитьОбласть( » Всего » );
ВставлятьРазделительСтраниц = Ложь; Пока Выборка.Следующий() Цикл
Если ВставлятьРазделительСтраниц Тогда ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
Шапка.Параметры.Заполнить(Выборка); ТабДок.Вывести(Шапка, Выборка.Уровень());
ТабДок.Вывести(ОбластьПереченьНоменклатурыШапка); ВыборкаПереченьНоменклатуры = Выборка.ПереченьНоменклатуры.Выбрать();
Пока ВыборкаПереченьНоменклатуры.Следующий() Цикл ОбластьПереченьНоменклатуры.Параметры.Заполнить(ВыборкаПереченьНоменклатуры);
258 1С:Предприятие 8.3. Практическое пособие разработчика
СуммаИтог = СуммаИтог + ВыборкаПереченьНоменклатуры.Сумма;
ОбластьИтог.Параметры.ВсегоПоДокументу = СуммаИтог; ТабДок.Вывести(ОбластьИтог);
ВставлятьРазделительСтраниц = Истина; КонецЦикла;
Смысл добавленного фрагмента прост. Мы обращаемся к макету документа ОказаниеУслуги по его имени – Макет .
Используя его метод ПолучитьОбласть() , получаем область Всего (ту, которую мы только что добавили к макету) и сохраняем ее в пере-
В цикле обхода строк табличной части документа, полученных в результате выполнения запроса, мы накапливаем в переменной СуммаИтог значение суммы табличной части документа по колонке
Затем мы обращаемся к параметру ВсегоПоДокументу ( Об-
ластьИтог.Параметры.ВсегоПоДокументу ), находящемуся в области
Всего , и присваиваем ему значение переменной СуммаИтог .
В заключение мы выводим итоговую область в табличный документ, который будет показан на экране и распечатан пользователем –
Отображение табличного документа на экране выполняется в обработчике команды Печать , в модуле этой команды на клиенте, в то время как сама процедура заполнения печатной формы данными, описанная в модуле менеджера документа, выполняется на сервере.
В режиме «1С:Предприятие»
Запустим «1С:Предприятие» в режиме отладки и проверим результат наших изменений (рис. 8.15).
Рис. 8.15. Печатная форма документа «Оказание услуги»
Подобным образом, создавая именованные области и ячейки макета, используя их свойства и управляя порядком их вывода c помощью встроенногоязыка,разработчикимеетвозможностьсоздатьпечатную форму любого дизайна.
260 1С:Предприятие 8.3. Практическое пособие разработчика
; ; Для чего предназначен объект конфигурации «Макет»? ; ; Что такое конструктор печати?
; ; Как создать макет с помощью конструктора печати? ; ; Как изменить табличный документ?
; ; Какая разница в заполнении ячейки табличного документа текстом, параметром и шаблоном?
; ; Как с помощью встроенного языка вывести в табличный документ новую область?