Создание отчета в 1с 8.3. Добавление внешнего отчета в базу. Формирование отчетов в разрезе документов

Прежде, чем начинать разговор об отчетности в 1С важно указать, что отчетность может быть трех видов:

  1. Регламентированной;
  2. Стандартной;
  3. Собственной.

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

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

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

Стандартная отчетность представляет собой общеиспользуемые формы отображения хозяйственных операций.

Регламентированная отчетность

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

  • Налоговую службу;
  • Федеральную статистическую службу;
  • Различные фонды и надзирающие органы.

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

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

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

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

Одним из наиболее старых и важных для отражения хозяйственной деятельности предприятия документов является «Бухгалтерский баланс». Актуальная на данный момент форма разработана в 2010 году в Министерстве Финансов Российской Федерации и утверждена приказом №66 от 02.06.2010. Согласно этому приказу, начиная с 2013 года все организации, осуществляющие деятельность на территории РФ должны ежегодно его сдавать в налоговые органы.

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

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

В открывшейся форме (Рис.2) мы увидим:

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

Рис.2

С помощью соответствующих кнопок мы можем:

  1. Создать необходимый нам отчет;
  2. Загрузить его из файла, сохраненного на компьютере;
  3. Проверить, правильно ли сформирована выгрузка и соответствуют ли контрольные суммы заложенным в программе алгоритмам;
  4. Вывести на печать табличный документ, сформированный на основании внесенных данных;
  5. Создать и отправить файл выгрузки.

Необходимый нам «Бухгалтерский баланс» мы можем найти нажатием на кнопку «Создать». Результатом клика будет форма (Рис.3)
Рис.3

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

Прежде, чем приступить к внесению основных данных, программа предложит заполнить некоторые поля (Рис.4)

Рис.4

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

Нажав на кнопку «Создать» мы откроем соответствующую форму (Рис.5).

Рис.5

Сразу следует обратить внимание на одно обстоятельство: «Бухгалтерская отчетность» — это не только «Бухгалтерский баланс», но еще и:

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

И все эти отчеты можно сформировать нажатием одной кнопки «Заполнить» (Рис.6), выбрав «Все отчеты».

Рис.6

Для заполнения конкретного документа необходимо выбрать «Текущий».

Заполненная форма «Бухгалтерского баланса» представлена на Рис.7

Рис.7

В любое поле можно добавить собственные данные, нажав на команду «Добавить строку».

Все цифры, имеющиеся в ключевых полях можно расшифровать, кликнув на соответствующую кнопку в шапке.

Форма расшифровки дебиторской задолженности показана на Рис.8.

Рис. 8.

Двойной клик на любой сумме расшифровки открывает стандартный отчет «Оборотно-сальдовая ведомость по счету».

Стандартные отчеты

«Оборотно-сальдовая ведомость», «Анализ субконто», «Карточка счета», «Шахматная ведомость» и многие другие формы, позволяющие анализировать бухгалтерские данные, принято называть стандартными отчетами.

Рассмотрим принцип их работы на основании «Оборотно-сальдовой ведомости». Форма на Рис.1 показывает, что стандартные и регламентированные отчеты можно вызвать из одной подсистемы.

Откроем нужный нам объект (Рис.9)

Рис.9

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

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

Рис.10

Рассмотрим подробнее эту структуру:

  1. Группировка – установленная галочка «По субсчетам», показывает, что форма будет содержать данные в разрезе не только основных счетов, но и их подгрупп;
  2. Отбор – здесь пользователь может указать по какой организации, подразделению или счету он хочет видеть данные, а также определить необходимость вывода информации по забалансовым счетам;
  3. Показатели – определяется, будут ли выводиться цифры по бухгалтерскому или налоговому учету;
  4. Развернутое сальдо – по каким счетам и субсчетам требуется вывод развернутой информации;
  5. Дополнительные поля – определяют внешний вид формы;
  6. Оформление – надо ли выделять красным отрицательные величины и уменьшать автоотступ.

Как и в регламентированном отчете «Бухгалтерский баланс» в оборотке можно вызвать форму расшифровки того или иного значения.

Собственные отчеты

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

  • Универсальный отчет;
  • Схема компоновки данных (СКД).

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

Универсальный отчет менее универсален, но намного проще в работе, его можно вызвать из той же подсистемы. На Рис.11 нами показан внешний вид этого объекта

Рис.11

Что мы видим:

  • Стандартный выбор периода;
  • Тип объекта, по которому мы хотим вывести информацию (в данном случае – регистр накопления, но может принимать значения справочник, регистр сведений, документ, регистр бухгалтерии);
  • Конкретное наименование объекта метаданных («ЕСН сведения о доходах»);
  • Таблица, к которой мы обращаемся – в данном случае «Обороты» (для регистров накопления может также принимать значения «Остатки» и «Остатки и обороты»).

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

Возможности «Универсального отчета» в программе 1С 8.3 Бухгалтерия.

В программе 1С 8.3 Бухгалтерия предприятия 3.0 в разделе «Отчеты» существует множество различных отчетов по каждому виду деятельности. В основном их достаточно для повседневного учета. Но иногда для анализа той или иной проблемы необходимо копать глубже, вплоть до сравнения, например, записей в документе, и в регистрах, на которые он влияет. А бывают случаи, когда стандартных отчетов просто-напросто не хватает.

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

Общее описание универсального отчета в 1С 8.3

Для начала разберемся где найти универсальный отчет? Если зайти в меню «Отчеты», а потом нажать ссылку «Универсальный отчет», мы увидим вот такое окно:

Вкратце пройдемся по его элементам управления.


С верхней строчкой закончили.

  • Ниже самая интересная кнопка – это «Показать настройки». Здесь лучше показать на примере

Инструкция по настройке универсального отчета 1С 8.3

Так как мы работаем в программе 1С:«Бухгалтерия предприятия 3.0», то прежде всего нас интересуют бухгалтерские регистры. В конфигурации 3.0 нам доступен только один – «бухгалтерский и налоговый учет». Выбираем его. Посмотрим обороты по 10.01 «Материалы» счету.

Выбираем период. У меня это будет весь 2012 год. Далее нажимаем кнопку «Показать настройки»:

Что бы получить наименования материалов, выберем группировку со 1-му субконто. Именно в нем хранится наименование, точнее ссылка на номенклатуру.

Переходим на закладку «Отборы»:

Здесь нам нужно указать, что мы хотим видеть только счет 10.01.

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

Нажмем кнопку сформировать, и посмотрим, что у нас получилось:

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

Заходим опять в настройки и сразу заходим на закладку «Показатели»:

Убираем флажки с тех колонок, которые нам выводить не надо.

На закладке «Сформировать» можно указать поле, по которому будет происходить сортировка. Например, что бы материалы вышли по алфавиту:

Нажимаем «Сформировать»:

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

Теперь отчет можно распечатать, либо отправить по электронной почте.

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

По материалам: programmist1s.ru

Рассмотрим создание внешнего отчета в 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 и добавить в справочник ВнешниеОбработки Файл отчета рассмотренного в статье вы можете скачать по .

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

Мы довольно подробно рассмотрели настройки отчетов, реализованных на базе СКД. Теперь разберем более тонкие и детальные настройки вариантов отчета. Окно «продвинутых» настроек варианта отчета вызывается по команде «Еще» - «Прочее» - «Изменить вариант отчета».

Окно изменения варианта отчета разделено на две части:

1. Структура отчета.

2. Настройки отчета.


Раздел структуры варианта отчета аналогичен вкладке «Структура» стандартных настроек отчета. Назначение и настройка группировок подробно рассмотрена в ч. 1 статьи.

Таблица структуры варианта отчета, кроме непосредственно колонки с группировками, содержит несколько дополнительных колонок:

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

Раздел настроек состоит из следующих вкладок:

1. Параметры. Содержит параметры СКД, доступные пользователю.

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


Таблица параметров представлена в формате «Параметр»-«Значение». При необходимости можно менять значения параметров. Нажатие на кнопку «Свойства элемента пользовательских настроек» открывает пользовательские настройки элемента.


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

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

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


