1с основная форма отчета
Объект 1С "Отчеты" - прикладной объект, предназначенный для представления, просмотра и печати накопленных данных в удобном для анализа виде; это специальный объект метаданных, предназначенный для формирования удобного для пользователя представления данных из таблиц базы данных 1С.
На основе информации из базы данных отчеты выдают печатные формы, содержащие всевозможные реестры, детальную и сводную информацию (например, отчеты "Оборотно-сальдовая ведомость", "Список сотрудников", "Анализ продаж").
Отчеты, как и многие другие объекты конфигурации, могут иметь реквизиты и табличные части, но их смысл отличается от реквизитов и табличных частей справочников и документов. Дело в том, что отчет (и обработки) - это объекты, которые не сохраняются в базе данных, а существуют только в определенные периоды времени, пока с ними работает пользователь. Поэтому назначение реквизитов и табличных частей отчетов (обработок) - указание параметров формирования отчетов и выполнения обработок.
Для отладки отчетов в процессе разработки был создан механизм внешних отчетов. Внешний отчет 1С находится не в конфигурации, а сохранен в отдельный файл (обычно с расширением .erf). Его можно просто открыть, как обычный файл, какв Конфигураторе, что в режиме Предприятие (Файл / Открыть).
Отличие внешних отчетов от встроенных:
- нельзя обратиться к внешнему отчету «по имени», в отличие от встроенного отчета.
Отличия отчета от обработки:
- отчеты нужны для отображения информации, а обработки — для изменения информации;
- в отчетах можно указать Основную схему компоновки данных (СКД) и указать настройки для сохранения параметров отчетов.
В общем случае, для разработки отчетов используется конструктор СКД, что позволяет создавать отчеты без программирования. В то же время, отчет может быть построен полностью программно, с использованием объектов встроенного языка.
Создание отчета на основе Системы компоновки данных (СКД)
Система компоновки данных представляет собой механизм, основанный на декларативном описании отчетов и предназначенный:
- для построения отчетов, а также
- вывода информации, имеющей сложную структуру и содержащей произвольный набор таблиц и диаграмм.
Это самый прогрессивный метод создания отчетов в 1С, рекомендованный и самой фирмой 1С. Система компоновки данных интегрирована в объект конфигурации "Отчет", что позволяет создавать отчеты без программирования.
У объекта конфигурации "Отчет" реализовано свойство "Основная схема компоновки данных".
СКД имеет очень гибкий и функциональный конструктор, который позволяет описать :
- исходные данные, которые будет использовать отчет (наборы данных, связи между наборами данных, вычисляемые поля, ресурсы и т.д.);
- настройки компоновки данных, которые будут использоваться по умолчанию (в том случае, если пользователь не задаст собственные настройки).
Настройки компоновки данных могут быть созданы с помощью специального конструктора настроек компоновки данных, или вручную.
Для одного отчета может быть задано несколько вариантов его визуального представления, то есть одна и та же информация может быть по-разному развернута, сгруппирована и т.д.
Предопределенные варианты задаются в конструкторе СКД на закладке "Настройки":
На форме ниже наименования отчета, при создании формы, программным способом добавляются поля: параметры и отборы СКД, у которых установлена пометка «Быстрый доступ». Состав полей и вид сравнения (равно, больше/меньше, в списке, в группе…) определяется на этапе конфигурирования или в форме настроек.
Если в отчете есть поле типа СтандартныйПериод, то добавляются поля ПериодНачало и ПериодОкончания, кнопка выбора периода. Выбор периода выглядит гораздо аккуратнее, чем типовой диалог выбора стандартного периода или самодельный диалог. (По имени подключаемой процедуры «Подключаемый_СтандартныйПериод_НачалоПериода_ПриИзменении» находим место подключения - процедура ВывестиЭлементыНастройки модуля ОтчетыСервер. Там можно увидеть подробности дополнительной обработки полей).
ПриСозданииНаСервере есть проверка прав доступа. Если типовая проверка не устраивает - смотрите часть 3.
Обратите внимание на стандартные роли ДобавлениеИзменениеВариантовОтчетов, ЧтениеВариантовОтчетов, БазовыеПраваБСП, СохранениеДанныхПользователя, ДобавлениеИзменениеЛичныхВариантовОтчетов. От них зависит внешний вид и возможности работы.
Посмотрим на командную панель:
Кнопка 1. Сформировать в фоновом режиме. Возможен замер времени выполнения(APDEX).
Кнопка 2. Форма настроек. Управление отборами, внешним видом элементов формы и структурой отчета (список, таблица).
Кнопка 3. Управление вариантами отчета. Сохранение пользовательских настроек. (Права и параметры имеют значение)
Про кнопки 4-10 подробно говорить не буду, но обратите внимание на «горячие клавиши» Ctrl-F, Ctrl-Shift-Num +, Ctrl-Shift-Num --, Alt-S, Ctrl-P, Ctrl-S…
Кнопка 11. Позволяет управлять рассылками отчетов, создать рассылку, используя текущие настройки СКД. То есть настройки отчета сохраняются в справочник рассылки. Если в конфигурации отсутствует подсистема рассылки отчетов – кнопка не видна.
Допустим, мы выполняем код ОткрытьФорму(«Отчеты.Ведомость.Форма», ПараметрыОткрыть); Рассмотрим избранные свойства структуры «ПараметрыОткрыть».
Установлена ИСТИНА - отчет сформируется при открытии формы.
Структура содержит отбор, который будет установлен при формировании отчета. В документации ИТС отсутствует. Это наш секрет :))
Вариант формирования отчета. В документации ИТС отсутствует. Это наш секрет :)) Если отсутствует – используется первый из вариантов в алфавитном порядке.
Установлена ИСТИНА – есть возможность выбора вариантов В документации отсутствует. Возможно, устарел.
Установлена Ложь - в настройках отчета будет скрыта вкладка "Структура".
Установлена Ложь - в форме отчета и настроек скрываются кнопки изменения вариантов этого отчета
Первый способ: Чтобы добавлять код, хорошо использовать переопределяемые модули. В конфигурации УТ для ФормыОтчетов предусмотрены процедуры:
Порядок выполнения процедур при открытии:
Порядок выполнения процедур по кнопке "Сформировать":
&НаКлиенте:
1) ОтчетСкомпоноватьРезультат()
2) Сформировать()
&НаСервере:
3) РезультатФормированияОтчета(ФормированиеПриОткрытии, Непосредственно)
4) ПроверитьЗаполнение()
5) ОбработкаПроверкиЗаполненияНаСервере()
6) ЗагрузитьРезультатФормированияОтчета()
Второй способ: если мы хотим изменить какие-то свойства формы, например ограничить отбор в списке поля (1) или выполнить дополнительные действия при выборе значения в поле (2), нам нужно копировать объект метаданных ОбщиеФормы – ФормаОтчета и вставить его в свой отчет. (Не забывайте про общие формы ФормаНастроекОтчета и ФормаВариантаОтчета). Переименуем форму, чтобы в ней не было ссылок на модули ОбщиеФормы – ФормаОтчета. После этого можно смело изменять код. Но нужно учитывать, что поля формы создаются автоматически и называются иначе, чем в схеме СКД.
1. Для изменения свойства поля, найдем в модуле формы процедуру ВывестиЭлементыНастройки и посмотрим в отладчике, как происходит добавление элементов. В переменной СвойстваНастройки хранится связь между полем СКД и идентификатором. Запомним ИмяЭлемента в цикле обработки переменной СвойстваНастройки, потом обработаем.
2. Для обработки выбора значения в форме предусмотрены подключаемые процедуры:
Поставим точку останова – увидим, как происходит обработка выбора значения.
Форум
Назначение отчетов
Отчеты предназначены для вывода информации из базы данных. Отчеты похожи на документы, только эти объекты выполняют разные функции. Документы вводят информацию в базу данных, отчеты выводят результаты.
Состав отчета
У любого отчета в системе 1С есть экранная форма -- Диалог, который пользователь видит на экране. В диалоге пользователь обычно задает параметры формирования отчета, например, период времени. Также у отчета обычно есть одна или несколько бумажных форм -- Таблиц. С помощью таблиц отчет печатается на бумаге. Алгоритм формирования отчета записывается в модуле отчета на встроенном языке 1С. Например, для кадрового отчета "Сотрудники, принятые за период" нужна экранная форма с двумя полями Начало и Окончание. Оба поля будут иметь тип "дата". Модуль отчета должен выбрать из справочника Сотрудники нужных людей и вывести их в таблицу.
Фирма 1С предоставила мощный инструмент формирования отчетов -- Секции. Секция -- это область таблицы, предназначенная для многократного вывода. Например, в отчете по сотрудникам будет секция "Сотрудник", которую нужно будет выводить для каждого сотрудника. Секции могут быть горизонтальными или вертикальными. Можно также выводить пересечения горизонтальных и вертикальных секций.
Поведение сформированного отчета
В системе 1С:Предприятие отчеты могут быть вполне активными объектами. Это означает, что щелкнув например, на сотруднике можно открыть форму этого сотрудника или сформировать более детальный отчет только по этому сотруднику. Это очень удобно для бухгалтеров, которые от сводных отчетов могут перейти к более детальным и узнать, откуда взялась каждая сумма, вплоть до конкретной проводки. Для этого предназначены свойства ячейки Расшифровка и процедура ОбработкаЯчейкиТаблицы.
Хотя в самом начале этой главы было сказано, что отчеты выводят результаты, на самом деле с помощью таблиц можно организовать ввод информации в базу данных. Это бывает удобно, когда нужна сложная форма для ввода данных.
Основы программирования
Ссылка на объект Таблица
Для работы с таблицей требуется сначала создать ссылку на объект Таблица. Если таблица не одна, то следует указать нужную таблицу.
Таб = СоздатьОбъект ("Таблица");
Таб = СоздатьОбъект ("Таблица");
Таб. ИсходнаяТаблица ("НужныйОтчет");
Таб. Показать (); //показать таблицу на экране
Вывод секций
Секция -- это часть таблицы. Секции можно выводить несколько раз, например, в цикле. Вывести секцию -- означает прицепить ее к таблице снизу. После вывода всех секций, таблицу нужно показать на экране.
Таб. ВывестиСекцию ("Шапка");
Пока .
. Таб. ВывестиСекцию ("Сотр");
КонецЦикла ;
Таб. ВывестиСекцию ("Подвал");
Присоединить секцию
Присоединить секцию -- означает прицепить ее к таблице справа.
Таб. ВывестиСекцию ("НомерПП");
Для Месяц = 1 По 12 Цикл
. Таб. ПрисоединитьСекцию ("Месяц");
КонецЦикла ;
Таб. Показать ()
Пересечение секций
Можно выводить область пересечения горизонтальной и вертикальной секций.
Пока СпрСотр. ПолучитьЭлемент ()=1 Цикл
. Таб. ВывестиСекцию ("Сотр|ФИО");
. Для Месяц = 1 По 12 Цикл
. Таб. ПрисоединитьСекцию ("Сотр|Месяц");
. КонецЦикла ;
КонецЦикла ;
Таб. Показать ();
Назначение отчётов программного продукта 1С – вывод актуальной информации о хозяйственных операциях в определённом формате из сформированной документами базы данных. Документы и Отчёты в 1С взаимосвязаны и похожи друг на друга, но функция Документа ввести данные о хозяйственных операциях в базу данных, задача Отчёта – вывести данные в определённом формате. Система Компоновки Данных (далее СКД) позволила создавать отчёты по-новому. Так, в решении 1С версии 8.2 СКД позволяет создавать отчёты с использованием принципа «программирования мышкой». Для этих целей в программе также предусмотрен конструктор запроса. СКД – система для формирования сложных отчётов, в которых предусмотрен функционал гибких настроек.
Основные свойства отчётов:
- Каждый отчёт в системе 1С имеет свою экранную форму;
- У одного отчёта может быть несколько печатных форм;
- Алгоритм создания каждого отчёта записан на встроенном языке 1С;
- Позиции в отчётах активны и могут вести к большей детализации выбранного объекта.
Настройка отчётов в 1С
Самостоятельная настройка позволяет получить нужный вид отображения. Отчёты могут иметь свою особую форму настройки для каждого вида.
Алгоритм настройки.
В форме отчёта в верхней панели есть кнопка «Настройка». Существуют два варианта корректировки: стандартный и расширенный. Стандартный вариант содержит модули представления, правила группировки строк и колонок, варианты отбора. Расширенная форма предполагает указание на общие параметры представления, определение формата группировки, способы и варианты отбора, даёт возможность вводить дополнительные поля, заказывать оформление и выполнять сортировку по указанным правилам.
Стандартная форма Отчёта в 1С
Параметры ввода сгруппированы по группам:
- Показатели представления;
- Группировки строк;
- Отборы;
- Группировки колонок.
Неправильная настройка отчёта выдаст пустую итоговую форму или большое количество ненужной информации.
Как делать отбор данных для формирования отчётов?
- Выбирать в Представлении нужно только те данные, которые пользователь хочет увидеть в итоговой форме.
- Нужные показатели необходимо пометить галочкой.
- Указать детализацию вывода данных.
- Определить, какие итоги должны быть в отчёте.
Детализация данных
Параметры, способы и задачи детализации данных:
- Группировки строк и колонок.
- Вывод общих итогов.
- Вывод детальных записей.
Группировку можно делать по любому реквизиту отчёта. Параметр группировки показывает, как выводить в отчёте данные по строкам и колонкам. Чем больше выбор в параметрах Группировки, тем более детализированные Отчёты в 1С получает пользователь. Важно правильно задать порядок группировки, чтобы, к примеру, сначала шли подразделения или отделы, а уже внутри указывались сотрудники, а не наоборот.
Группировка имеет следующие способы отображения:
- Поэлементный вывод данных;
- Иерархическое построение информации;
- Иерархия записей без их детализации.
Группировка колонок отличается от группировки строк только направлением детализации, вниз или направо.
Для эффективной работы с базой данных нужно уметь ограничивать выводимую информацию. Ограничение выводимых данных производится настройками периода и отбора. Настройка периода определяет временной интервал вывода информации. Функционал Отбора позволит указать все остальные актуальные ограничения. Если нужен нестандартный отбор, то можно настроить форму Отчёта индивидуально. Для этого нужно добавить новый вариант Отбора. Возможности стандартных отборов доступны по кнопке «Быстрые отборы», индивидуальные отборы вызываются через форму настройки.
Общие рекомендации
Прежде чем настраивать форму Отчёта, нужно представить конечный вариант. Лучше, когда макет отчёта существует в печатном виде. Следует взять отчёт по форме максимально приближенной к конечному формату. Настроить Отчёты в 1С по параметрам: период, показатели, разрез аналитики, ограничение выводимой информации. Настройка – самый важный этап до выведения итоговых результатов. Чтобы найти нужную информацию в отчёте не составило труда, необходимо правильно сгруппировать итоговые данные и ввести продуманные ограничения.
Форма — это основной инструмент взаимодействия пользователя с системой.
Существует два типа форм:
- Форма — обычная форма, унаследованная от предыдущих версий платформы 1С:Предприятие 8.0 и 8.1.
- УправляемаяФорма — более современная форма, которая появилась начиная с платформы 1С:Предприятие 8.2. Она основана на декларативном описании состава и расположения элементов управления;
Для программного открытия обоих типов форм используются всего пара функций:
-
— открывает форму объекта; — возвращает объект типа Форма или УправляемаяФорма , который впоследствии можно открыть;
Поскольку технологическая платформа 1С:Предприятие 8 способна генерировать платформы самостоятельно, то можно выделить несколько типов форм:
- Основная форма объекта;
- Вспомогательная форма объекта;
- Произвольная форма (не привязана к конкретному объекту);
Основная форма объекта
Основная форма — это форма, назначенная объекту в качестве основной формы, которая и будет открываться по-умолчанию.
Чтобы программно открыть основную форму объекта достаточно выполнить следующий простенький код:
где Справочник.ФизическиеЛица.ФормаОбъекта — полный путь к основной форме объекта (ознакомьтесь со списком основных объектов платформы 1С:Предприятие 8), а ФормаОбъекта — зарезервированное имя основной формы объекта. Кроме этого имени, зарезервирован еще ряд имен:
- ФормаКонстант (ConstantsForm) — форма констант по умолчанию;
- ФормаОбъекта (ObjectForm) — форма объекта по умолчанию (элемента справочника, документа, плана счетов и т.п);
- ФормаГруппы (FolderForm) — форма группы по умолчанию (группы справочника, плана счетов и т.п.);
- ФормаСписка (ListForm) — форма списка по умолчанию (справочника, документа, плана счетов, регистра и т.п.);
- ФормаВыбора (ChoiceForm) — форма выбора по умолчанию (справочника, документа, плана счетов и т.п);
- ФормаВыбораГруппы (FolderChoiceForm) — форма выбора группы по умолчанию (справочника, документа, плана счетов и т.п);
- ФормаЗаписи (RecordForm) — форма записи регистра сведений по умолчанию;
- Форма (Form) — форма отчета или обработки по умолчанию;
- ФормаНастроек (SettingsForm) — форма настроек отчета по умолчанию;
- ФормаЗагрузки (LoadForm) — форма загрузки настроек отчета;
- ФормаСохранения (SaveForm) — форма сохранения настроек отчета;
- ФормаВарианта (VariantForm) — форма редактирования варианта отчета;
- и т.п.
Вспомогательная форма объекта
Вспомогательная форма — это любая другая форма, не назначенная в качестве основной.
Чтобы программно открыть вспомогательную форму объекта необходимо выполнить следующий код:
Как видите, достаточно было указать имя формы (как оно задано в конфигураторе), после ключевого имени Форма
Произвольная форма
Произвольная форма — это форма, в которой не выбран основной реквизит.
Открытие произвольной формы ничем не отличается от открытия вспомогательной формы. Код используется тот же самый
Открытие формы существующего объекта
Для открытия формы существующего объекта необходимо модифицировать наш код. Забегая вперед, скажу, что мы будем использовать параметры формы:
Служебный параметр Ключ обозначает ссылку на объект информационной базы, которую требуется открыть
Читайте также: