Как сделать отчет в c

Обновлено: 06.07.2024

  1. В конфигураторе 1с создаем новый внешний отчет через пункт меню Файл-Новый-Внешний отчет
  2. Назначаем отчету имя и переходим к созданию макета. В нижней части формы выбираем Макеты-Добавить-Тип макета-Табличный Документ.
  3. Исходными данными для тестового отчета будет справочник “Банки”. В макете создаем шапку отчета с названиями колонок (Город, Банк, КорСчет).Заполнение ячеек шапки оставляем по умолчанию Текст. Выделяем строки шапки и назначаем Имя области через меню Таблица-Имена-Назначить имя. В дальнейшем в коде через имя области будем выводить шапку отчета и сами данные.
  4. Добавляем строки, соответствующие получаемым данным из справочника Банки. Назовем их пГород, пБанк и пКорсчет. Для каждой ячейки Заполнение указываем “Параметр”. Выделяем ячейки параметры и назначаем имя области “Строки”
  5. Назначаем шрифты, ширину и высоту ячеек, выбираем окантовку ячеек итп. Для форматирования макета отчета служит специальная панель “Форматирование”
  6. Создаем Форму отчета. В группе формы, напротив Формы отчета нажимаем на значек лупы. При создании формы галку “Использовать систему компоновки данных” не ставим.
  7. После создания формы отчета добавляем команду формы “Сформировать” (Правый верхний угол вкладка “Команды формы”). Назначаем ей действие на клиенте. Добавляем на форму Кнопку через правую кнопку мыши. Привязываем к кнопке Имя Команды – “Сформировать”, которую только что сделали.
  8. Пишем обработчик события Команды Сформировать, из которой вызывается функция на сервере для получения данных отчета. Реквизит формы “Отчет” появляется автоматически после создания формы отчета. Отчет создан для примера, поэтому никаких отборов и сортировок в запросе нет и данные выводятся из справочника как есть.

Результат отчета 1с

Сохраняем отчет, открываем его в режиме 1с Предприятия 8.3 и нажимаем кнопку “Сформировать”.

Простой внешний отчет со Схемой Компоновки Данных (СКД)

  1. В конфигураторе 1с создаем новый внешний отчет через пункт меню Файл-Новый-Внешний отчет
  2. Создаем основную схему компоновки данных (СКД). Для этого нажимаем кнопку “Открыть схему компоновки данных”
  3. Слева добавляем Набор данных -запрос
  4. Открываем конструктор отчета. Создаем простейший запрос из объекта справочник. Из левой части (база данных) переносим Справочник “Банки” в поле Таблицы. Раскрываем справочник и переносим интересующие данные в правую часть Поля. Сохраняем запрос.
  5. Переходим на вкладку “Настройки”. Щелкаем правой кнопкой мыши на Отчете и выбираем “Свойства элемента пользовательских настроек”.
  6. Выбираем элементы которые будут доступны пользователю 1с для настройки параметров отчета(выбираемые поля, отбор, сортировка, условное оформление и группировки).
  7. Создаем Форму отчета и форму настроек отчета. При создании формы отчета обязательно ставим галку “Использовать систему компоновки данных”.
  8. Формы созданы, для простого отчета на СКД никакого написания кода не требуется.Сохраняем отчет.
  9. Открываем внешний отчет на СКД в режиме 1с Предприятия 8.3. Открываем настройки и выбираем нужные поля.
  10. Добавляем группировку по “Городу”. В настройках отчета переходим во вкладку “Группировка” и добавляем поле “Город”.
  11. Сохраняем настройки и нажимаем кнопку Сформировать.

Отчет СКД на управляемых формах

Получаем отчет по справочнику на СКД с группировкой в соответствии со сделанными настройками.

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

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

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

Войдите как ученик, чтобы получить доступ к материалам школы

Система компоновки данных 1С 8.3 для начинающих: первый отчёт на СКД

Автор уроков и преподаватель школы: Владимир Милькин

Если вы не читали введение к этому модулю - пожалуйста, прочтите его: ссылка.

Готовим рабочее место

Для выполнения уроков вам понадобится 1С 8.3 (не ниже 8.3.13.1644) .

Если у вас уже есть установленная 1С версии 8.3 - используйте её. Если нет - скачайте и установите учебную версию, которую фирма 1С выпускает специально для образовательных целей: ссылка на инструкцию по скачиванию и установке 1С.

На вашем рабочем столе должен появиться вот такой ярлык:

Для всех уроков из этого цикла мы будем использовать подготовленную мной базу данных "Гастроном". Она полностью совпадает с базой, которую мы использовали в четвёртом и пятом модулях школы при изучении запросов. Поэтому я рассчитываю, что вы знакомы с её справочниками и документами.

Если вы её удалили - скачайте заново по следующей ссылке, распакуйте и подключите в список баз.

Наконец, рабочее место настроено и сейчас мы вместе создадим наш первый отчёт при помощи системы компоновки данных. Он будет очень простым, чтобы продемонстрировать общие возможности системы компоновки данных (сокращенно СКД).

Ставим цель

Цель этого урока - создать отчёт, который в режиме пользователя выводит список клиентов со следующими полями:

  • Имя
  • Пол
  • Любимый цвет клиента.

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

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

Создаём отчёт

Запускаем конфигуратор для базы "Гастроном":

Из главного меню выбираем пункт "Файл"->"Новый. ":

Выбираем "Внешний отчет":

Создаём схему компоновки данных внутри отчёта

Открылось окно создания внешнего отчёта. В качестве имени вводим: "Урок1", а затем жмём кнопку "Открыть схему компоновки данных":

Запустился конструктор создания схемы. Соглашаемся с именем по умолчанию "ОсновнаяСхемаКомпоновкиДанных" и жмём кнопку "Готово":

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

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

Сейчас мы находимся на закладке "Наборы данных". На ней и останемся.

Пишем запрос через конструктор

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

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

Нажимаем на зелёный плюсик и в раскрывшемся списке выбираем пункт "Добавить набор данных - запрос":

Наша задача написать в это поле текст запроса. Вы ещё не забыли как это делается?

В этом запросе мы выбрали три поля ("Наименование", "Пол" и "ЛюбимыйЦвет") из таблицы "Справочник.Клиенты".

Но не торопитесь писать этот текст в поле "Запрос" вручную.

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

Чтобы вызвать этот конструктор нажмём кнопку "Конструктор запроса. " в верхней правой части поля "Запрос":

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

Получилось вот так:

Далее раскроем таблицу "Клиенты" во втором столбце по знаку "Плюс", чтобы увидеть все её поля и перетащим поле "Наименование" из второго столбца в третий, чтобы указать, что из этой таблицы нам нужно запрашивать поле "Наименование":

Получилось вот так:

Поступим точно так же с полями "Пол" и "ЛюбимыйЦвет". Результат будет таким:

Нажмём кнопку "ОК", чтобы выйти из конструктора запроса и увидим, что текст запроса автоматически добавился в поле "Запрос".

Более того на основании текста запроса 1С сама вытащила имена полей (область выше запроса), которые будут использоваться схемой компоновки данных:

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

Настраиваем представление данных

Осталось как-то визуализировать эти данные для пользователя в виде печатной формы. И вот тут СКД может творить чудеса!

Чтобы сотворить такое чудо перейдём на вкладку "Настройки" и нажмём кнопку конструктора настроек (волшебная палочка):

В открывшемся окне укажем тип отчёта "Список" и нажмём "Далее":

В следующем окне выберем (путём перетаскивания) поля, которые нужно будет отобразить в списке (перетащим все из доступных нам: "ЛюбимыйЦвет", "Наименование" и "Пол"):

Получим вот такой результат и нажмём кнопку "ОК":

Конструктор настроек закрылся и появился пункт "Детальные записи":

Отчёт готов, давайте же его проверим. Для этого вначале сохраним отчет в виде внешнего файла.

Сохраняем отчёт в виде файла

Откроем пункт главного меню "Файл"->"Сохранить":

Я сохраню его на рабочий стол под именем "Урок1":

Проверяем отчёт в режиме пользователя

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

Имя пользователя "Администратор", пароля нет:

Через меню выберем пункт "Файл"->"Открыть. ":