Пользователь может добавить два вида полей:

  • Новое поле выбор…
  • Новое поле выражение…

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


Например, вычислим оценку количества продаж. Будем считать, что, если продано меньше 10 единиц товара, продали мало, а если больше 10 единиц - много. Для этого зададим 2 значения вычисляемого поля: первое будет с отбором «Количество товаров Меньше или равно "10"», второе с отбором «Количество товаров Больше "10"».

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

Например, вычислим средний процент скидки. Средний процент скидки рассчитывается по формуле: [Сумма продаж без скидки] - [Сумма продаж со скидкой] / [Сумма продаж без скидки]. Необходимо помнить, что сумма продаж без скидки может быть нулевой, поэтому используем оператор ВЫБОР для проверки. Получим следующие выражения:

· Для детальных записей:

Выбор

Когда [Сумма продаж без скидки] = 0

Тогда 0

Иначе [Сумма продаж без скидки] - [Сумма продаж со скидкой] / [Сумма продаж без скидки]

Конец

· Для итоговых записей:

Выбор

Когда Сумма([Сумма продаж без скидки]) = 0

Тогда 0

Иначе Сумма([Сумма продаж без скидки]) - Сумма([Сумма продаж со скидкой]) / Сумма([Сумма продаж без скидки])

Конец

Как было сказано ранее, в выражении итоговых записей используем агрегатную функцию «Сумма».

3. Группируемые поля. Содержит поля, по которым будет группироваться результат варианта отчета. Группируемые поля настраиваются отдельно для каждой из группировок, но можно задать общие группируемые поля для варианта отчета, если выбрать в дереве структуры корень «Отчет». Можно добавить поле из результата отчета, пользовательское поле или выбрать авто поле, тогда система подберет поля автоматически. Также данная вкладка позволяет изменять порядок следования группируемых полей.


4. Поля. Содержит поля, которые будут выведены в результат варианта отчета. Поля настраиваются отдельно для каждой из группировок, но можно задать общие поля для варианта отчета, если выбрать в дереве структуры корень «Отчет». Можно добавить поле из результата отчета, пользовательское поле или выбрать авто поле, тогда система подберет поля автоматически. Также данная вкладка позволяет изменять порядок следования полей.

Поля можно группировать, чтобы логически выделить какую-либо часть отчета или задать особое расположение колонок. При добавлении группы становится активна колонка «Расположение» и позволяет выбрать один из вариантов расположения:

  • Авто - система располагает поля автоматически;
  • Горизонтально - поля располагаются горизонтально;
  • Вертикально - поля располагаются вертикально;
  • В отдельной колонке - поля располагаются в разных колонках;
  • Вместе - поля располагаются в одной колонке.


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


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


7. Условное оформление. Содержит элементы условного оформления, используемые в варианте отчета. Настройка условного оформления была подробно рассмотрена в части 1 данной статьи. Условное оформление настраивается отдельно для каждой из группировок, но можно задать общие элементы условного оформления для варианта отчета, если выбрать в дереве структуры корень «Отчет».


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


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


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

Шаг 1. Где находится Универсальный отчет в 1С 8.3

Универсальный отчет в 1С 8.3 вызывается через раздел Отчеты – Универсальный отчет:

Форма Универсального отчета выглядит так:

Шаг 2. Как формировать Универсальный отчет для поиска ошибок в учете

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

Важно! Чтобы понять по какому регистру формировать Универсальный отчет в 1С 8.3, необходимо пройти по блок-схеме, представленной ниже, и понять в результате проведения какого документа можно найти необходимый регистр:

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

Шаг 3. Как настроить универсальный отчет в 1С 8.3

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

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

  • На закладке Отбор установим отбор по нужной организации при помощи кнопки Добавить:

В результате отчет будет иметь такой вид:

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

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

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

Шаг 4. Как исправить найденную ошибку

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

В результате получим следующую картину:

Шаг 5. Как пользоваться Универсальным отчетом в 1С 8.3

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

По регистру бухгалтерии

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

Чтобы не загромождать отчет на закладке Показатели снимем флажки у лишних показателей:

При помощи следующих команд управления окнами:

Можно расположить окна с отчетами рядом для удобства сравнения данных:

По регистру сведений

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

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

При наличии в базе 1С 8.3 нескольких организаций можно установить отбор по нужной организации на закладке Отбор. Получим вот такой вариант:

По справочнику

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

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


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

В результате получим отчет такого вида:

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

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

Вопрос №1

Как в Универсальном отчете сделать выборку только по конкретному покупателю и узнать, сколько конкретной (определенной) номенклатуры товара ему продано?

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

Настройка Универсального отчета в данном случае осуществляется следующим образом:

  • Период;
  • Регистр бухгалтерии;
  • Журнал проводок (бухгалтерский и налоговый учет);
  • Движения субконто:
  1. Далее нажимаем на кнопку Показать настройки, на закладке Отбор добавляются значения:
  • Счет Дт – Равно – 62.01;
  • Счет Кт – Равно – 90.01.1:

  1. На закладке Группировка добавляются значения:
  • Субконто 1 Дт;
  • Субконто 3 Кт:

  1. После данных настроек необходимо нажать кнопку Сформировать и Универсальный отчет в 1С 8.3 будет построен по нужной форме:

Вопрос №2

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

Ответ: Построим в Универсальном отчете анализ по регистру накопления Расходы при УСН. Настройка Универсального отчета в данном случае осуществляется следующим образом:

  1. В шапке отчета для отбора информации указываются следующие значения:
  • Период;
  • Расходы при УСН;
  • Остатки и обороты:
  • Вид расхода;
  • Элемент расхода:

  1. На закладке Показатели значения должны быть установлены как на рисунке:

Из отчета видим, что некоторые расходы по графе Отражение в НУ указаны как Не принимаются . Это означает, что данные расходы не будут автоматически включаться программой в КУДиР и при вводе документов допущена ошибка. Необходимо исправить аналитику в таких документах, то есть статья затрат должна иметь значение Принимаются в НУ как показано на рисунке:

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

Вопрос №3

В КУДиР в расходы НУ не попадает стоимость проданного товара. Как найти ошибку с помощью Универсального отчета?

Ответ: В 1С 8.3 расходы принимаются в КУДиР в соответствии в выставленными условиями в учетной политике. При реализации товаров в соответствии с НК РФ такими условиями являются: товар должен быть оприходован, оплата за него произведена поставщику и отражена реализация данного товара. Когда все три условия выполнены, то расходы будут включены в КУДиР.

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

  1. В шапке отчета для отбора информации указываются следующие значения:
  • Период;
  • Регистр накопления бухгалтерии;
  • Расходы при УСН;
  • Остатки и обороты:
  1. Далее нажимаем на кнопку Показать настройки, на закладке Группировка добавляются значения:
  • Вид расхода;
  • Элемент расхода:

  1. На закладке Показатели значения должны быть установлены как на рисунке:

  1. После данных настроек необходимо нажать кнопку Сформировать и отчет будет построен по нужной форме:

Как видно из отчета, причина по которой расход по приобретенным товарам не попадает в КУДиР – это отсутствие оплаты поставщику за товар.

Следовательно, либо оплата за товары поставщику не правильно проведена, либо ее действительно просто не было и следовательно расход по приобретенным товарам не должен попасть в КУДиР.

Вопрос №4

Как посмотреть цену прихода товара в 1С Предприятие 8.3 (8.3.8.1964) с помощью Универсального отчета?

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

  1. В шапке отчета для отбора информации указываются следующие значения:
  • Период;
  • Документ;
  • Поступление (акты, накладные);
  • Товары:
  1. Далее нажимаем на кнопку Показать настройки, на закладке Группировка добавляется значение Номенклатура:

  1. На закладке Показатели значения должны быть установлены как на рисунке:

  1. После данных настроек необходимо нажать кнопку Сформировать и отчет будет построен по нужной форме:

ВНИМАНИЕ! Обращаем внимание, что не любую задачу можно решить с помощью Универсального отчета. Главное его неудобство, что он работает ТОЛЬКО с одним объектом анализа: справочником, документом, бухгалтерским регистром, регистром сведений или регистром накопления.

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