Добавление внешнего отчета в базу. Добавление внешнего отчета в базу Как добавить отчеты в 1с 8.3

В верхнем меню заходим в Сервис ->->.

После этого появится форма списка справочника. В верхнем меню нажимаем Добавить .

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

Выбираем файл с нужным отчетом и нажимаем Открыть . После добавления файла при необходимости меняем наименование отчета (то как он будет отображаться в списке). Нажимаем ОК .

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

После этого отчетом можно пользоваться, добавление завершено. Чтобы потом открыть этот отчет, также заходим в Сервис ->Дополнительные отчеты и обработки ->Дополнительные внешние отчеты .

Для БП 3.0, ЗУП 3.0, УТ 11, ERP 2.0.

Для добавление внешнего отчета в конфигурациях 1С:Предприятие 8.3 в управляемом интерфейсе (на примере Бухгалтерии 3.0) войдем в соответствующий раздел программы:


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

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


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

Теперь необходимо настроить размещение (то место программы, где будет доступен отчет):


Произвольно выбираем из списка нужный раздел программы:


Теперь необходимо записать изменения в карточке внешнего отчета:

Теперь открываем отчет из интерфейса программы:


Список пока пустой, нажимаем Настроить список :


В форме подбора отмечаем галочкой наш отчет:


Теперь он появился в списке:


По кнопке Выполнить открывается форма отчета:


Создание отчетов – одна из основных функций любой учетной системы. Какие виды отчетов в 1С Бухгалтерия 3.0 существуют, как происходит настройка отчетов в 1С Бухгалтерия 8.3 и какие существуют инструменты, для создания новых отчетов – мы рассмотрим сегодня.

Виды стандартных отчетов

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

Также в каждом разделе программы представлены другие виды стандартных отчетов, например, отчеты по зарплате в 1С 8.3 хранятся в разделе «Зарплата и кадры/Отчеты по зарплате».

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

Рассмотрим вариант настройки на примере добавления дополнительного поля в стандартный отчет «Оборотно-сальдовая ведомость по счету» (выбираем 10 счет). Для этого с кнопки «Показать настройки» перейти на «Дополнительные поля», добавить новое поле, и в форме выбора перейти на нужное нам поле, например, для отражения в отчете артикула номенклатуры выбираем поле «Артикул», которое находится внутри поля «Номенклатура» (для раскрытия поля требуется нажать «+»):


После нажатия «Сформировать» появляется выбранное нами дополнительное поле.

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


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

Формирование отчетов в разрезе документов

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

  • Документ;
  • Справочник;
  • Регистр накопления;
  • Регистр сведений;
  • Регистр расчета.

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

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




*Поля Контрагента там изначально нет.

В поле «Вид сравнение» устанавливаем «Равно», в «Значение» выбираем нужного контрагента из справочника.


В верхней части отчета указываем нужный период и формируем отчет.


Для сделанных нами настроек можно сделать сохранение: для этого нажимаем кнопку «Еще/Сохранить».

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

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

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


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

Конечно, 1С Бухгалтерия 8 обладает очень широкими возможностями. С помощью этой программы можно выполнять множество самых разных задач . Но иногда всё же стандартных встроенных средств не хватает. Что в таком случае делать?

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

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

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

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

Другой способ заключается в модификации конфигурации . К примеру, мне как-то сказал один из моих студентов — "я хочу, чтобы у меня в программе на видном месте была кнопка «Сколько у нас денег?» ". Вполне оправданное желание, однако! (хотя вообще-то такой отчет в программе уже есть )

Тем не менее, несмотря на возможность модифицировать 1С Бухгалтерию по своему усмотрению, мы этот вариант рассматривать не будем, поскольку это дело программистов 1С. Так что-же остается обычному пользователю в таком случае?

Тут была важная часть статьи, но без JavaScript её не видно!

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

Делается это достаточно просто. Находим в интернете требуемый отчет (или обработку — смотря что требуется) и подключаем его к стандартной конфигурации 1С Бухгалтерия 8. Для 1С Бухгалтерии 8.2 следует зайти в меню "Файл / Открыть..." , либо нажать кнопку Открыть на панели инструментов, после чего в открывшемся окне Проводника указать файл внешнего отчета / обработки. Пример на рисунке ниже.


"А как подключить внешний отчет / обработку в версии 1С Бухгалтерия 8.3 ?" — спросят владельцы новой версии 1С Предприятия. Почти так же. Напоминаю в который раз, что разница только в интерфейсе . Пример для 1С Бухгалтерии 8.3 смотрите ниже.

сайт_

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

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

Совет: храните используемые вами внешние отчеты и обработки в специально созданной папке — это удобно. Папку можно создать в папке с базой 1С Бухгалтерия (если у вас файловая база); для удобства можете изменить значок у папки .

Почему их называют "внешними"?

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

Безопасность при работе с подключаемыми модулями

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

Скачивайте внешние обработки только из проверенных источников! Помните — повреждение базы данных в результате ошибки или умышленных действий автора обработки может привести к серьёзным проблемам. Сомневаетесь — сделайте резервную копию базы перед запуском неиспробованной лично вами обработки!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Процедура Кнопка1Нажатие(Элемент) РаботаСДиалогами.ОбработчикНастройкаПериодаНажатие(НачалоПериода,КонецПериода); КонецПроцедуры

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