И укажем файл отчёта (я сохранял его на рабочий стол под именем "Урок1.erf":

Открылась форма отчёта, нажмём кнопку "Сформировать":

Готово! Вот она наша печатная форма со списком клиентов, их любимым цветом и полом:

Печатную форму можно легко распечатать. Для этого достаточно выбрать в меню пункт "Файл"->"Печать. ":

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

То ли ещё будет, наберитесь терпения

Войдите на сайт как ученик

Для учеников

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

На вопросы учеников — отвечаю по почте, но прежде загляните в ЧАВО (ссылка) .

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

Для добавления нового отчета потребуется выполнить следующие шаги:

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

Пример. Настроим возможность распечатывать отчет “Протокол встречи” в разделе Активности .

Добавить запись отчета Word в Creatio

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

В блоке “Настройка системы” нажмите “Настройка отчетов”.

Откроется раздел Дизайнер отчетов .

Кликните Добавить отчет —> MS Word (Рис. 1).

На заметку. Настройка отчетов FastReport описана в статье Отчеты FastReport документации по разработке.

chapter_print_forms_setup_add_report.jpg

Установите признаки Отображать в разделе и/или Отображать на странице записи , чтобы определить, где отчет Word будет доступен для печати (Рис. 2).

chapter_print_forms_setup_add_report_name_and_place.jpg

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

Настроить содержимое отчета Word

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

Настроить поля отчета

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

chapter_print_forms_setup_report_fields.jpg

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

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

Настроить таблицы отчета

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

Настроить таблицу по данным связанного объекта

Пример. Основным объектом отчета “Протокол встречи” является активность. Настроим, чтобы в протоколе встречи отображалась таблица с перечнем участников активности (записи объекта “Участник активности”, связанные с соответствующей активностью).

На открывшейся странице табличных данных заполните следующие поля (Рис. 4):

  1. В поле Объект таблицы выберите объект, на основании данных которого необходимо сформировать таблицу. Например, чтобы добавить в протокол таблицу с перечнем участников активности, выберите объект “Участник активности”.
  2. В поле Название таблицы укажите заголовок таблицы, который будет отображаться при редактировании внешнего вида шаблона в плагине Word.
  3. В поле Колонка объекта таблицы укажите колонку, по которой таблица должна быть связана с основным объектом отчета. В нашем примере это колонка “Активность”.
  4. В поле Колонка основного объекта укажите колонку, по значению которой будет выполняться фильтрация записей в таблице. В большинстве случаев колонка объекта таблицы — это “Id”.

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

chapter_print_forms_setup_table_fields.jpg

chapter_print_forms_setup_table_sorting.jpg

Укажите порядок сортировки записей в таблице. Для этого выберите порядок сортировки “По возрастанию” или “По убыванию” в меню кнопки рядом с названием колонки, по которой необходимо отсортировать записи в таблице. Например, установите для колонки “Участник” порядок сортировки “По возрастанию”, и список участников встречи будет отображаться в протоколе в алфавитном порядке (Рис. 5).

chapter_print_forms_setup_table.jpg

Чтобы настроенные условия сортировки применились при печати отчета, необходимо, чтобы все колонки, по которым выполняется сортировка, были добавлены в шаблон отчета в плагине Word. Подробнее о добавлении табличных данных в шаблон в плагине читайте в статье Настроить отчет в плагине Word и загрузить в Creatio.

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

При необходимости перейдите на вкладку Фильтры и постройте фильтр, условиям которого должны соответствовать записи таблицы. Например, чтобы в таблице отчета отображались только те участники, которые являются сотрудниками и клиентами вашей компании, постройте фильтр такого вида: “Участник.Тип = Клиент; Сотрудник” (Рис. 6).

chapter_print_forms_setup_table_filter.jpg

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

Настроить таблицу по данным объекта с обратной связью

Пример. Основным объектом отчета “Протокол встречи” является активность. Настроим, чтобы в протоколе встречи вдобавок к таблице с перечнем всех участников активности отображалась отдельная таблица со списком участников продажи, которой посвящена текущая встреча.

На открывшейся странице табличных данных заполните следующие поля (Рис. 7):

  1. В поле Объект таблицы выберите объект, на основании данных которого необходимо сформировать таблицу. Например, чтобы добавить в протокол таблицу с участниками продажи, выберите объект “Участник продажи”.
  2. В поле Название таблицы укажите заголовок таблицы, который будет отображаться при редактировании внешнего вида шаблона в плагине Word.
  3. В поле Колонка объекта таблицы укажите колонку, по которой таблица связана с основным объектом отчета — активностью. В нашем примере это колонка “Продажа” объекта “Участник продажи”.
  4. В поле Колонка основного объекта укажите колонку основного объекта отчета, по которой с ним связана таблица. В нашем примере это колонка “Продажа” объекта “Активность”.

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

chapter_print_forms_setup_table_fields_2.jpg

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

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

Копирование отчета позволяет сократить время настройки похожих отчетов.

При копировании в новый отчет сохраняется шаблон исходного отчета и следующие настройки:

  • колонки,
  • макросы,
  • табличная часть,
  • фильтры.

Перенести пакет с отчетом на другую среду разработки (опционально)

btn_system_designer.jpg

  1. Перейдите в дизайнер системы по кнопке .
  2. В блоке “Конфигурирование разработчиком” перейдите по ссылке “Управление конфигурацией”.
  3. На панели инструментов реестра раздела нажмите Добавить —> Данные (Рис. 8).

scr_add_data.jpg

  • SysModuleReport_ ReportName — отчет. Подключается по Id отчета из таблицы dbo.SysModuleReport базы данных. Например, для отчета “Протокол встречи” это “SysModuleReport_ MeetingMinutes”.
  • SysModuleReportTable_ ReportName — табличная составляющая отчета. Подключается по Id отчета из таблицы dbo.SysModuleReportTable базы данных. Например, для отчета “Протокол встречи” это “SysModuleReportTable_ MeetingMinutes”.

scr_binded_data.jpg

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

Стандартные отчеты настроим за 1 час. Индивидуальные отчеты в среднем занимают 3-4 часа

  • Настроим удобную форму отчету
  • Добавим нужные отборы и фильтры
  • Настроим отправку отчетов на почту
  • Исправим ошибки в отчетах


Как использовать универсальный отчет в 1С 8.3

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

Как настроить универсальный отчет в 1С






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







Должна получится подобная структура. Формируем отчет.


Теперь все данные сгруппированы по номенклатурным группам.



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


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




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






Рассмотрим создание внешнего отчета в 1с 8 без использования системы компоновки данных. Для создания внешнего отчета будем использовать конфигурацию Бухгалтерия 2.0, исходные данные: “Написать отчет по 62 счету бухгалтерского учета в который будут выводится обороты за указанный период в разрезе Контрагентов и Договоров контрагентов.

1. Создание отчета

В первую очередь создадим файл внешнего отчета, для этого зайдем в 1с 8 в режиме Конфигуратор, перейдем в меню Файл -> Новый, либо нажмем на пиктограмму Новый документ.

Пиктограмма Новый документ

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

Создание реквизитов внешнего отчета

2. Создание макета внешнего отчета

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

Конструктор макета 1С 8

В нашем макете будет 4 области:

  • Шапка — в эту область мы будем выводить наименование отчета, период за который он сформирован и шапку таблицы;
  • ДанныеКонтрагент — в эту область мы будем выводит в таблицу данные по контрагенту;
  • ДанныеДоговорКонтрагента — в эту область мы будем выводит в таблицу данные по договору контрагента;
  • Подвал — в эту область мы будем выводить итоговые значения по всему отчету для полей Приход и Расход.

Приступим к созданию областей макета. Для того что бы создать область в макете выделите нужное количество строк и нажмите Меню Таблица -> Имена -> Назначить имя(Либо Ctrl + Shift + N). В область Шапканапишем наименование отчета: Обороты 62 счета, нарисуем при помощи инструмента Границы шапку отчета, а так же зададим параметры НачалоПериода и КонецПериода. При помощи параметров в отчет можно выводить нужные данные, мы будем заниматься эти на следующем этапе разработки, а именно при написании программного кода отчета. Что бы создать параметр в макете выберите нужную ячейку, напишите в ней наименование параметра(без пробелов), щелкните по ней правой кнопкой мыши, в открывшемся меню выберите пункт Свойства. В свойствах ячейки на закладке Макет выберите заполнение Параметр.

Получите понятные самоучители по 1С бесплатно:

Создание параметра в макете отчета

После этого, в ячейке имя параметра будет заключено в угловые скобки(”<>“). В итоге область Шапкадолжна выглядеть так:

Область Шапка макета отчета

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

Область ДанныеКонтрагент макета отчета

В области ДанныеДоговорКонтрагента создадим параметры для вывода наименования договора, а так же для прихода и расхода по 62 счету, при помощи инструмента Границы оформим область в виде строки таблицы. Сделаем небольшой отступ перед параметром ДоговорКонтрагента(это можно сделать при помощи разбиения и объединения ячеек. Правой кнопкой мыши по ячейке -> Объединить или Разбить ячейку), он нужен для того что бы в отчете было видно, что строка по договору находится ниже по иерархии чем строка по контрагенту.

Область ДанныеДоговорКонтрагента макета отчета

В области Подвал создадим параметры для итогов по приходу и расходу.

Область Подвал макета отчета

В итоге мы должны получить такой макет:

Макет отчета по 62 счету

3. Создание формы отчета

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

Конструктор формы отчета

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

Конструктор формы отчета расположение элементов управления

В итоге у нас получится вот такая форма:

Форма отчета 1с 8

Но в таком виде она нас не устраивает, внесем в нее некоторые изменения:

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

В итоге наша форма будет иметь такой вид:

4. Программирование

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

Создание процедуры отрабатывающей нажатие на кнопку

Переключатся между формой и ее модулем можно при помощи закладок внизу формы

Переключение между формой и ее модулем

Для вызова формы выбора периода воспользуемся типовой процедурой Бухгалтерии 2.0 из общего модуля РаботаСДиалогами — ОбработчикНастройкаПериодаНажатие, в нее в качестве параметров нужно передать реквизиты отчета НачалоПериода и КонецПериода.

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

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

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

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

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

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

Далее займемся написанием запроса к базе данных, при помощи которого возьмем обороты по счету 62 из регистра бухгалтерии Хозрасчетный. Определим переменную, в которой будет находиться наш запрос.

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

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

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

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

Окно конструктора запроса 1С 8

Теперь необходимо выбрать нужную нам таблицу базы данных 1С 8. Нам необходима виртуальная таблица Обороты регистра бухгалтерии Хозрасчетный. Найдем ее в левой части окна конструктора

Выбор виртуальной таблицы Хозрасчетный.Обороты в конструкторе запроса

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

Открытие окна параметров виртуальной таблицы

Заполним параметры, периода которые мы передали в запрос. Что бы в тексте запроса использовать параметр следует перед его именем писать символ амперсанда(&)

Заполнение параметров периода виртуальной таблицы запроса 1С 8

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

Также можно воспользоваться конструктором составления условий нажав на кнопку с тремя точками.

Больше никаких условий на виртуальную таблицу налагать не требуется, поэтому нажмем кнопку ОК в окне параметров виртуальной таблицы. Далее необходимо выбрать нужные нам поля из таблицы Хозрасчетной.Обороты(а именно: Контрагент, Договор контрагента, Приход и Расход). Что бы посмотреть список полей доступных в выбранной нами таблице нажмет символ ”+“ возле ее названия. После этого перетащим нужные поля в самую правую область конструктора запросов, которая так и называется: Поля. Если открыть план счетов бухгалтерского учета, то мы увидим, что для счета 62 аналитика по Контрагенту — это Субконто1, а по ДоговоруКонтрагента — Субконто2.

План счетов счет 62

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

Выбор полей таблицы в конструкторе запросов

Заполним псевдонимы выбранных нами полей, для этого перейдем на закладку Объединения/Псевдонимы и зададим нужные имена полей.

Псевдонимы для полей запроса 1С 8

Так как в нашем отчете данные будут выводиться иерархично(Контрагент на первом уровне, а все его договоры на втором), то настроим вывод данных в иерархии при помощи Итогов. Перейдем в конструкторе на закладку Итоги. В группировочные поля перетащим последовательно Контрагент и ДоговорКонтрагента, а в итоговые Приход и Расход.

Создание итогов в конструкторе запросов 1с 8

На этом работа в конструкторе запроса завершена, нажимаем кнопку ОК и видим, что текст нашего запроса появился в программном коде.

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

Таким образом мы получим записи с итогами по всем контрагентам.

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

Для того чтобы данные отчета выводились с иерархией(и разворотами по ”+“) зададим начало автогруппировки строк табличного документа:

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

В начале цикла обнулим параметры Приход и Расход области ДанныеКонтрагент. Для чего это нужно? Представим ситуацию, что по контрагенту Дядя Вася, приход 10, а расход 5, а для за ним следующего контрагента Дядя Петя нет ни прихода ни расхода, в таком случае если мы не обнулим параметры Приход и Расход, то по в строке по контрагенту Дядя Петя попадет приход 5 и расход 10.

После этого заполняем область ДанныеКонтрагент данными элемента выборки

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

Теперь для данного контрагента сделаем выборку по его договорам.

Обход будем осуществлять при помощи цикла Пока.

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

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

На этом вывод данных в области ДанныеКонтрагент, ДанныеДоговорКонтрагент завершен, осталось завершить автогруппировку строк табличного документа.

Полностью циклы отвечающие за вывод данных в области ДанныеКонтрагент и ДанныеДоговорКонтрагент выглядят так:

Осталось вывести итоговые данные в область Подвал и вывести саму область в Табличный документ.

На этом процесс написания внешнего отчета для 1С 8 без использования СКД завершен. Теперь его можно сформировать в режиме 1С:Предприятие 8 и добавить в справочник ВнешниеОбработки Файл отчета рассмотренного в статье вы можете скачать по ссылке.

Смотрите видео по созданию внешней печатной формы для управляемого приложения:

Читайте также: