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

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИИ

федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«Самарский государственный университет»

Факультет экономики и управления

Документы и работа с ними в 1:с «Предприятие»

Выполнила студентка

2 курса 23201.50 группы

Сидоренко Анна

Преподаватель

Климентьева С.В.

Введение 3

Назначение документов 4

Сравнение документов с другими объектами 9

Работа с документами 11

Заключение 13

Список используемой литературы 14

Введение

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

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

В системе «1С: Предприятие» возможен «Обмен файлами»:

    Средства импорта и экспорта информации через, файлы формата DBF и XML позволяют организовать обмен данными с любыми системами.

    Сохранение печатных форм в форматах Microsoft Excel и HTML.

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

    Получать доступ к данным «1С: Предприятия» из других программ.

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

В реферате будет рассмотрен вопрос о том, что такое документы в программе 1С: Предприятие, и как с ними работать.

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

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

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

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

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

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

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

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

Документ обычно имеет печатную форму. Печатная форма полностью формируется средствами встроенного языка 1С, что придает большую гибкость программе. Это одна из причин ошеломляющего успеха системы 1С: Предприятие. Печатная форма документа - это фактически отчет, формируемый обычно из формы открытого документа и содержащий сведения из этого документа. Чтобы научиться формировать печатные формы, вам нужно изучить главу Отчеты (объект «Таблица»).

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

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

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

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

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

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

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

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

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

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

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

У журнала документов есть экранная форма, где можно настраивать отображаемые колонки. Можно создавать дополнительные колонки, которые будут отображать информацию из документов. Например, в журнале Приказы Кадровые удобно сразу видеть, к какому сотруднику относится каждый документ, для этого создается Графа журнала Сотрудник

Ведения учета в 1С – это последовательный ввод документов 1С, отражающих хозяйственную деятельность компании. То есть — покупки, продажи и прочее.

Таким образом один из ключевых столпов, на которых работает 1С – это документы 1С.

Давайте рассмотрим в этом уроке — что такое документы 1С и принципы работы с ними.

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

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

Таким образом:

  • Есть вид учета: денежных средств, товаров и прочего.
  • Информация из справочников определяет разрез вида учета: касса, счет в банке, товар.
  • Документы 1С [каждый] определяют движение количества и/или суммы по разрезу в учете: касса +1000 рублей, счет -1000 рублей, товар +10 штук.

Зачем нужны Документы 1С

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

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

Сейчас на каждый чих придумана такая своя бумажка. Называется она [в целом] [первичный] документ учета. А в частности – конкретные называния документов: приходная накладная [на товары], счет-фактура, кассовый ордер.

Когда уже появилась 1С и другие программы учета, стало ясно, что как таковые первичные документы в программе не нужны – если цель посчитать сколько итого заработали или есть товаров. Например, можно просто записывать в некую таблицу или журнал движение денег по кассе и будет Вам итого (как в Excel).

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

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

Где расположены Документы 1С

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

Для администратора (т.е. того самого программиста) есть стандартное меню, которое содержит все документы 1С конфигурации. Это меню Операции / Документы 1С, через который можно открыть любой документ.

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

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

Как выглядят Документы 1С

Перед тем, как начать работать с конкретным документом №33 от 1 октября, Вы открываете список документов.

Список бывает двух видов:

  • Простой список документов 1С конкретного вида (на сленге часто называют ДокументСписок), например «Список приходных накладных»
  • Журнал документов 1С – это отдельный Объект 1С, который позволяет создать сплошной список разных видов документов, например «Список складских документов».

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

  • Дата документа
  • Номер документа
  • Проведен по регистрам.

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

Чтобы провести документы 1С — нужно нажать или кнопку ОК (расшифровывается как Записать и Провести), или кнопку Провести (в меню по правой кнопке мыши в списке документов или кнопка в панели вверху окна документа).

Провести документы 1С можно .

2) К ним конечно же добавляются вторичные, но не менее важные учетные признаки:

  • Организация
  • Контрагент (т.е. клиент)
  • Сумма и валюта (т.е. рубли, доллары) документа.

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

При двойном щелчке мышкой на конкретном документе – открывается форма (т.е. окно) самого документа. Она делится на «шапку» (обычно основные перечисленные выше поля) и закладки с табличными частями (таблицами).

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

Документы 1С отличают один от другого – датой и номером. Это его главные уникальные поля. Номера 1С присваивает автоматически.

Усложнение 1. Часто номера документов должны быть с «префиксом» по организации, т.е. не «001», а «ОА0001» и «БВ001». Префикс тогда указывается в справочнике организаций – для одной ОА, для другой БВ.

Усложнение 2. Бывает, что у разных документов должна идти сплошная уникальная нумерация подряд. Для этих случаев есть объект 1С – Нумератор. Он расположен внутри ветки конфигурации Документы, в самом верху.

Усложнение 3. Последовательности. Мы рассмотрим в уроке «Дата 1С».

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

Документы 1С — настройка и разработка

Создание новых документов 1С или изменение существующих проводится в конфигураторе. Методика работы – такая же, как и с другими объектами. Общие принципы мы рассматривали в предыдущих уроках.

Документы 1С — основные особенности по закладкам конфигуратора:

Главная Для начинающих разработчиков Учимся программировать

Как проверить тип значения документа, справочника?

Во-первых, во встроенном языке для работы с одним прикладным объектом реализовано несколько типов.

Например, задачи, которые в 1С:Предприятии 7.7 решал тип Документ решаются теперь несколькими типами. Они разделены по своему назначению.

Тип ДокументОбъект используется для записи и удаления отдельных документов.

Тип ДокументВыборка используется для перебора документов, хранящихся в базе данных.

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

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

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

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

Например:

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

В платформе «1С:Предприятие» за построение отчётов отвечает механизм под названием «Система компоновки данных» (сокращенно СКД). В этой статье мы постараемся дать краткое описание идеи и архитектуры механизма СКД и его возможностей.


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

Немного истории

В самой первой версии платформы «1С:Предприятие 8», версии 8.0, отчеты делались так:
  1. Писался один или несколько запросов на языке запросов 1С (SQL-подобный язык, подробнее о нем ниже).
  2. Писался код, который переносил результаты выполненных запросов в табличный документ или в диаграмму. Код также мог делать работу, которую в запросе сделать невозможно – например, вычислял значения, используя встроенный язык 1С.
Подход прямолинейный, но не самый удобный – визуальных настроек минимум, все приходится программировать «врукопашную». А один из козырей на тот момент совсем новой платформы «1С:Предприятие 8» - это минимизация в прикладном решении объема кода, который нужно писать вручную, в частности, за счет визуального проектирования. Логично было бы пойти этим же путем и в механизме построения отчетов. Что и было сделано путем разработки нового механизма - Системы Компоновки Данных.

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

Постановка задачи

Задача перед командой разработки стояла такая – сделать систему создания отчетов, основанную не на алгоритмическом (т.е. через написание кода), а на декларативном подходе к созданию отчетов. И мы считаем, что задачу успешно решили. По нашему опыту, около 80% требуемой отчетности может быть реализована с помощью СКД без единой строчки кода (за исключением написания формул вычисляемых полей), по большей части - через визуальные настройки.
Разработка первой версии СКД заняла около 5 человеко-лет.

Два языка

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

Язык запросов

Язык запросов основан на SQL и легко осваивается знающими SQL. Пример запроса:

Легко видеть аналоги стандартных для SQL-запроса секций - SELECT, FROM, GROUP BY, ORDER BY.

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

  • Обращение к полям через точку. Если поля какой-либо таблицы имеют ссылочный тип (хранят ссылки на объекты другой таблицы), разработчик может в тексте запроса ссылаться на них через ".", при этом количество уровней вложенности таких ссылок система не ограничивает (например, ЗаказКлиента.Соглашение.Организация.Телефон).
  • Многомерное и многоуровневое формирование итогов. Итоги и подитоги формируются с учетом группировки и иерархии, обход уровней может выполняться в произвольном порядке с подведением подитогов, обеспечивается корректное построение итогов по временным измерениям.
  • Поддержка виртуальных таблиц. Виртуальные таблицы, предоставляемые системой, позволяют получить практически готовые данные для большинства прикладных задач без необходимости составления сложных запросов. Так, виртуальная таблица может предоставить данные по остаткам товаров в разрезе периодов на какой-то момент времени. При этом виртуальные таблицы максимально используют хранимую информацию, например, ранее рассчитанные итоги и т.д.
  • Временные таблицы. Язык запросов позволяет использовать в запросах временные таблицы. С их помощью можно повысить производительность запросов, в некоторых случаях снизить количество блокировок и сделать текст запроса более легким для восприятия.
  • Пакетные запросы. Для более удобной работы с временными таблицами в языке запросов поддерживается работа с пакетными запросами - таким образом, создание временной таблицы и ее использование помещаются в один запрос. Пакетный запрос представляет собой последовательность запросов, разделенных точкой с запятой (";"). Запросы в пакете исполняются один за другим. Результатом выполнения пакетного запроса, в зависимости от используемого метода, будет являться либо результат, возвращаемый последним запросом пакета, либо массив результатов всех запросов пакета в той последовательности, в которой следуют запросы в пакете.
  • Получение представлений ссылочных полей. Каждая объектная таблица (в которой хранится справочник или документ) имеет виртуальное поле - «Представление». Это поле содержит текстовое представление объекта и облегчает работу создателя отчетов. Так, для документа это поле содержит всю ключевую информацию - название типа документа, его номер и дату (например, «Продажа 000000003 от 06.07.2017 17:49:14»), избавляя разработчика от написания вычисляемого поля.
  • и др.
Механизм запросов автоматически модифицирует запрос с учетом ролей , к которым принадлежит пользователь, от имени которого выполняется запрос (т.е. пользователь увидит только те данные, которые имеет право видеть) и функциональных опций (т.е. в соответствии с настроенной в прикладном решении функциональностью).

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

Например:

  • ВЫБРАТЬ. В этом предложении описываются поля, которые пользователь сможет выбирать для вывода. После данного ключевого слова через запятую перечисляются псевдонимы полей из основного списка выборки запроса, которые будут доступными для настройки. Пример: {ВЫБРАТЬ Номенклатура, Склад}
  • ГДЕ. Описываются поля, на которые пользователь сможет накладывать отбор. В данном предложении используются поля таблиц. Использование псевдонимов полей списка выборки недопустимо. Каждая часть объединения может содержать собственный элемент ГДЕ. Примеры: {ГДЕ Номенклатура.*, Склад }, {ГДЕ Документ.Дата >= &ДатаНачала, Документ.Дата <= &ДатаКонца}
  • и др.
Пример использования расширений:

Язык выражений компоновки данных

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

Пример:

Процесс создания отчета на СКД

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

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

Итогом запуска конструктора запросов будет текст запроса (на языке запросов «1С:Предприятия»). Этот текст можно при необходимости скорректировать вручную:

Наборов данных в схеме компоновки данных может быть несколько, наборы данных могут быть связаны в макете произвольным образом, могут быть добавлены вычисляемые поля, заданы параметры отчета и т.п. Стоит упомянуть интересную особенность работы механизма запросов в 1С:Предприятии. Запросы в конечном итоге транслируются в диалект SQL, специфичный для СУБД, с которой непосредственно работает приложение. Мы вообще стараемся задействовать возможности серверов СУБД по максимуму (нас ограничивает то, что мы используем только те возможности, которые есть одновременно во всех поддерживаемых платформой «1С:Предприятие» СУБД – MS SQL, Oracle, IBM DB2, PostgreSQL). Таким образом, на уровне запроса в вычисляемых полях мы можем использовать только те функции, которые транслируются в SQL.

А вот на уровне схемы компоновки данных мы уже можем добавлять пользовательские поля и использовать в них функции на встроенном языке разработки 1С (в том числе и написанные нами), что сильно расширяет возможности отчетов. Технически это выглядит так – всё, что можно транслировать в SQL, транслируется в SQL, запрос выполняется на уровне СУБД, результаты запроса помещаются в память сервера приложений 1С и СКД вычисляет для каждой записи значения вычисляемых полей, чьи формулы написаны на языке 1С.


Добавление пользовательских полей

В отчет можно добавить произвольное количество таблиц и диаграмм:


Дизайнер отчетов


Отчет во время выполнения

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

Коротко описать процесс построения и формирования отчета можно так:

  • Разработчик в design time с помощью дизайнера (или в runtime с помощью кода) определяет схему компоновки данных:
    • Текст запроса/запросов
    • Описание вычисляемых полей
    • Связи между запросами (если их несколько)
    • Параметры отчета
    • Настройки по умолчанию
    • И т.д.
  • Вышеописанные настройки сохраняются в макете
  • Пользователь открывает отчет
    • Возможно, делает дополнительные настройки (например, меняет значения параметров)
    • Нажимает кнопку «Сформировать»
  • Настройки пользователя применяются к схеме компоновки данных, определенной разработчиком.
  • Формируется промежуточный макет компоновки данных, содержащий в себе инструкции, откуда получать данные. В частности, корректируются запросы, заданные в макете. Так, из запроса удаляются поля, которые не используются в отчете (это делается с целью минимизировать объем получаемых данных). В запрос добавляются все поля, участвующие в формулах вычисляемых полей.
  • В дело включается процессор компоновки данных. Процессор компоновки выполняет запросы, осуществляет связь наборов данных, рассчитывает значения вычисляемых полей и ресурсов, выполняет группировку. Словом, делает все расчеты, которые не были выполнены на уровне СУБД.
  • Процессор вывода данных запускает запрос на исполнение и выводит полученные данные в табличный документ, диаграмму и т.п.


Процесс формирования отчета механизмом СКД

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

Пользовательские настройки

Весь инструментарий СКД доступен как разработчику, так и конечному пользователю. Но практика показала, что конечного пользователя часто пугает обилие возможностей инструмента. Тем более что в большинстве случаев вся мощь настроек конечному пользователю и не нужна – ему достаточно иметь быстрый доступ к настройке одного-двух параметров отчета (например, периода и контрагента). Начиная с определенной версии платформы у разработчика отчета появилась возможность отметить, какие настройки отчета доступны пользователю. Делается это с помощью флажка «Включать в пользовательские настройки». Также у настроек отчета появился флаг «Режим отображения», принимающий одно из трех значений:
  • Быстрый доступ. Настройка будет выведена непосредственно в верхнюю часть окна отчета.
  • Обычный. Настройка будет доступна через кнопку «Настройки».
  • Недоступный. Настройка будет недоступна конечному пользователю.


Режим отображения настройки в design time


Отображение настройки в режиме «Быстрый доступ» во время выполнения (под кнопкой «Сформировать»)

Планы развития

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

Просмотров