1с создание внешнего отчета с нуля. Макеты скд

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

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

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

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

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

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

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

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

Построение отчета пользователем

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

Динамическое формирование макета

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

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

Оформленный кросс-отчет может иметь следующий вид:

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

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

Механизм оформления

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

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

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

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

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

Условное оформление

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

Использование этого механизма позволяет, например, зеленым фоном выделить суммы, значения которых превысили 10 000, желтым фоном выделить строки номенклатуры, объем продаж которой превысил 30 000, а красным текстом выделить в отчете строки, содержащие услуги:

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

Дополнительная информация

Вы можете познакомиться с использованием построителя отчета в реальном режиме времени. Для этого можно скачать демонстрационный ролик "Пример разработки торговой мини-системы", в котором показан процесс разработки торговой мини-системы с использованием этого объекта в отчетах "Остатки и обороты", "Анализ продаж" и "Анализ продаж по периодам".

Песочница

Леонид Якубович 23 августа 2011 в 10:22

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

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

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


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

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

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

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

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

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

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

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

Теги: 1С 8, макет, отчеты, макеты

Говорят, что под названием 1С изначально подразумевалась фраза «одна секунда», т.е. программы должны выдавать отчеты быстро, «в одну секунду». Скорость работы отчетов очень важна, но еще важнее, чтобы отчеты выдавали правильную информацию — разберемся с этим на примере создания простого отчета в 1С 8.3 на базе конфигурации Управление торговлей 10.3. Для создания корректных отчетов желательно (даже настоятельно рекомендуемо) уметь конфигурировать 1С и немного уметь программировать на внутреннем языке и языке запросов 1С, хотя, с другой стороны, создание отчетов — прекрасная возможность начать осваивать эти навыки.

Данное описание является учебным для понимания основных принципов создания отчетов 1С

Как создать отчет в 1С 8.3

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

В самом конфигураторе заходите в меню Файл и выбираете пункт Новый:


В появившемся меню выбираете пункт Внешний отчет и нажимаете кнопку ОК:


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


Как сделать отчет с помощью макета

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

В окне отчета (которое открывается при создании отчета) в нижнем списке устанавливаете курсор на пункт Макеты и, при нажатии правой кнопкой мыши, в появившемся меню нажимаете Добавить:


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


После чего откроется окно макета, напоминающее лист Excel:


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

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

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


После этого идем в меню Таблица главного меню, заходим в подменю Имена и кликаем на пункт Назначить имя:


Программа предложит указать Имя области, имя также не должно содержать пробелов и спецсимволов, после этого нажимаем ОК, должно получиться так:


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

Чтобы отформатировать текст в ячейке, нажимаем на ячейку правой кнопкой и кликаем на Свойства. Справа откроется окно свойств ячейки. Прокручивая содержимое окна вниз, найдите поле Шрифт и нажмите на кнопку «...»:


В открывшемся окне в разделе Начертание устанавливаем галочку Жирный и нажимаем кнопку ОК:


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


Таким же образом создаем область строки номенклатуры, только не выделяем жирным:


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


Возвращаемся в главное окно отчета и в нижнем списке кликаем правой кнопкой на пункт Формы и нажимаем Добавить:


В открывшемся конструкторе формы отчета нажимаем кнопку Готово, откроется форма отчета, кликаем два раза на кнопку Сформировать:


В результате откроется окно свойств кнопки в правой части экрана, в поле Действие нажимаем на лупу:


После этого откроется модуль формы, в котором нужно запрограммировать формирование отчета:


Сначала вставим вместо выделенного текста следующий текст программного кода:

//создаем табличный документ, который будет наполняться частями отчета и выводиться на экран
ТабДокумент = Новый ТабличныйДокумент;
//далее, получаем макет, который создавали при создании отчета
Макет = ПолучитьМакет("Макет");
//теперь нужно вывести шапку отчета, дял этого получаем область шапки из макета и выводим ее в табличный документ
ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ТабДокумент.Вывести(ОбластьШапка);
//с помощью запроса получаем выборку наименований номенклатуры, которые надо вывести в отчете
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| Наименование
|ИЗ
| Справочник.Номенклатура
|";
//получить из макета область строки номенклатуры — будем обращаться к ней в цикле для вывода каждого наименования
ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
//обрабатываем в цикле каждое наименование из полученной выборки
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
//для вывода очередной строки нужно указать очередное наименование в параметре области (сам параметр мы настраивали при создании макета)
ОбластьСтрока.Параметры.Наименование = Выборка.Наименование;
//параметр заполнили, теперь можно вывести строку
ТабДокумент.Вывести(ОбластьСтрока);
КонецЦикла;
//табличный документ сформирован, теперь выводим его на экран
ТабДокумент.Показать("Перечень номенклатуры«);

Когда текст будет скопирован в модуль формы, то строки, начинающиеся с двойного слэша «//», будут выделены зеленым — это комментарии, в них описано, что выполняет каждая строчка кода:


Резюмируем, какие строки программного кода необходимы для формирования отчета:

  1. Необходимо создать табличный документ, который будет наполняться частями отчета и выводится на экран, делается это строкой «ТабДокумент = Новый ТабличныйДокумент;»
  2. Нужно получить макет отчета, из него будем получать структуру отчета по частям (области), делается это строкой "Макет = ПолучитьМакет("Макет")"
  3. Для вывода каждой из областей нужно получить ее из макета и вывести в табличный документ, делается это строками "ОбластьШапка = Макет.ПолучитьОбласть("Шапка")" и «ТабДокумент.Вывести(ОбластьШапка)»
  4. Если требуется заполнить параметры, который становятся известны только при выполнении программы, то перед выводом области нужно заполнить такие параметры, делается это строкой «ОбластьСтрока.Параметры.Наименование = Выборка.Наименование»
  5. И лишь, когда табличный документ заполнен всеми нужными частями отчета, он выводится на экран, делается это строкой "ТабДокумент.Показать("Перечень номенклатуры")"

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


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


и получаем перечень номенклатуры:


Это лишь один из способов создания отчетов в 1С. В следующих статьях разберем другие.

«Открыть схему компоновки данных » или, что равнозначно, кликнем по знаку лупы.

3. Так как у отчета, который мы создаем, еще не существует схемы компоновки данных, платформа предложит создать новую схему . Схема компоновки данных с точки зрения конфигурации является макетом, поэтому будет открыт конструктор макета, предлагающий выбрать единственный тип макета → Схема компоновки данных . Нажмем кнопку Готово .

Платформа создаст новый макет, содержащий схему компоновки данных, и сразу же откроет конструктор схемы компоновки данных.

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

Добавим новый набор данных → запрос .

4. Для того чтобы создать текст запроса, запустим конструктор запроса → кнопка Конструктор запроса .

5. В списке «База данных » представлен состав объектов базы данных; на основе данных этих объектов мы имеем возможность построить отчет.

Если раскрыть ветку «РегистрыНакопления », то мы увидим, что кроме таблицы регистра «ОстаткиМатериалов » в этой ветке присутствуют еще несколько виртуальных таблиц , которые формирует система.

6. Поскольку мы хотим видеть как остатки материалов, так и информацию об их поступлении и расходовании, нас будет интересовать виртуальная таблица «ОстаткиМатериалов.ОстаткиИОбороты ». Раскроем ее.

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

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

В результате окно Поля должно быть заполнено следующим образом:

8. После этого на закладке Группировка укажем групповое поле Склад .

9. Нажмем ОК и вернемся в конструктор схемы компоновки данных.

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

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

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

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

10. Перейдем на закладку Настройки и добавим группировку (контекстное меню Новая группировка ).

При этом не станем указывать поле группировки, а просто нажмем ОК .

В отчет будут выводиться детальные записи из информационной базы → записи, получаемые в результате выполнения запроса без итогов.

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

Для этого перейдем на закладку Выбранные поля и в окошко Поле перенесем из списка доступных полей:

  • Склад:
  • Материал;
  • КоличествоНачальныйОстаток;
  • КоличествоПриход;
  • КоличествоРасход;
  • КоличествоКонечныйОстаток.

12. Запустим 1С:Предприятие в режиме отладки и посмотрим, как работает отчет.

13. Выполните команду Операции в†’ Отчет в†’ Материалы .

Система автоматически сформирует форму отчета и форму настроек для него.

14. Нажмите Сформировать .

Как видите, наш отчет вполне «презентабелен» и полностью отражает движение материалов, произошедшее в нашей организации.

Создание макета документа ОказаниеУслуги

1. Откройте в конфигураторе окно редактирования объекта конфигурации Документ ОказаниеУслуги .

2. Перейдите на закладку Макеты и запустите Конструктор печати :

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

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

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

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

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

8. В конфигураторе откроется форма документа и его макет:

9. Проверим макет в работе. Запустите 1С:Предприятие в режиме отладки и откройте документ Оказание услуги №– 1 . Обратите внимание, что в правом нижнем углу документа появилась новая кнопка Печать , которую добавил конструктор.

10. Нажмите на эту кнопку и увидите печатную форму нашего документа.

Как видите, конструктор сформировал вполне подходящую печатную форму для нашего документа. Единственное, чего не хватает в данной форме, - это итоговой суммы документа.

Редактирование макета документа ОказаниеУслуги

1. Откройте конфигуратор, раскройте дерево документа ОказаниеУслуги и дважды щелкните на макете Печать .

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

2. Добавим новую область для вывода итоговой суммы документа:

  • выделим мышью две пустые строки в Документ ОказаниеУслуги: Печать ;
  • выполним команду Таблица в†’ Имена в†’ Назначить имя…¦

3. Назовем область Всего .

4. В созданной области:

  • в колонке Цена , напишем Всего ;
  • в колонке Сумма напишем ВсегоПоДокументу .

5. Вызвав палитру свойств для последней заполненной нами ячейки, укажем, что в этой ячейке будет находиться не текст, а параметр :

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

Текст , содержащийся в ячейке, будет показан на экране.

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

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

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

6. Теперь откроем модуль формы документа ОказаниеУслуги → ФормаДокумента .

7. Найдем в нем процедуру Печать и после цикла добавим в нее следующие строки:

Смысл добавленного фрагмента прост: мы получаем новую область Всего (ту, которую мы только что добавили к макету).

Затем параметру ВсегоПоДокументу , находящемуся в этой области, мы присваиваем значение суммы табличной части документа по колонке Сумма (обращение к табличной части документа выполняется по имени → ПереченьНоменклатуры ).

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

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

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

Редактирование формы документа ОказаниеУслуги

1. Откройте в конфигураторе форму документа ОказаниеУслуги → ФормаДокумента.

2. Откройте палитру свойств для табличного поля, расположенного в форме, и установите свойство Подвал , которое определяет наличие подвала у элемента управления Табличное поле .

3. Откроем свойства колонки Цена :

  • установим текст подвала → Всего: ;
  • горизонтальное положение в подвале → Прижать вправо ;
  • в шрифте подвала изменим начертание на Жирный .

4. Откроем свойства колонки Сумма:

  • установим горизонтальное положение в подвале→ Прижать вправо ;
  • установим флаг ОтображатьИтогиВПодвале ;
  • в шрифте подвала изменим начертание на Жирный .

5. Запустите 1С:Предприятие в режиме отладки и посмотрите как выглядит теперь форма документа ОказаниеУслуги №– 1.

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


Нас находят: создание отчета в 1с 8 2 с нуля , 1 Откроем в конфигураторе окно редактирования объекта конфигурации Документ ОказаниеУслуги 2 Перейдем на закладку Макеты и запустим конструктор печати В открывшемся окне на первом шаге укажем что будет создана новая команда Печать для формирования печ , как делать отчет в 1 с, конструктор документов разработка, Создание отчета с помощью конструктора выходной формы, создание отчетов в 1с 8 002, практикум по созданию отчетов в субд 2007, практикум по созданию методических материалов в области туризма, отчет остатки материалов на складе 1с создание, открыть конструктор макета 1с