Справочник «Источники данных» — различия между версиями

Материал из КинтВики
Перейти к: навигация, поиск
(Новая страница: «<noinclude>Категория:Настройка (КУС)*70</noinclude> Источники данных о…»)
 
 
(не показано 17 промежуточных версий 2 участников)
Строка 1: Строка 1:
<noinclude>[[Категория:Настройка (КУС)]][[Категория:Гостиница (КУС)|*70]]</noinclude>
+
<noinclude>[[Категория:Справочники администрирования (КУС)]]</noinclude>
 +
{| align="right"
 +
| __TOC__
 +
|}
 +
{{video|[https://youtu.be/MBJjTEMFcvI Работа с источниками данных]}}
 
Источники данных описывают алгоритм получения данных из базы.
 
Источники данных описывают алгоритм получения данных из базы.
  
Открыть справочник «Источников данных» можно в программных комплексах «Кинт: Управление делами» и «Кинт: Управление санаторием» в разделе ГЛАВНОЕ — ИСТОЧНИКИ ДАННЫХ.
+
Открыть справочник «Источников данных» можно в программных комплексах «Кинт: Управление делами» и «Кинт: Управление санаторием» в разделе АДМИНИСТРИРОВАНИЕ.
 +
 
 
== Категории источников данных ==
 
== Категории источников данных ==
 
Категория источника данных определяет алгоритм получения таблицы с данными. Существующие категории источников данных:
 
Категория источника данных определяет алгоритм получения таблицы с данными. Существующие категории источников данных:
Строка 9: Строка 14:
 
# Интернет-сервис — позволяет получить данные из внешнего сервиса по API.
 
# Интернет-сервис — позволяет получить данные из внешнего сервиса по API.
 
# Программный код — требует знания языка программирования и знания объекта, который вызывается. Данная категория используется для специфических ситуаций, например, когда есть функция конфигурации, которая формирует по сложным алгоритмам таблицы, собирая информацию с нескольких источников.
 
# Программный код — требует знания языка программирования и знания объекта, который вызывается. Данная категория используется для специфических ситуаций, например, когда есть функция конфигурации, которая формирует по сложным алгоритмам таблицы, собирая информацию с нескольких источников.
# Хранилище данных — служит для взаимодействия с внешними сервисами.
+
# Хранилище данных — позволяет сохранить какую-либо таблицу в источник данных. Данные при этом будут статичны и не изменятся при изменении оригинальной таблицы.
 
# Соединение — позволяет настроить соединение данных из нескольких источников.
 
# Соединение — позволяет настроить соединение данных из нескольких источников.
 +
 
== Примеры использования источников данных ==
 
== Примеры использования источников данных ==
 
=== Запрос ===
 
=== Запрос ===
* В поле «Наименование» запишите название таблицы.
+
Рассмотрим пример формирования отчета «Документы в работе»:
* Во вкладке «Настройки» нажмите на ссылку «Текст запроса». Откроется конструктор запросов. С его помощью можно реализовать простые запросы.
+
# В поле «Наименование» запишите название таблицы.
* Во вкладке «Группировка» один из параметров перенесите в Поле группировки, а другое — в суммирующее поле.
+
# Во вкладке «Настройки» нажмите на ссылку «Текст запроса». Откроется конструктор запросов на вкладке «Таблицы и поля».
* Во вкладке «Объединения/Псевдонимы» задайте псевдоним для строки (полей таблицы).
+
# В «Базах данных» выберите регистр накопления «яъДокументыВРаботе.Остатки» и щелкните по нему дважды. Регистр будет занесен в «Таблицы».
* Во вкладке «Таблицы и поля» выберите период (например, &КонецПериода).
+
# Раскройте регистр и дважды щелкните по параметру «Исполнитель» в «Таблицах». Параметр будет занесен в «Поля»
*: Для всех запросов есть 2 предопределенных параметра: «НачалоПериода» и «КонецПериода». Эти параметры связаны с УФО, и когда открываются источники данных в УФО, параметр КонецПериода будет заполнен по периоду, который выбран в УФО.
+
# Щелкните дважды по параметру «ЗначениеСвойстваОстаток». Параметр также будет занесен в «Поля».
* Нажмите ОК, чтобы сохранить. После этого поле «Текст запроса» заполнится автоматически в соответствии с выбранными параметрами.
+
#: <div class="mw-collapsible mw-collapsed"> '''Рис. 1. Конструктор запроса''' <div class="mw-collapsible-content"> [[Файл:ИД конструктор запроса.png]] </div></div>
* Во вкладке «Переменные» нажмите «Обновить». Появятся заголовки переменных, по которым будет составляться таблица данных.
+
# Во вкладке «Группировка» перенесите параметр «Исполнитель» в Поле группировки, а «ЗначениеСвойстваОстаток» — в суммирующее поле.
* Во вкладке «Данные» нажмите «Обновить». Появится таблица данных запроса.
+
#: <div class="mw-collapsible mw-collapsed"> '''Рис. 2. Конструктор запроса. Группировка''' <div class="mw-collapsible-content"> [[Файл:ИД конструктор запроса группировка.png]] </div></div>
*: Данную таблицу можно открыть в универсальной форме отчета нажатием кнопки «Открыть в УФО».
+
# Во вкладке «Объединения/Псевдонимы» щелкните дважды на строку «ЗначениеСвойстваОстаток» и задайте псевдоним.
* Чтобы сохранить запрос нажмите кнопку «Записать».
+
#: <div class="mw-collapsible mw-collapsed"> '''Рис. 3. Конструктор запроса. Объединения/псевдонимы''' <div class="mw-collapsible-content"> [[Файл:ИД конструктор запроса псевдонимы.png]] </div></div>
{{notice|Созданный источник данных можно использовать в других источниках данных. Для этого необходимо нажать кнопку HTTP-запрос. В буфер скопируется путь к источнику. Путь затем вставляется в другой источник данных с категорией «Интернет-сервис».}}
+
# Вернитесь во вкладку «Таблицы и поля» и в строке период пропишите «&КонецПериода».
=== Программный код ===
+
#: <div class="mw-collapsible mw-collapsed"> '''Рис. 4. Конструктор запроса. Период''' <div class="mw-collapsible-content"> [[Файл:ИД конструктор запроса период.png]] </div></div>
Рассмотрим на примере отчета «Движения документа».
+
#: Для всех запросов есть 2 предопределенных параметра: «НачалоПериода» и «КонецПериода». Эти параметры связаны с УФО, и когда открываются источники данных в УФО, параметр КонецПериода будет заполнен по периоду, который выбран в УФО.
# Вызываем функцию «Движения документа».
+
# Нажмите ОК, чтобы сохранить. После этого поле «Текст запроса» в форме документа заполнится автоматически в соответствии с выбранными параметрами.
# Параметры передаем через символ собака. Функция принимает ссылку на документ и имя регистра, по которому надо получить движения.
+
# Во вкладке «Переменные» нажмите «Обновить». Появятся заголовки переменных, по которым будет составляться таблица данных.
# На закладке «Параметры» выбираем документ, по которому мы извлекаем движения. После этого во вкладке Таблица данных по кнопке '''Обновить''' появляется результат работы функции.
+
#: <div class="mw-collapsible mw-collapsed"> '''Рис. 5. Запрос. Вкладка «Переменные»''' <div class="mw-collapsible-content"> [[Файл:ИД запрос переменные.png]] </div></div>
 +
# Во вкладке «Данные» нажмите «Обновить». Появится таблица данных запроса.
 +
#: <div class="mw-collapsible mw-collapsed"> '''Рис. 6. Запрос. Вкладка «Данные»''' <div class="mw-collapsible-content"> [[Файл:ИД запрос данные.png]] </div></div>
 +
#: Данную таблицу можно открыть в универсальной форме отчета нажатием кнопки «Открыть в УФО».
 +
# Чтобы сохранить запрос нажмите кнопку «Записать».
 
=== Файл ===
 
=== Файл ===
 
Типы поддерживаемых файлов:
 
Типы поддерживаемых файлов:
Строка 38: Строка 48:
 
Чтобы создать источник данных с категорией «Файл», необходимо сделать следующее:
 
Чтобы создать источник данных с категорией «Файл», необходимо сделать следующее:
 
# Откройте исходный файл и посмотрите, с какой колонки начинается таблица, с какой строки начинаются данные.
 
# Откройте исходный файл и посмотрите, с какой колонки начинается таблица, с какой строки начинаются данные.
# Соответственно, если шапка таблицы начинается со второй колонки и четвертой строки, то запишите следующее:
+
#: <div class="mw-collapsible mw-collapsed"> '''Рис. 1. Исходный Excel-файл''' <div class="mw-collapsible-content"> [[Файл:ИД файл исходные данные.png]] </div></div>
 +
# Если шапка таблицы начинается со второй колонки и четвертой строки, то запишите следующее:
 
#* Номер строки шапки: 4
 
#* Номер строки шапки: 4
 
#* Номер колонки шапки: 2
 
#* Номер колонки шапки: 2
 
#* Номер строки с данными: 5
 
#* Номер строки с данными: 5
 
# Затем выберите путь до исходного файла, и программа считает данные в соответствии с указанными параметрами. Наименование заполняется по имени исходного файла. Так как колонка «№» представлена спецсимволом, то вместо нее стоит нижнее подчеркивание.
 
# Затем выберите путь до исходного файла, и программа считает данные в соответствии с указанными параметрами. Наименование заполняется по имени исходного файла. Так как колонка «№» представлена спецсимволом, то вместо нее стоит нижнее подчеркивание.
 +
#: <div class="mw-collapsible mw-collapsed"> '''Рис. 2. Файл. Вкладка «Переменные»''' <div class="mw-collapsible-content"> [[Файл:ИД файл переменные.png]] </div></div>
 
# Выберите «Ресурс» в строке «Остаток», чтобы по этому параметру проводилось суммирование.
 
# Выберите «Ресурс» в строке «Остаток», чтобы по этому параметру проводилось суммирование.
 
# Во вкладке «Таблица данных» нажмите «Обновить». Формируется таблица данных, и ее можно открыть в УФО.
 
# Во вкладке «Таблица данных» нажмите «Обновить». Формируется таблица данных, и ее можно открыть в УФО.
 +
#: <div class="mw-collapsible mw-collapsed"> '''Рис. 3. Файл. Вкладка «Данные»''' <div class="mw-collapsible-content"> [[Файл:ИД файл данные.png]] </div></div>
 
#: Из нескольких таблиц данные можно загружать и совмещать в одном отчете. При этом не всегда известен тип значения, поэтому есть возможность тип значения устанавливать вручную.
 
#: Из нескольких таблиц данные можно загружать и совмещать в одном отчете. При этом не всегда известен тип значения, поэтому есть возможность тип значения устанавливать вручную.
 
=== Интернет-сервис ===
 
=== Интернет-сервис ===
 
Пример.
 
Пример.
 
# Создайте источник данных с категорией «Запрос».  
 
# Создайте источник данных с категорией «Запрос».  
 +
#: <div class="mw-collapsible mw-collapsed"> '''Рис. 1. Создание запроса в качестве источника данных для интернет-сервиса''' <div class="mw-collapsible-content"> [[Файл:ИД интернет сервис запрос.png]] </div></div>
 
# Поставьте реализацию по контрагентам (количество и сумма), обороты по оперативному учету услуг.
 
# Поставьте реализацию по контрагентам (количество и сумма), обороты по оперативному учету услуг.
# Добавьте идентификатор, так как в системе уже есть Санаторий.
+
# Добавьте идентификатор, так как в системе уже есть наименование «Санаторий».
# Нажимаем Получить http-запрос. База при этом должна быть опубликована на веб-сервере. По нажатию он копирует ссылку на запрос, с помощью которого можно получить таблицу данных этого источника. Этот запрос позволяет обращаться к таблице данных и может использоваться во внешних системах, подключенных к вашей (например, можно сделать интеграцию с сайтами).
+
# Нажимаем «Получить HTTP-запрос». База при этом должна быть опубликована на веб-сервере. По нажатию он копирует ссылку на запрос, с помощью которого можно получить таблицу данных этого источника. Этот запрос позволяет обращаться к таблице данных и может использоваться во внешних системах, подключенных к вашей (например, можно сделать интеграцию с сайтами).
 +
#: <div class="mw-collapsible mw-collapsed"> '''Рис. 2. Получение HTTP-запроса к источнику данных''' <div class="mw-collapsible-content"> [[Файл:ИД интернет запрос http.png]] </div></div>
 
# Для этого создайте новый источник данных, вставьте запрос в путь источника, укажите наименование, укажите имя пользователя 1С и пароль. У пользователя должны быть права на чтение данных из регистра, который мы используем в той базе.
 
# Для этого создайте новый источник данных, вставьте запрос в путь источника, укажите наименование, укажите имя пользователя 1С и пароль. У пользователя должны быть права на чтение данных из регистра, который мы используем в той базе.
 
# Нажмите «Записать».
 
# Нажмите «Записать».
 
# Во вкладке «Переменные» нажмите «Обновить», чтобы получить данные о переменных.
 
# Во вкладке «Переменные» нажмите «Обновить», чтобы получить данные о переменных.
# Выставьте Количество и Сумму как ресурсы.
+
#: <div class="mw-collapsible mw-collapsed"> '''Рис. 3. Интернет-сервис. Вкладка «Переменные»''' <div class="mw-collapsible-content"> [[Файл:ИД интернет сервис переменные.png]] </div></div>
 +
# Проставьте в строки «Количество» и «Сумма» значение «Ресурс».
 
# В «Таблице данных» нажмите «Обновить». Появится таблица данных запроса. После этого можно переходить в УФО и редактировать.
 
# В «Таблице данных» нажмите «Обновить». Появится таблица данных запроса. После этого можно переходить в УФО и редактировать.
 +
#: <div class="mw-collapsible mw-collapsed"> '''Рис. 4. Интернет-сервис. Вкладка «Данные»''' <div class="mw-collapsible-content"> [[Файл:ИД интернет сервис данные.png]] </div></div>
 +
#: Выбрать параметр периода можно, прописав его вручную в строке «Путь» в формате ISO:
 +
#: <div class="mw-collapsible mw-collapsed"> '''Рис. 5. Интернет-сервис. Выбор параметра периода''' <div class="mw-collapsible-content"> [[Файл:ИД интернет сервис период.png]] </div></div>
 +
=== Программный код ===
 +
Рассмотрим на примере отчета «Движения документа».
 +
# Вызовите функцию «Движения документа».
 +
# Параметры передайте через символ «@». Функция принимает ссылку на документ и имя регистра, по которому надо получить движения.
 +
#: <div class="mw-collapsible mw-collapsed"> '''Рис. 1. Источник данных. Программный код''' <div class="mw-collapsible-content"> [[Файл:ИД программный код.png]] </div></div>
 +
# На закладке «Параметры» выберите документ, по которому мы извлекаем движения.
 +
#: <div class="mw-collapsible mw-collapsed"> '''Рис. 2. Программный код. Вкладка «Параметры»''' <div class="mw-collapsible-content"> [[Файл:ИД программный код параметры.png]] </div></div>
 +
# После этого во вкладке Таблица данных по кнопке '''Обновить''' появляется результат работы функции.
 +
#: <div class="mw-collapsible mw-collapsed"> '''Рис. 3. Программный код. Вкладка «Данные»''' <div class="mw-collapsible-content"> [[Файл:ИД программный код данные.png]] </div></div>
 +
=== Хранилище данных ===
 +
Отличие от категории «Запрос» заключается в следующем: если что-то поменяли, то результат запроса изменится, а результат источника данных с типом «Хранилище данных» всегда будет одинаковым. Можно использовать чтобы сохранить какую-либо эталонную таблицу, чтобы, например, дальше использовать ее при сравнении данных.
 +
 +
В текущем релизе работать с таким ИД можно только программно.
 +
 +
Пример:
 +
<syntaxhighlight lang="css" class="toccolours mw-collapsible mw-collapsed" style="overflow: auto">
 +
&НаСервере
 +
// Таблица реализации во временном хранилище.
 +
Функция АдресТаблицыЗначенийВоВременномХранилище()
 +
запрос = Новый Запрос("ВЫБРАТЬ
 +
| оу_ОперативныйУчетУслугОбороты.Субконто1.Наименование КАК Контрагент,
 +
| оу_ОперативныйУчетУслугОбороты.Субконто1.ИНН КАК ИНН,
 +
| СУММА(оу_ОперативныйУчетУслугОбороты.КоличествоОборотДт) КАК Количество,
 +
| СУММА(оу_ОперативныйУчетУслугОбороты.СуммаОборотДт) КАК Сумма
 +
|ИЗ
 +
| РегистрБухгалтерии.оу_ОперативныйУчетУслуг.Обороты(&НачалоПериода, &КонецПериода, , , , , , ) КАК оу_ОперативныйУчетУслугОбороты
 +
|ГДЕ
 +
| оу_ОперативныйУчетУслугОбороты.КоличествоОборотДт > 0
 +
|
 +
|СГРУППИРОВАТЬ ПО
 +
| оу_ОперативныйУчетУслугОбороты.Субконто1.Наименование,
 +
| оу_ОперативныйУчетУслугОбороты.Субконто1.ИНН");
 +
запрос.УстановитьПараметр("НачалоПериода", Дата('20230101'));
 +
запрос.УстановитьПараметр("КонецПериода", Дата('20230131'));
 +
Возврат ПоместитьВоВременноеХранилище(запрос.Выполнить().Выгрузить(), УникальныйИдентификатор);
 +
КонецФункции
 +
 +
&НаКлиенте
 +
// Открывает форму записи данных в источник данных с типом "Хранилище данных".
 +
Процедура ОткрытьФормуСохраненияДанных(Команда)
 +
стРеквизиты = _ст("Наименование", "Реализация январь (до корректировки)");
 +
вхТаблицаСДанными = АдресТаблицыЗначенийВоВременномХранилище();
 +
Если вхТаблицаСДанными = Неопределено Тогда Возврат; КонецЕсли;
 +
яъПрикладныеОбъекты.ОткрытьФормуСозданияИсточникаДанных(вхТаблицаСДанными, стРеквизиты);
 +
КонецПроцедуры
 +
</syntaxhighlight>
 +
 
=== Соединение ===
 
=== Соединение ===
Пример консолидированного отчета.
+
Типы соединений:
# Выбираем источником любой из двух.
+
* Левое. Все, что есть в основном источнике и то, что совпадает по ключевым полям, в связанном.
# Добавляем в тч Связанных источников второй источник с типом соединения Объединение.
+
*: [[Файл:ИД левое соединение.png]]
# Записать.
+
* Внутреннее. Совпадает в основном и связанном источнике по ключевым полям.
# Ставим Количество и сумму ресурсами.
+
*: [[Файл:ИД внутреннее соединение.png]]
# Записываем и в Таблице данных нажимаем Обновить.
+
* Полное. Берутся данные, совпадающие по ключевым полям, из всех источников.
# Можно редактировать в УФО.
+
* Объединение. Берутся все данные из всех источников.
 +
*: [[Файл:ИД объединение.png]]
 +
==== Консолидированный отчет ====
 +
# Выберите в качестве источника любой из двух источников.
 +
# Добавьте в табличную часть таблицы «Связанные источники» второй источник с типом соединения «Объединение».
 +
# Нажмите «Записать».
 +
#: <div class="mw-collapsible mw-collapsed"> '''Рис. 1. Соединение источников данных''' <div class="mw-collapsible-content"> [[Файл:ИД соединение.png]] </div></div>
 +
# Проставьте в строки «Количество» и «Сумма» значение «Ресурс».
 +
#: <div class="mw-collapsible mw-collapsed"> '''Рис. 2. Соединение. Вкладка «Переменные»''' <div class="mw-collapsible-content"> [[Файл:ИД соединение переменные.png]] </div></div>
 +
# Запишите источник и во вкладке «Данные» нажмите «Обновить». Полученный отчет можно редактировать в УФО.
 +
#: <div class="mw-collapsible mw-collapsed"> '''Рис. 3. Соединение. Вкладка «Данные»''' <div class="mw-collapsible-content"> [[Файл:ИД соединение данные.png]] </div></div>
 
==== Соединение таблиц ====
 
==== Соединение таблиц ====
Контрагенты, которые были в 2 санаториях. Пример такой же, как и сверху. Берем внутреннее соединение.
+
Рассмотрим на примере отчета «Контрагенты, которые были в 2 санаториях».
Типы соединений:
+
# Источники выберите такие же, как и в примере консолидированного отчета. Выберите внутреннее соединение.
— Левое. Все, что есть в основном источнике и то, что совпадает по ключевым полям, в правом.
+
# В «Параметрах» выберите переменную основного источника «Контрагенты».
— Внутреннее. Совпадает в основном и этом
+
# Выберите условие соединения "=".
— Полное. Данные из всех таблиц, но по ключевым полям из обеих таблиц. (?)
+
# В качестве переменной связанного источника также выберите «Контрагенты».
— Объединение. Берет все данные из обеих таблиц.
+
#: <div class="mw-collapsible mw-collapsed"> '''Рис. 1. Связанные источники. Вкладка «Параметры»''' <div class="mw-collapsible-content"> [[Файл:ИД соединение таблиц.png]] </div></div>
# В Параметрах выбираем переменную основного источника Контрагенты, условие соединения "=", переиенная связанного источника тоже Контрагенты.
 
 
# На закладке Ресурсы можно определить вычисляемые ресурсы, которые используют ресурсы таблицы, например, общая сумма — это сумма основного источника + сумма связанного источника.
 
# На закладке Ресурсы можно определить вычисляемые ресурсы, которые используют ресурсы таблицы, например, общая сумма — это сумма основного источника + сумма связанного источника.
# Записать.
+
# Нажмите кнопку «Записать».
# В закладке Переменные нажимаем Обновить.
+
#: <div class="mw-collapsible mw-collapsed"> '''Рис. 2. Связанные источники. Вкладка «Ресурсы»''' <div class="mw-collapsible-content"> [[Файл:ИД соединение таблиц ресурсы.png]] </div></div>
#: Так как Контрагент — это ключевой параметр, он остался один. Остальные колонки идут из таблиц по порядку с постфиксом. Вычисляемый ресурс — Общая сумма в виде ресурса.
+
# В закладке Переменные нажимаем Обновить.  
# Записать. Таблица данных - Обновить.
+
#: <div class="mw-collapsible mw-collapsed"> '''Рис. 3. Соединение источников. Вкладка «Переменные»''' <div class="mw-collapsible-content"> [[Файл:ИД соединение таблиц переменные.png]] </div></div>
==== Сравнение факта и плана ====
+
#: Так как Контрагент — это ключевой параметр, он остался один. Остальные колонки идут из таблиц по порядку с постфиксом.
 +
#: Выберите вычисляемый ресурс — «Общую сумму» в виде ресурса.
 +
# Нажмите «Записать».
 +
# Откройте вкладку «Данные» и обновите.
 +
#: <div class="mw-collapsible mw-collapsed"> '''Рис. 4. Соединение источников. Вкладка «Данные»''' <div class="mw-collapsible-content"> [[Файл:ИД соединение таблиц данные.png]] </div></div>
 +
<!-- ==== Сравнение факта и плана ====
 
План реализации по дате и сумме. (в корректировках движения проставил план)
 
План реализации по дате и сумме. (в корректировках движения проставил план)
 
Или пример, присылают план, мы его загружаем как источник данных и сравниваем.
 
Или пример, присылают план, мы его загружаем как источник данных и сравниваем.
Строка 92: Строка 172:
 
Потом можно передавать дальше через http-запрос в другой источник. Можно менять настройки отображения.
 
Потом можно передавать дальше через http-запрос в другой источник. Можно менять настройки отображения.
 
Мощность - служебная.
 
Мощность - служебная.
Отчет потом можно вывести в Директор как виджет.
+
Отчет потом можно вывести в Директор как виджет. -->
== Форма документа ==
+
 
На закладке «Параметры» автоматически заполняются параметры из текста запроса и здесь можно выбрать для них значения, которые будут применяться исключительно для этого запроса. Когда выбирается источник данных в УФО, параметры будут автоматически переопределяться.
+
== Интерфейс источника данных ==
 +
* '''Запрос'''
 +
*: <div class="mw-collapsible mw-collapsed"> '''Рис. 1. Категория «Запрос»''' <div class="mw-collapsible-content"> [[Файл:Источники данных запрос.png|900px]] </div></div>
 +
* '''Файл'''
 +
*: <div class="mw-collapsible mw-collapsed"> '''Рис. 2. Категория «Файл»''' <div class="mw-collapsible-content"> [[Файл:Источники данных файл.png|900px]] </div></div>
 +
* '''Интернет-сервис'''
 +
*: <div class="mw-collapsible mw-collapsed"> '''Рис. 3. Категория «Интернет-сервис»''' <div class="mw-collapsible-content"> [[Файл:ИД интернет сервис.png|900px]] </div></div>
 +
* '''Программный код'''
 +
*: <div class="mw-collapsible mw-collapsed"> '''Рис. 4. Категория «Программный код»''' <div class="mw-collapsible-content"> [[Файл:ИД программный код.png|900px]] </div></div>
 +
* '''Хранилище данных'''
 +
*: <div class="mw-collapsible mw-collapsed"> '''Рис. 5. Категория «Хранилище данных»''' <div class="mw-collapsible-content"> [[Файл:ИД хранилище данных.png|900px]] </div></div>
 +
* '''Соединение'''
 +
*: <div class="mw-collapsible mw-collapsed"> '''Рис. 6. Категория «Соединение»''' <div class="mw-collapsible-content"> [[Файл:Источники данных соединение.png|900px]] </div></div>
  
Флаг «Служебный» позволяет скрыть параметр для пользователей, которые не являются авторами этого источника.
+
На закладке '''Параметры''' автоматически заполняются параметры из текста запроса и здесь можно выбрать для них значения, которые будут применяться исключительно для этого запроса. Когда выбирается источник данных в УФО, параметры будут автоматически переопределяться.
  
Во вкладке «Переменные» по кнопке Обновить заполняются колонки таблицы. Здесь можно переопределить заголовки, которые будут отображаться в отчете, и можно выбрать значение колонки «Измерение/Ресурс».
+
Флаг '''Служебный''' позволяет скрыть параметр для пользователей, которые не являются авторами этого источника.
  
Когда мы отправим отчет по этому источнику данных, то группировка автоматически произведется по исполнителю и сумма по количеству.
+
Во вкладке '''Переменные''' по кнопке Обновить заполняются колонки таблицы. Здесь можно переопределить заголовки, которые будут отображаться в отчете, и можно выбрать значение колонки «Измерение/Ресурс».
  
Во вкладке «Таблица данных» по кнопке Обновить заполняются данные по запросу.
+
Во вкладке '''Таблица данных''' по кнопке '''Обновить''' заполняются данные по запросу.
  
По кнопке «Вывести список» можно распечатать данные.
+
По кнопке '''Вывести список''' можно распечатать данные.
  
По кнопке «Открыть в УФО» открывается отчет с данными из таблицы данных. Исполнитель ушел в развороты, а Количество ушло в ресурсы. Если период изменить, то данные будут отображаться соответствующие.
+
По кнопке '''Открыть в УФО''' открывается отчет с данными из таблицы данных.
 
=== Форма конструктора запросов ===
 
=== Форма конструктора запросов ===
 +
Конструктор запросов доступен по нажатию ссылки «Текст запроса» при выбранной категории «Запрос». Форма конструктора запросов состоит из множества вкладок:
 +
* '''Таблицы и поля'''
 +
*: <div class="mw-collapsible mw-collapsed"> '''Рис. 1. Вкладка «Таблицы и поля»''' <div class="mw-collapsible-content"> [[Файл:Источники данных конструктор запроса таблицы и поля.png]] </div></div>
 +
* '''Группировка'''
 +
*: <div class="mw-collapsible mw-collapsed"> '''Рис. 2. Вкладка «Группировка»''' <div class="mw-collapsible-content"> [[Файл:Источники данных конструктор запроса группировка.png]] </div></div>
 +
* '''Условия'''
 +
*: <div class="mw-collapsible mw-collapsed"> '''Рис. 3. Вкладка «Условия»''' <div class="mw-collapsible-content"> [[Файл:Источники данных конструктор запроса условия.png]] </div></div>
 +
* '''Дополнительно'''
 +
*: <div class="mw-collapsible mw-collapsed"> '''Рис. 4. Вкладка «Дополнительно»''' <div class="mw-collapsible-content"> [[Файл:Источники данных конструктор запроса дополнительно.png]] </div></div>
 +
* '''Объединения/псевдонимы'''
 +
*: <div class="mw-collapsible mw-collapsed"> '''Рис. 5. Вкладка «Объединения/псевдонимы»''' <div class="mw-collapsible-content"> [[Файл:Источники данных конструктор запроса псевдонимы.png]] </div></div>
 +
* '''Порядок'''
 +
*: <div class="mw-collapsible mw-collapsed"> '''Рис. 6. Вкладка «Порядок»''' <div class="mw-collapsible-content"> [[Файл:Источники данных конструктор запроса порядок.png]] </div></div>
 +
* '''Итоги'''
 +
*: <div class="mw-collapsible mw-collapsed"> '''Рис. 7. Вкладка «Итоги»''' <div class="mw-collapsible-content"> [[Файл:Источники данных конструктор запроса итоги.png]] </div></div>
 +
* '''Пакет запросов'''
 +
*: <div class="mw-collapsible mw-collapsed"> '''Рис. 8. Вкладка «Пакет запросов»''' <div class="mw-collapsible-content"> [[Файл:Источники данных конструктор запроса пакет запросов.png]] </div></div>
  
 
== История изменений, ссылки  сюда ==
 
== История изменений, ссылки  сюда ==
{{:Служебная:Whatlinkshere/Источники данных}}
+
{{:Служебная:Whatlinkshere/Справочник «Источники данных»}}

Текущая версия на 16:39, 25 октября 2023

YouTube.png

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

Открыть справочник «Источников данных» можно в программных комплексах «Кинт: Управление делами» и «Кинт: Управление санаторием» в разделе АДМИНИСТРИРОВАНИЕ.

Категории источников данных

Категория источника данных определяет алгоритм получения таблицы с данными. Существующие категории источников данных:

  1. Запрос — одна из основных категорий для обращения к БД текущей конфигурации. Запросом можно выбрать любые данные, которые есть в базе. Для создания запроса необходимы базовые знания конфигурации и работы с языком запросов 1С.
  2. Файл — представляет собой файл с данными.
  3. Интернет-сервис — позволяет получить данные из внешнего сервиса по API.
  4. Программный код — требует знания языка программирования и знания объекта, который вызывается. Данная категория используется для специфических ситуаций, например, когда есть функция конфигурации, которая формирует по сложным алгоритмам таблицы, собирая информацию с нескольких источников.
  5. Хранилище данных — позволяет сохранить какую-либо таблицу в источник данных. Данные при этом будут статичны и не изменятся при изменении оригинальной таблицы.
  6. Соединение — позволяет настроить соединение данных из нескольких источников.

Примеры использования источников данных

Запрос

Рассмотрим пример формирования отчета «Документы в работе»:

  1. В поле «Наименование» запишите название таблицы.
  2. Во вкладке «Настройки» нажмите на ссылку «Текст запроса». Откроется конструктор запросов на вкладке «Таблицы и поля».
  3. В «Базах данных» выберите регистр накопления «яъДокументыВРаботе.Остатки» и щелкните по нему дважды. Регистр будет занесен в «Таблицы».
  4. Раскройте регистр и дважды щелкните по параметру «Исполнитель» в «Таблицах». Параметр будет занесен в «Поля»
  5. Щелкните дважды по параметру «ЗначениеСвойстваОстаток». Параметр также будет занесен в «Поля».
    Рис. 1. Конструктор запроса
    ИД конструктор запроса.png
  6. Во вкладке «Группировка» перенесите параметр «Исполнитель» в Поле группировки, а «ЗначениеСвойстваОстаток» — в суммирующее поле.
    Рис. 2. Конструктор запроса. Группировка
    ИД конструктор запроса группировка.png
  7. Во вкладке «Объединения/Псевдонимы» щелкните дважды на строку «ЗначениеСвойстваОстаток» и задайте псевдоним.
    Рис. 3. Конструктор запроса. Объединения/псевдонимы
    ИД конструктор запроса псевдонимы.png
  8. Вернитесь во вкладку «Таблицы и поля» и в строке период пропишите «&КонецПериода».
    Рис. 4. Конструктор запроса. Период
    ИД конструктор запроса период.png
    Для всех запросов есть 2 предопределенных параметра: «НачалоПериода» и «КонецПериода». Эти параметры связаны с УФО, и когда открываются источники данных в УФО, параметр КонецПериода будет заполнен по периоду, который выбран в УФО.
  9. Нажмите ОК, чтобы сохранить. После этого поле «Текст запроса» в форме документа заполнится автоматически в соответствии с выбранными параметрами.
  10. Во вкладке «Переменные» нажмите «Обновить». Появятся заголовки переменных, по которым будет составляться таблица данных.
    Рис. 5. Запрос. Вкладка «Переменные»
    ИД запрос переменные.png
  11. Во вкладке «Данные» нажмите «Обновить». Появится таблица данных запроса.
    Рис. 6. Запрос. Вкладка «Данные»
    ИД запрос данные.png
    Данную таблицу можно открыть в универсальной форме отчета нажатием кнопки «Открыть в УФО».
  12. Чтобы сохранить запрос нажмите кнопку «Записать».

Файл

Типы поддерживаемых файлов:

  • JSON. Используется в каких=либо сервисах, можно сохранить результат УФО.
  • MXL. Стандартные таблицы 1С
  • CSV. Строка таблицы соответствует строке текста, которая содержит одно или несколько полей, разделенных запятыми.
  • XLS. Excel-таблица. Данные считываются платформой. Устанавливать Excel не надо. Для форматов XLS, MXLS есть настройка параметров считывания.

Чтобы создать источник данных с категорией «Файл», необходимо сделать следующее:

  1. Откройте исходный файл и посмотрите, с какой колонки начинается таблица, с какой строки начинаются данные.
    Рис. 1. Исходный Excel-файл
    ИД файл исходные данные.png
  2. Если шапка таблицы начинается со второй колонки и четвертой строки, то запишите следующее:
    • Номер строки шапки: 4
    • Номер колонки шапки: 2
    • Номер строки с данными: 5
  3. Затем выберите путь до исходного файла, и программа считает данные в соответствии с указанными параметрами. Наименование заполняется по имени исходного файла. Так как колонка «№» представлена спецсимволом, то вместо нее стоит нижнее подчеркивание.
    Рис. 2. Файл. Вкладка «Переменные»
    ИД файл переменные.png
  4. Выберите «Ресурс» в строке «Остаток», чтобы по этому параметру проводилось суммирование.
  5. Во вкладке «Таблица данных» нажмите «Обновить». Формируется таблица данных, и ее можно открыть в УФО.
    Рис. 3. Файл. Вкладка «Данные»
    ИД файл данные.png
    Из нескольких таблиц данные можно загружать и совмещать в одном отчете. При этом не всегда известен тип значения, поэтому есть возможность тип значения устанавливать вручную.

Интернет-сервис

Пример.

  1. Создайте источник данных с категорией «Запрос».
    Рис. 1. Создание запроса в качестве источника данных для интернет-сервиса
    ИД интернет сервис запрос.png
  2. Поставьте реализацию по контрагентам (количество и сумма), обороты по оперативному учету услуг.
  3. Добавьте идентификатор, так как в системе уже есть наименование «Санаторий».
  4. Нажимаем «Получить HTTP-запрос». База при этом должна быть опубликована на веб-сервере. По нажатию он копирует ссылку на запрос, с помощью которого можно получить таблицу данных этого источника. Этот запрос позволяет обращаться к таблице данных и может использоваться во внешних системах, подключенных к вашей (например, можно сделать интеграцию с сайтами).
    Рис. 2. Получение HTTP-запроса к источнику данных
    ИД интернет запрос http.png
  5. Для этого создайте новый источник данных, вставьте запрос в путь источника, укажите наименование, укажите имя пользователя 1С и пароль. У пользователя должны быть права на чтение данных из регистра, который мы используем в той базе.
  6. Нажмите «Записать».
  7. Во вкладке «Переменные» нажмите «Обновить», чтобы получить данные о переменных.
    Рис. 3. Интернет-сервис. Вкладка «Переменные»
    ИД интернет сервис переменные.png
  8. Проставьте в строки «Количество» и «Сумма» значение «Ресурс».
  9. В «Таблице данных» нажмите «Обновить». Появится таблица данных запроса. После этого можно переходить в УФО и редактировать.
    Рис. 4. Интернет-сервис. Вкладка «Данные»
    ИД интернет сервис данные.png
    Выбрать параметр периода можно, прописав его вручную в строке «Путь» в формате ISO:
    Рис. 5. Интернет-сервис. Выбор параметра периода
    ИД интернет сервис период.png

Программный код

Рассмотрим на примере отчета «Движения документа».

  1. Вызовите функцию «Движения документа».
  2. Параметры передайте через символ «@». Функция принимает ссылку на документ и имя регистра, по которому надо получить движения.
    Рис. 1. Источник данных. Программный код
    ИД программный код.png
  3. На закладке «Параметры» выберите документ, по которому мы извлекаем движения.
    Рис. 2. Программный код. Вкладка «Параметры»
    ИД программный код параметры.png
  4. После этого во вкладке Таблица данных по кнопке Обновить появляется результат работы функции.
    Рис. 3. Программный код. Вкладка «Данные»
    ИД программный код данные.png

Хранилище данных

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

В текущем релизе работать с таким ИД можно только программно.

Пример:

&НаСервере
// Таблица реализации во временном хранилище.
Функция АдресТаблицыЗначенийВоВременномХранилище()
	запрос = Новый Запрос("ВЫБРАТЬ
			|	оу_ОперативныйУчетУслугОбороты.Субконто1.Наименование КАК Контрагент,
			|	оу_ОперативныйУчетУслугОбороты.Субконто1.ИНН КАК ИНН,
			|	СУММА(оу_ОперативныйУчетУслугОбороты.КоличествоОборотДт) КАК Количество,
			|	СУММА(оу_ОперативныйУчетУслугОбороты.СуммаОборотДт) КАК Сумма
			|ИЗ
			|	РегистрБухгалтерии.оу_ОперативныйУчетУслуг.Обороты(&НачалоПериода, &КонецПериода, , , , , , ) КАК оу_ОперативныйУчетУслугОбороты
			|ГДЕ
			|	оу_ОперативныйУчетУслугОбороты.КоличествоОборотДт > 0
			|
			|СГРУППИРОВАТЬ ПО
			|	оу_ОперативныйУчетУслугОбороты.Субконто1.Наименование,
			|	оу_ОперативныйУчетУслугОбороты.Субконто1.ИНН");
	запрос.УстановитьПараметр("НачалоПериода", Дата('20230101'));
	запрос.УстановитьПараметр("КонецПериода", Дата('20230131'));
	Возврат ПоместитьВоВременноеХранилище(запрос.Выполнить().Выгрузить(), УникальныйИдентификатор);
КонецФункции

&НаКлиенте
// Открывает форму записи данных в источник данных с типом "Хранилище данных".
Процедура ОткрытьФормуСохраненияДанных(Команда)
	стРеквизиты = _ст("Наименование", "Реализация январь (до корректировки)");
	вхТаблицаСДанными = АдресТаблицыЗначенийВоВременномХранилище();
	Если вхТаблицаСДанными = Неопределено Тогда Возврат; КонецЕсли;
	яъПрикладныеОбъекты.ОткрытьФормуСозданияИсточникаДанных(вхТаблицаСДанными, стРеквизиты);
КонецПроцедуры

Соединение

Типы соединений:

  • Левое. Все, что есть в основном источнике и то, что совпадает по ключевым полям, в связанном.
    ИД левое соединение.png
  • Внутреннее. Совпадает в основном и связанном источнике по ключевым полям.
    ИД внутреннее соединение.png
  • Полное. Берутся данные, совпадающие по ключевым полям, из всех источников.
  • Объединение. Берутся все данные из всех источников.
    ИД объединение.png

Консолидированный отчет

  1. Выберите в качестве источника любой из двух источников.
  2. Добавьте в табличную часть таблицы «Связанные источники» второй источник с типом соединения «Объединение».
  3. Нажмите «Записать».
    Рис. 1. Соединение источников данных
    ИД соединение.png
  4. Проставьте в строки «Количество» и «Сумма» значение «Ресурс».
    Рис. 2. Соединение. Вкладка «Переменные»
    ИД соединение переменные.png
  5. Запишите источник и во вкладке «Данные» нажмите «Обновить». Полученный отчет можно редактировать в УФО.
    Рис. 3. Соединение. Вкладка «Данные»
    ИД соединение данные.png

Соединение таблиц

Рассмотрим на примере отчета «Контрагенты, которые были в 2 санаториях».

  1. Источники выберите такие же, как и в примере консолидированного отчета. Выберите внутреннее соединение.
  2. В «Параметрах» выберите переменную основного источника «Контрагенты».
  3. Выберите условие соединения "=".
  4. В качестве переменной связанного источника также выберите «Контрагенты».
    Рис. 1. Связанные источники. Вкладка «Параметры»
    ИД соединение таблиц.png
  5. На закладке Ресурсы можно определить вычисляемые ресурсы, которые используют ресурсы таблицы, например, общая сумма — это сумма основного источника + сумма связанного источника.
  6. Нажмите кнопку «Записать».
    Рис. 2. Связанные источники. Вкладка «Ресурсы»
    ИД соединение таблиц ресурсы.png
  7. В закладке Переменные нажимаем Обновить.
    Рис. 3. Соединение источников. Вкладка «Переменные»
    ИД соединение таблиц переменные.png
    Так как Контрагент — это ключевой параметр, он остался один. Остальные колонки идут из таблиц по порядку с постфиксом.
    Выберите вычисляемый ресурс — «Общую сумму» в виде ресурса.
  8. Нажмите «Записать».
  9. Откройте вкладку «Данные» и обновите.
    Рис. 4. Соединение источников. Вкладка «Данные»
    ИД соединение таблиц данные.png

Интерфейс источника данных

  • Запрос
    Рис. 1. Категория «Запрос»
    Источники данных запрос.png
  • Файл
    Рис. 2. Категория «Файл»
    Источники данных файл.png
  • Интернет-сервис
    Рис. 3. Категория «Интернет-сервис»
    ИД интернет сервис.png
  • Программный код
    Рис. 4. Категория «Программный код»
    ИД программный код.png
  • Хранилище данных
    Рис. 5. Категория «Хранилище данных»
    ИД хранилище данных.png
  • Соединение
    Рис. 6. Категория «Соединение»
    Источники данных соединение.png

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

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

Во вкладке Переменные по кнопке Обновить заполняются колонки таблицы. Здесь можно переопределить заголовки, которые будут отображаться в отчете, и можно выбрать значение колонки «Измерение/Ресурс».

Во вкладке Таблица данных по кнопке Обновить заполняются данные по запросу.

По кнопке Вывести список можно распечатать данные.

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

Форма конструктора запросов

Конструктор запросов доступен по нажатию ссылки «Текст запроса» при выбранной категории «Запрос». Форма конструктора запросов состоит из множества вкладок:

  • Таблицы и поля
    Рис. 1. Вкладка «Таблицы и поля»
    Источники данных конструктор запроса таблицы и поля.png
  • Группировка
    Рис. 2. Вкладка «Группировка»
    Источники данных конструктор запроса группировка.png
  • Условия
    Рис. 3. Вкладка «Условия»
    Источники данных конструктор запроса условия.png
  • Дополнительно
    Рис. 4. Вкладка «Дополнительно»
    Источники данных конструктор запроса дополнительно.png
  • Объединения/псевдонимы
    Рис. 5. Вкладка «Объединения/псевдонимы»
    Источники данных конструктор запроса псевдонимы.png
  • Порядок
    Рис. 6. Вкладка «Порядок»
    Источники данных конструктор запроса порядок.png
  • Итоги
    Рис. 7. Вкладка «Итоги»
    Источники данных конструктор запроса итоги.png
  • Пакет запросов
    Рис. 8. Вкладка «Пакет запросов»
    Источники данных конструктор запроса пакет запросов.png

История изменений, ссылки сюда