1с вывести строку макета

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

Программирование системы 10.05.2016 17:42 5936

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

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

Заполненный макет в 1С:предприятии

Процедура заполнения и вывода макета

Процедура многострочного вывода

Процедура разделяет текст на подстроки по ширине области ячеек и выводит подстроки в эти области ячеек. Выводимые строки добавляются в конец табличного документа.

  • ТабДокумент — табличный документ для вывода
  • НомерПервойКолонки — номер первой колоки области ячеек
  • НомерПоследнейКолонки — номер последней колоки области ячеек
  • Ширина — приблизительное количество символов в области ячеек

Для того чтобы добавить сообщение, необходимо Войти или Зарегистрироваться

Источник

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

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

Читайте также:  Как чистить термопот kitfort

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

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

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

Общая схема

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

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

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

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

Источник

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

В массе своей, в прикладных задачах нужно вывести на печать какие-либо данные оформленные нужным образом (например, счет, торговую накладную, акт сверки и т.п.). Для вывода на печать в 1С 8.3. можно использовать табличные документы. В предыдущей статье я показал, как создать макет табличного документа и как правильно его оформить. Нам осталось научиться заполнять его данными и выводить на просмотр для последующей печати. Материал по выводу табличного документа на печать, я решил разбить на две части. В первой части мы разберем простой пример (я бы назвал его учебным), а во втором случае реализуем пример приближенный к реальному. Эта статья — первая часть, в ней мы реализуем простой пример: будем выводить табличный документ на печать, используя команду управляемой формы. Этот вариант имеет следующий недостаток: нельзя вывести печатную форму из списка документов, можно это сделать, только открыв форму документа. Для того, чтобы можно было вывести печатную форму из списка документов, необходимо создать команду документа. Этот вариант мы рассмотрим в следующей статье.

И так, сам макет документа мы уже создали, как это сделано, вы можете узнать в соответствующей статье.

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

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

Для команды ПечатьДокумента создадим два обработчика в клиентском и серверном контексте.

Серверный обработчик переименуем в функцию, в нем мы создадим программно табличный документ 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

Источник

Оцените статью