1с вывести одну ячейку макета

Основы формирования табличного документа на основе макета

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

Области макета предназначены для однократного или многократного вывода, например, ниже представлен макет для печати расходной накладной:

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

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

Общая схема

Общая схема формирования печатной формы на основе макета:

  1. Создание макета в табличном редакторе (определение областей, имен параметров, форматирования).
  2. Создание нового табличного документа (этот пункт не требуется, если отчет выводится в элемент управления ПолеТабличногоДокумента).
  3. Получение макета в переменную (метод ПолучитьМакет).
  4. Получение областей макета (метод ПолучитьОбласть).
  5. Заполнение параметров области (свойство Параметры).
  6. Вывод области в табличный документ (методы Вывести и Присоединить).
  7. Установка свойств отображения табличного документа (сетка, заголовки, только просмотр и т.д.).
  8. Отображение табличного документа на экране (а может быть отправка на принтер или сохранение).

Пример вывода табличного документа

Ниже приведен пример формирования печатной формы расходной накладной из модуля документа:

Процедура Печать(ТабДок) Экспорт

//создание нового табличного документа
ТабДок = Новый ТабличныйДокумент ;

//получение макета для печати расходной накладной
Макет = Документы.РасходнаяНакладная. ПолучитьМакет («Основной»);

//получим область «Заголовок» как новый табличный документ (!)
Область = Макет. ПолучитьОбласть («Заголовок»);

//укажем параметры области
Область. Параметры .НомерДокумента = Номер;
Область.Параметры.От = Дата;
Область.Параметры.Кому = Контрагент;

//выведем заполненную область «Заголовок» в табличный документ
ТабДок. Вывести (Область);

//выведем область «Шапка» в табличный документ
ТабДок.Вывести(Макет.ПолучитьОбласть(«Шапка»));

//получение области «Строка»
//обратите внимание, что это можно сделать до цикла по строкам
Область = Макет.ПолучитьОбласть(«Строка»);

//вывод строк документа в печатную форму
Для Каждого СтрСостава Из Состав Цикл

//заполнение параметров области из строки табличной части
Область.Параметры. Заполнить (СтрСостава);

//вывод сформированной области в табличный документ
ТабДок.Вывести(Область);

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

//установим параметры отображения табличного документа
ТабДок.ТолькоПросмотр = Истина;
ТабДок.ОтображатьЗаголовки = Истина;
ТабДок.ОтображатьСетку = Ложь;

//покажем табличный документ на экране
ТабДок. Показать ();

Основные методы

Основные методы формирования итогового табличного документа следующие:

Источник

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

ТабДок = Новый ТабличныйДокумент;
Макет = ЭтотОбъект.ПолучитьМакет(«АнализПохода»);
Запрос = Новый Запрос;
Запрос.Текст = «ВЫБРАТЬ
| РеализацияТоваровУслуг.Номер КАК Номер,
| РеализацияТоваровУслуг.Дата КАК Дата,
| РеализацияТоваровУслуг.Контрагент КАК Контрагент,
| РеализацияТоваровУслуг.Проведен,
| РеализацияТоваровУслуг.Товары.(
| Количество,
| Сумма,
| ВесСПроцентомУсушки,
| Номенклатура
| )
|ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|ГДЕ
| РеализацияТоваровУслуг.Проведен = ИСТИНА
| И РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаС И &ДатаПо
|
|УПОРЯДОЧИТЬ ПО
| РеализацияТоваровУслуг.Дата
|ИТОГИ ПО
| ОБЩИЕ»;
Запрос.УстановитьПараметр(«ДатаС», НачалоДня(ДатаС));
Запрос.УстановитьПараметр(«ДатаПо», КонецДня(ДатаПо));
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
ТабДок.Вывести(Макет.ПолучитьОбласть(«Шапка»));
ОбластьМакета = Макет.ПолучитьОбласть(«Строка»);
Пока Выборка.Следующий() Цикл
ОбластьМакета.Параметры.Номер = Выборка.Номер;
ОбластьМакета.Параметры.Дата = Выборка.Дата;
ОбластьМакета.Параметры.Контрагент = Выборка.Контрагент;
ТабДок.Вывести(ОбластьМакета);
КонецЦикла;
ТабДок.Показать();

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

Источник

Макеты в 1С 8.2 — это не сложно (Часть 1 — Создание макета)

Допустим, Вам необходимо вывести подобный отчет:

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

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

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

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

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

Меня зовут [МоеИмя],

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

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

Источник

Программирование в 1С для всех

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

Также, как и во всех предыдущих статьях, для демонстрации создадим обработку и основную форму обработки, на которую поместим команду.

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

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

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

Зная имя ячейки или области ячеек, мы можем получить эту область из уже созданного документа при помощи метода Область().

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

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

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

Ячейки первой колонки.

Получим область для этих ячеек, объединим ячейки этой области, напишем какой-нибудь текст и обведем эту область, используя метод Обвести табличного документа.

Точно также получим область для соседней колонки.

Первым делом узнаем имя ячеек. Ячейки второй колонки.

А потом получим область, и выполним над ней те же самые манипуляции, что и над соседней областью.

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

На этом мы закончим изменять табличный документ. Полная версия кода в функции ВозвратТабличногоДокумента будет следующей:

Проверим, что у нас выведет табличный документ.

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

Другие статьи про табличные документы в 1С:

Более подробно и основательно разработка в 1С дается в моей книге: «Программировать в 1С за 11 шагов»

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

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

О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»

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

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

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

Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog


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

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

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

Источник

Читайте также:  Как правильно чистить фрезы для маникюра
Оцените статью