Справочник «Источники данных»
Источники данных описывают алгоритм получения данных из базы.
Открыть справочник «Источников данных» можно в программных комплексах «Кинт: Управление делами» и «Кинт: Управление санаторием» в разделе АДМИНИСТРИРОВАНИЕ.
Категории источников данных
Категория источника данных определяет алгоритм получения таблицы с данными. Существующие категории источников данных:
- Запрос — одна из основных категорий для обращения к БД текущей конфигурации. Запросом можно выбрать любые данные, которые есть в базе. Для создания запроса необходимы базовые знания конфигурации и работы с языком запросов 1С.
- Файл — представляет собой файл с данными.
- Интернет-сервис — позволяет получить данные из внешнего сервиса по API.
- Программный код — требует знания языка программирования и знания объекта, который вызывается. Данная категория используется для специфических ситуаций, например, когда есть функция конфигурации, которая формирует по сложным алгоритмам таблицы, собирая информацию с нескольких источников.
- Хранилище данных — позволяет сохранить какую-либо таблицу в источник данных. Данные при этом будут статичны и не изменятся при изменении оригинальной таблицы.
- Соединение — позволяет настроить соединение данных из нескольких источников.
Примеры использования источников данных
Запрос
Рассмотрим пример формирования отчета «Документы в работе»:
- В поле «Наименование» запишите название таблицы.
- Во вкладке «Настройки» нажмите на ссылку «Текст запроса». Откроется конструктор запросов на вкладке «Таблицы и поля».
- В «Базах данных» выберите регистр накопления «яъДокументыВРаботе.Остатки» и щелкните по нему дважды. Регистр будет занесен в «Таблицы».
- Раскройте регистр и дважды щелкните по параметру «Исполнитель» в «Таблицах». Параметр будет занесен в «Поля»
- Щелкните дважды по параметру «ЗначениеСвойстваОстаток». Параметр также будет занесен в «Поля».
- Во вкладке «Группировка» перенесите параметр «Исполнитель» в Поле группировки, а «ЗначениеСвойстваОстаток» — в суммирующее поле.
- Во вкладке «Объединения/Псевдонимы» щелкните дважды на строку «ЗначениеСвойстваОстаток» и задайте псевдоним.
- Вернитесь во вкладку «Таблицы и поля» и в строке период пропишите «&КонецПериода».
- Для всех запросов есть 2 предопределенных параметра: «НачалоПериода» и «КонецПериода». Эти параметры связаны с УФО, и когда открываются источники данных в УФО, параметр КонецПериода будет заполнен по периоду, который выбран в УФО.
- Нажмите ОК, чтобы сохранить. После этого поле «Текст запроса» в форме документа заполнится автоматически в соответствии с выбранными параметрами.
- Во вкладке «Переменные» нажмите «Обновить». Появятся заголовки переменных, по которым будет составляться таблица данных.
- Во вкладке «Данные» нажмите «Обновить». Появится таблица данных запроса.
- Данную таблицу можно открыть в универсальной форме отчета нажатием кнопки «Открыть в УФО».
- Чтобы сохранить запрос нажмите кнопку «Записать».
Файл
Типы поддерживаемых файлов:
- JSON. Используется в каких=либо сервисах, можно сохранить результат УФО.
- MXL. Стандартные таблицы 1С
- CSV. Строка таблицы соответствует строке текста, которая содержит одно или несколько полей, разделенных запятыми.
- XLS. Excel-таблица. Данные считываются платформой. Устанавливать Excel не надо. Для форматов XLS, MXLS есть настройка параметров считывания.
Чтобы создать источник данных с категорией «Файл», необходимо сделать следующее:
- Откройте исходный файл и посмотрите, с какой колонки начинается таблица, с какой строки начинаются данные.
- Если шапка таблицы начинается со второй колонки и четвертой строки, то запишите следующее:
- Номер строки шапки: 4
- Номер колонки шапки: 2
- Номер строки с данными: 5
- Затем выберите путь до исходного файла, и программа считает данные в соответствии с указанными параметрами. Наименование заполняется по имени исходного файла. Так как колонка «№» представлена спецсимволом, то вместо нее стоит нижнее подчеркивание.
- Выберите «Ресурс» в строке «Остаток», чтобы по этому параметру проводилось суммирование.
- Во вкладке «Таблица данных» нажмите «Обновить». Формируется таблица данных, и ее можно открыть в УФО.
- Из нескольких таблиц данные можно загружать и совмещать в одном отчете. При этом не всегда известен тип значения, поэтому есть возможность тип значения устанавливать вручную.
Интернет-сервис
Пример.
- Создайте источник данных с категорией «Запрос».
- Поставьте реализацию по контрагентам (количество и сумма), обороты по оперативному учету услуг.
- Добавьте идентификатор, так как в системе уже есть наименование «Санаторий».
- Нажимаем «Получить HTTP-запрос». База при этом должна быть опубликована на веб-сервере. По нажатию он копирует ссылку на запрос, с помощью которого можно получить таблицу данных этого источника. Этот запрос позволяет обращаться к таблице данных и может использоваться во внешних системах, подключенных к вашей (например, можно сделать интеграцию с сайтами).
- Для этого создайте новый источник данных, вставьте запрос в путь источника, укажите наименование, укажите имя пользователя 1С и пароль. У пользователя должны быть права на чтение данных из регистра, который мы используем в той базе.
- Нажмите «Записать».
- Во вкладке «Переменные» нажмите «Обновить», чтобы получить данные о переменных.
- Проставьте в строки «Количество» и «Сумма» значение «Ресурс».
- В «Таблице данных» нажмите «Обновить». Появится таблица данных запроса. После этого можно переходить в УФО и редактировать.
- Выбрать параметр периода можно, прописав его вручную в строке «Путь» в формате ISO:
Программный код
Рассмотрим на примере отчета «Движения документа».
- Вызовите функцию «Движения документа».
- Параметры передайте через символ «@». Функция принимает ссылку на документ и имя регистра, по которому надо получить движения.
- На закладке «Параметры» выберите документ, по которому мы извлекаем движения.
- После этого во вкладке Таблица данных по кнопке Обновить появляется результат работы функции.
Хранилище данных
Отличие от категории «Запрос» заключается в следующем: если что-то поменяли, то результат запроса изменится, а результат источника данных с типом «Хранилище данных» всегда будет одинаковым. Можно использовать чтобы сохранить какую-либо эталонную таблицу, чтобы, например, дальше использовать ее при сравнении данных.
В текущем релизе работать с таким ИД можно только программно.
Пример:
&НаСервере
// Таблица реализации во временном хранилище.
Функция АдресТаблицыЗначенийВоВременномХранилище()
запрос = Новый Запрос("ВЫБРАТЬ
| оу_ОперативныйУчетУслугОбороты.Субконто1.Наименование КАК Контрагент,
| оу_ОперативныйУчетУслугОбороты.Субконто1.ИНН КАК ИНН,
| СУММА(оу_ОперативныйУчетУслугОбороты.КоличествоОборотДт) КАК Количество,
| СУММА(оу_ОперативныйУчетУслугОбороты.СуммаОборотДт) КАК Сумма
|ИЗ
| РегистрБухгалтерии.оу_ОперативныйУчетУслуг.Обороты(&НачалоПериода, &КонецПериода, , , , , , ) КАК оу_ОперативныйУчетУслугОбороты
|ГДЕ
| оу_ОперативныйУчетУслугОбороты.КоличествоОборотДт > 0
|
|СГРУППИРОВАТЬ ПО
| оу_ОперативныйУчетУслугОбороты.Субконто1.Наименование,
| оу_ОперативныйУчетУслугОбороты.Субконто1.ИНН");
запрос.УстановитьПараметр("НачалоПериода", Дата('20230101'));
запрос.УстановитьПараметр("КонецПериода", Дата('20230131'));
Возврат ПоместитьВоВременноеХранилище(запрос.Выполнить().Выгрузить(), УникальныйИдентификатор);
КонецФункции
&НаКлиенте
// Открывает форму записи данных в источник данных с типом "Хранилище данных".
Процедура ОткрытьФормуСохраненияДанных(Команда)
стРеквизиты = _ст("Наименование", "Реализация январь (до корректировки)");
вхТаблицаСДанными = АдресТаблицыЗначенийВоВременномХранилище();
Если вхТаблицаСДанными = Неопределено Тогда Возврат; КонецЕсли;
яъПрикладныеОбъекты.ОткрытьФормуСозданияИсточникаДанных(вхТаблицаСДанными, стРеквизиты);
КонецПроцедуры
Соединение
Типы соединений:
- Левое. Все, что есть в основном источнике и то, что совпадает по ключевым полям, в связанном.
- Внутреннее. Совпадает в основном и связанном источнике по ключевым полям.
- Полное. Берутся данные, совпадающие по ключевым полям, из всех источников.
- Объединение. Берутся все данные из всех источников.
Консолидированный отчет
- Выберите в качестве источника любой из двух источников.
- Добавьте в табличную часть таблицы «Связанные источники» второй источник с типом соединения «Объединение».
- Нажмите «Записать».
- Проставьте в строки «Количество» и «Сумма» значение «Ресурс».
- Запишите источник и во вкладке «Данные» нажмите «Обновить». Полученный отчет можно редактировать в УФО.
Соединение таблиц
Рассмотрим на примере отчета «Контрагенты, которые были в 2 санаториях».
- Источники выберите такие же, как и в примере консолидированного отчета. Выберите внутреннее соединение.
- В «Параметрах» выберите переменную основного источника «Контрагенты».
- Выберите условие соединения "=".
- В качестве переменной связанного источника также выберите «Контрагенты».
- На закладке Ресурсы можно определить вычисляемые ресурсы, которые используют ресурсы таблицы, например, общая сумма — это сумма основного источника + сумма связанного источника.
- Нажмите кнопку «Записать».
- В закладке Переменные нажимаем Обновить.
- Так как Контрагент — это ключевой параметр, он остался один. Остальные колонки идут из таблиц по порядку с постфиксом.
- Выберите вычисляемый ресурс — «Общую сумму» в виде ресурса.
- Нажмите «Записать».
- Откройте вкладку «Данные» и обновите.
Интерфейс источника данных
- Запрос
- Файл
- Интернет-сервис
- Программный код
- Хранилище данных
- Соединение
На закладке Параметры автоматически заполняются параметры из текста запроса и здесь можно выбрать для них значения, которые будут применяться исключительно для этого запроса. Когда выбирается источник данных в УФО, параметры будут автоматически переопределяться.
Флаг Служебный позволяет скрыть параметр для пользователей, которые не являются авторами этого источника.
Во вкладке Переменные по кнопке Обновить заполняются колонки таблицы. Здесь можно переопределить заголовки, которые будут отображаться в отчете, и можно выбрать значение колонки «Измерение/Ресурс».
Во вкладке Таблица данных по кнопке Обновить заполняются данные по запросу.
По кнопке Вывести список можно распечатать данные.
По кнопке Открыть в УФО открывается отчет с данными из таблицы данных.
Форма конструктора запросов
Конструктор запросов доступен по нажатию ссылки «Текст запроса» при выбранной категории «Запрос». Форма конструктора запросов состоит из множества вкладок:
- Таблицы и поля
- Группировка
- Условия
- Дополнительно
- Объединения/псевдонимы
- Порядок
- Итоги
- Пакет запросов