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

Материал из КинтВики
Перейти к: навигация, поиск
м
 
(не показано 9 промежуточных версий 4 участников)
Строка 1: Строка 1:
<noinclude>[[Категория:Настройка (КУС)]][[Категория:Гостиница (КУС)|*70]]</noinclude>
+
<noinclude>[[Категория: Работа с данными (КУС)]]</noinclude>
 +
{| align="right"
 +
| __TOC__
 +
|}
 +
{{video|[https://youtu.be/MBJjTEMFcvI Работа с источниками данных]}}
 +
{{video2|[https://rutube.ru/video/c0d44e98ad3199fe8e02065a85591588/ Работа с источниками данных]}}
 
Источники данных описывают алгоритм получения данных из базы.
 
Источники данных описывают алгоритм получения данных из базы.
  
Открыть справочник «Источников данных» можно в программных комплексах «Кинт: Управление делами» и «Кинт: Управление санаторием» в разделе АДМИНИСТРИРОВАНИЕ — ИСТОЧНИКИ ДАННЫХ.
+
Открыть справочник «Источников данных» можно в программных комплексах «Кинт: Управление делами» и «Кинт: Управление санаторием» в разделе АДМИНИСТРИРОВАНИЕ.
 +
 
 
== Категории источников данных ==
 
== Категории источников данных ==
 
Категория источника данных определяет алгоритм получения таблицы с данными. Существующие категории источников данных:
 
Категория источника данных определяет алгоритм получения таблицы с данными. Существующие категории источников данных:
Строка 83: Строка 89:
 
Отличие от категории «Запрос» заключается в следующем: если что-то поменяли, то результат запроса изменится, а результат источника данных с типом «Хранилище данных» всегда будет одинаковым. Можно использовать чтобы сохранить какую-либо эталонную таблицу, чтобы, например, дальше использовать ее при сравнении данных.
 
Отличие от категории «Запрос» заключается в следующем: если что-то поменяли, то результат запроса изменится, а результат источника данных с типом «Хранилище данных» всегда будет одинаковым. Можно использовать чтобы сохранить какую-либо эталонную таблицу, чтобы, например, дальше использовать ее при сравнении данных.
  
В текущем релизе работать с таким ИД можно только программно.  
+
В текущем релизе работать с таким ИД можно только программно.
  
Можно написать функцию, которую надо использовать (информация для разработчиков/специалистов СПП): яъПрикладныеОбъекты.ОткрытьФормуСозданияИсточникаДанных(Данные)
+
Пример:
 +
<syntaxhighlight lang="css" class="toccolours mw-collapsible mw-collapsed" style="overflow: auto">
 +
&НаСервере
 +
// Таблица реализации во временном хранилище.
 +
Функция АдресТаблицыЗначенийВоВременномХранилище()
 +
запрос = Новый Запрос("ВЫБРАТЬ
 +
| оу_ОперативныйУчетУслугОбороты.Субконто1.Наименование КАК Контрагент,
 +
| оу_ОперативныйУчетУслугОбороты.Субконто1.ИНН КАК ИНН,
 +
| СУММА(оу_ОперативныйУчетУслугОбороты.КоличествоОборотДт) КАК Количество,
 +
| СУММА(оу_ОперативныйУчетУслугОбороты.СуммаОборотДт) КАК Сумма
 +
|ИЗ
 +
| РегистрБухгалтерии.оу_ОперативныйУчетУслуг.Обороты(&НачалоПериода, &КонецПериода, , , , , , ) КАК оу_ОперативныйУчетУслугОбороты
 +
|ГДЕ
 +
| оу_ОперативныйУчетУслугОбороты.КоличествоОборотДт > 0
 +
|
 +
|СГРУППИРОВАТЬ ПО
 +
| оу_ОперативныйУчетУслугОбороты.Субконто1.Наименование,
 +
| оу_ОперативныйУчетУслугОбороты.Субконто1.ИНН");
 +
запрос.УстановитьПараметр("НачалоПериода", Дата('20230101'));
 +
запрос.УстановитьПараметр("КонецПериода", Дата('20230131'));
 +
Возврат ПоместитьВоВременноеХранилище(запрос.Выполнить().Выгрузить(), УникальныйИдентификатор);
 +
КонецФункции
 +
 
 +
&НаКлиенте
 +
// Открывает форму записи данных в источник данных с типом "Хранилище данных".
 +
Процедура ОткрытьФормуСохраненияДанных(Команда)
 +
стРеквизиты = _ст("Наименование", "Реализация январь (до корректировки)");
 +
вхТаблицаСДанными = АдресТаблицыЗначенийВоВременномХранилище();
 +
Если вхТаблицаСДанными = Неопределено Тогда Возврат; КонецЕсли;
 +
яъПрикладныеОбъекты.ОткрытьФормуСозданияИсточникаДанных(вхТаблицаСДанными, стРеквизиты);
 +
КонецПроцедуры
 +
</syntaxhighlight>
  
 
=== Соединение ===
 
=== Соединение ===
Строка 181: Строка 218:
 
* '''Пакет запросов'''
 
* '''Пакет запросов'''
 
*: <div class="mw-collapsible mw-collapsed"> '''Рис. 8. Вкладка «Пакет запросов»''' <div class="mw-collapsible-content"> [[Файл:Источники данных конструктор запроса пакет запросов.png]] </div></div>
 
*: <div class="mw-collapsible mw-collapsed"> '''Рис. 8. Вкладка «Пакет запросов»''' <div class="mw-collapsible-content"> [[Файл:Источники данных конструктор запроса пакет запросов.png]] </div></div>
 
== История изменений, ссылки  сюда ==
 
{{:Служебная:Whatlinkshere/Источники данных}}
 

Текущая версия на 17:06, 18 ноября 2024

YouTube.png
RUTUBE.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