ТабДок = ЭлементыФормы.ТабДок;

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

Макет = ПолучитьМакет("Макет" );

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

ОбластьШапка = Макет.ПолучитьОбласть("Шапка" ); ОбластьДанныеКонтрагент = Макет.ПолучитьОбласть("ДанныеКонтрагент" ); ОбластьДанныеДоговор = Макет.ПолучитьОбласть("ДанныеДоговор" ); ОбластьПодвал = Макет.ПолучитьОбласть("Подвал" );

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

ТабДок.Очистить();

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

ОбластьШапка.Параметры.НачалоПериода = НачалоПериода; ОбластьШапка.Параметры.КонецПериода = КонецПериода;

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

ТабДок.Вывести(ОбластьШапка);

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

Запрос = новый Запрос;

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

Запрос.УстановитьПараметр("Счет62" ,ПланыСчетов.Хозрасчетный.НайтиПоКоду("62" ));

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

Запрос.УстановитьПараметр("НачалоПериода" ,НачалоПериода); Запрос.УстановитьПараметр("КонецПериода" ,КонецПериода);

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

Запрос.Текст = "" ;

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

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

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

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

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

Счет В ИЕРАРХИИ (&Счет62)

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

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

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

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

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

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

Запрос.Текст = "ВЫБРАТЬ | ХозрасчетныйОбороты.Субконто1 КАК Контрагент, | ХозрасчетныйОбороты.Субконто2 КАК ДоговорКонтрагента, | ХозрасчетныйОбороты.СуммаОборотДт КАК Приход, | ХозрасчетныйОбороты.СуммаОборотКт КАК Расход |ИЗ | РегистрБухгалтерии.Хозрасчетный.Обороты(&НачалоПериода, &КонецПериода, Счет В ИЕРАРХИИ (&Счет62),) КАК ХозрасчетныйОбороты |ИТОГИ | СУММА(Приход), | СУММА(Расход) |ПО | Контрагент, | ДоговорКонтрагента" ;

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

ВыборкаКонтрагент = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

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

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

ИтогоПриход = 0; ИтогоРасход = 0;

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

ТабДок.НачатьАвтогруппировкуСтрок();

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

Пока ВыборкаКонтрагент.Следующий() Цикл КонецЦикла ;

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

ОбластьДанныеКонтрагент.Параметры.Приход = 0; ОбластьДанныеКонтрагент.Параметры.Расход = 0;

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

ЗаполнитьЗначенияСвойств(ОбластьДанныеКонтрагент.Параметры,ВыборкаКонтрагент);

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

ТабДок.Вывести(ОбластьДанныеКонтрагент,1);

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

ВыборкаДоговорКонтрагента = ВыборкаКонтрагент.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

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

Пока ВыборкаДоговорКонтрагента.Следующий() Цикл КонецЦикла ;

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

ОбластьДанныеДоговор.Параметры.Приход = 0; ОбластьДанныеДоговор.Параметры.Расход = 0; ЗаполнитьЗначенияСвойств(ОбластьДанныеДоговор.Параметры,ВыборкаДоговорКонтрагента); ТабДок.Вывести(ОбластьДанныеДоговор,2);

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

ИтогоПриход = ИтогоПриход + ВыборкаДоговорКонтрагента.Приход; ИтогоРасход = ИтогоРасход + ВыборкаДоговорКонтрагента.Расход;

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

ТабДок.ЗакончитьАвтогруппировкуСтрок();

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

ТабДок.НачатьАвтогруппировкуСтрок(); Пока ВыборкаКонтрагент.Следующий() Цикл ОбластьДанныеКонтрагент.Параметры.Приход = 0 ; ОбластьДанныеКонтрагент.Параметры.Расход = 0 ; ЗаполнитьЗначенияСвойств(ОбластьДанныеКонтрагент.Параметры,ВыборкаКонтрагент); ТабДок.Вывести(ОбластьДанныеКонтрагент,1 ); ВыборкаДоговорКонтрагента = ВыборкаКонтрагент.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаДоговорКонтрагента.Следующий() Цикл ОбластьДанныеДоговор.Параметры.Приход = 0 ; ОбластьДанныеДоговор.Параметры.Расход = 0 ; ЗаполнитьЗначенияСвойств(ОбластьДанныеДоговор.Параметры,ВыборкаДоговорКонтрагента); ТабДок.Вывести(ОбластьДанныеДоговор,2 ); ИтогоПриход = ИтогоПриход + ВыборкаДоговорКонтрагента.Приход; ИтогоРасход = ИтогоРасход + ВыборкаДоговорКонтрагента.Расход; КонецЦикла ; КонецЦикла ; ТабДок.ЗакончитьАвтогруппировкуСтрок();

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

ОбластьПодвал.Параметры.ИтогоПриход = ИтогоПриход; ОбластьПодвал.Параметры.ИтогоРасход = ИтогоРасход; ТабДок.Вывести(ОбластьПодвал);

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

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