Джокер
Администратор
- Регистрация
- 1 Янв 2015
- Сообщения
- 124.742
- Реакции
- 75.709
Консоль запросов ЗУП с поддержкой обращения к методам программного интерфейса в запросах [Инфостарт]
QueryConsole1C — расширение, включающее консоль запросов с поддержкой исполняемых представлений — аналогов виртуальных таблиц, основанных на методах программного интерфейса ЗУП. Оно позволяет выполнять запросы с учётом встроенной бизнес-логики, отлаживать алгоритмы получения данных и автоматически генерировать код на встроенном языке 1С.
Если вы хотите узнать подробнее про архитектуру решения, используемые паттерны проектирования, кейсы реального использования, голосуйте за мой доклад на Infostart tech event 2025.
Подробнее про техническую реализацию можно почитать в статье.
Содержание:
Проблематика
Конфигурация 1С:Зарплата и управление персоналом (ЗУП) отличается от большинства других типовых решений платформы — прежде всего тем, что активно использует программный интерфейс (ПИ) для получения и подготовки данных. Вместо привычной работы с регистрами и справочниками, разработчики вынуждены обращаться к методам, создающим временные таблицы:
СоздатьВТКадровыеДанныеСотрудников
СоздатьВТРабочиеМестаСотрудников
СоздатьВТДанныеУчетаВремениИСостоянийСотрудников т.п.
Разрыв между моделью и реализацией
Одна из сильных сторон платформы 1С — возможность строить запросы на основе метаданных, не вникая в технические детали реализации. Но ЗУП отходит от этой концепции. Здесь аналитики работают с понятиями вроде «сотрудник», «должность», «начисление», а разработчики — с методами, параметрами и временными таблицами, не имеющими аналогов в конфигурации.
В результате:
Стандартная консоль запросов не позволяет получать данные, так, как это задумано в типовой;
Аналитики ограничены в возможностях самостоятельного анализа;
Разработчики вынуждены разбираться с недокументированным API, что увеличивает порог входа и затраты на поддержку.
Простой пример: получить актуальную должность сотрудника
Даже казалось бы тривиальная задача — получить текущую должность сотрудника — не так проста.
На первый взгляд, запрос к виртуальной таблице РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних должен решить проблему. Но на практике он может вернуть некорректный результат, например при наличии возвратных событий.
Пример посложнее: расшифровка базы начислений
Аналогично, в старых версиях конфигурации можно было использовать РегистрРасчета.Начисления.База как виртуальную таблицу. Сейчас для получения базы начисления требуется цепочка вызовов, где каждый метод подготавливает временные таблицы, фильтры и агрегаты. Аналитику без доступа к коду решить такую задачу невозможно. А разработчику потребуется время на изучение механизма и отладку.
Расширенная консоль запросов для ЗУП
QueryConsole1C — это расширение для платформы 1С:Предприятие, включающее усовершенствованную консоль запросов с поддержкой расширенной семантики языка запросов. Ключевая особенность — поддержка нового типа источников данных: ИсполняемыеПредставления, которые можно рассматривать как аналог виртуальных таблиц, адаптированный под архитектуру ЗУП.
Что такое исполняемые представления?
Исполняемые представления позволяют напрямую использовать методы программного интерфейса (ПИ) конфигурации ЗУП внутри пакетов запросов. Эти методы формируют временные таблицы, содержащие актуальные данные, рассчитанные по правилам типовой бизнес-логики. Консоль автоматически вызывает нужный метод, подставляет параметры и делает результат доступным для SQL-запросов.
Зачем это нужно?
В типовой конфигурации ЗУП доступ к ключевым данным (начислениям, кадровой истории, рабочим местам, базам и т.п.) осуществляется через вызовы программного интерфейса. Без использования ПИ получение корректных данных в запросе — нетривиальная задача, требующая глубокого понимания внутренней структуры и алгоритмов конфигурации. При этом стандартная консоль запросов не позволяет интегрировать вызов ПИ в текст запроса, что делает многие сценарии анализа и диагностики практически недоступными.
QueryConsole1C устраняет это ограничение.
Для кого и для чего
Инструмент ориентирован на разработчиков, аналитиков и консультантов, которым необходимо:
Выполнять сложные запросы к данным ЗУП с учетом встроенной бизнес-логики;
Интерактивно анализировать содержимое временных таблиц, формируемых методами ПИ;
Генерировать код на встроенном языке 1С, где исполняемые представления автоматически преобразуются в вызовы ПИ;
Упрощать построение запросов через визуальный конструктор, поддерживающий расширения языка и работу с параметрами.
Подробнее про исполняемые представления
Исполняемые представления — это расширение концепции виртуальных таблиц платформы 1С, адаптированное под архитектуру конфигурации ЗУП. Они позволяют интегрировать вызовы программного интерфейса (ПИ) прямо в тело SQL-запроса, делая доступ к сложной логике получения данных максимально прозрачным и удобным.
Как это работает
При выполнении запроса, содержащего ссылку на исполняемое представление, консоль:
Определяет, какие параметры и фильтры указаны;
Выполняет код на встроенном языке 1С, который вызывает нужный метод ПИ;
Получает из него временную таблицу;
Подставляет эту таблицу как источник данных в SQL-запрос.
В итоге — запрос работает с результатом вызова метода ПИ так же, как если бы это была обычная временная таблица или виртуальная таблица платформы.
Пример использования
Для примера рассмотрим запрос получения данных учета времени по списку сотрудников. Источником данных в нём выступает исполняемое представление ДанныеУчетаВремениСотрудников. Запрос включает описание временной таблицы фильтра и несколько именованных параметров:
ВЫБРАТЬ
ДанныеУчетаВремениСотрудников.Сотрудник КАК Сотрудник,
ДанныеУчетаВремениСотрудников.Дата КАК Дата,
ДанныеУчетаВремениСотрудников.ВидУчетаВремени КАК ВидУчетаВремени,
ДанныеУчетаВремениСотрудников.Дни КАК Дни,
ДанныеУчетаВремениСотрудников.Часы КАК Часы,
ДанныеУчетаВремениСотрудников.Смена КАК Смена,
ДанныеУчетаВремениСотрудников.НормаЧасов КАК НормаЧасов
ИЗ
ИсполняемоеПредставление.ДанныеУчетаВремениСотрудников(
(Сотрудник, ДатаНачала, ДатаОкончания) В
(ВЫБРАТЬ
Сотрудники.Ссылка КАК Ссылка,
&ДатаНачала КАК ДатаНачала,
&ДатаОкончания КАК ДатаОкончания
ИЗ
Справочник.Сотрудники КАК Сотрудники
ГДЕ
Сотрудники.Ссылка В (&СписокСотрудников)),
ДатаНачала = &ДатаНачала,
ДатаОкончания = &ДатаОкончания,
ДатаАктуальности = &ДатаНачала) КАК ДанныеУчетаВремениСотрудников
Синтаксис и параметры
ОписаниеВТФильтр
Первым (если поддерживается) идёт параметр-фильтр — временная таблица, содержащая список объектов, по которым нужно получить данные. Синтаксис такой же, как у подзапросов ВТ в языке запросов:
(Поле1, Поле2) В (ВЫБРАТЬ ... ИЗ ... ГДЕ ...)
Именованные параметры
После фильтра указываются обычные именованные параметры, передаваемые в метод ПИ:
ИмяПараметра = Значение
Эти параметры управляют детализацией, флагами расчёта и другими аспектами поведения представления. Порядок указания не имеет значения.
Гибкость и совместимость
Исполняемые представления не накладывают ограничений на синтаксис запроса. Они поддерживают все типовые операции: соединения, фильтрацию, группировку, сортировку, вложенные подзапросы и т.д. Это делает их полноценными источниками данных в любом сценарии, где раньше приходилось вручную повторять логику ЗУП.
Конструктор запросов: работа с исполняемыми представлениями без погружения в код
В состав QueryConsole1C входит конструктор запросов, предназначенный для упрощения создания запросов, в том числе с использованием исполняемых представлений. Это особенно важно для аналитиков и разработчиков, которым важно получить данные из ЗУП, не погружаясь в детали реализации программного интерфейса.
Основные возможности конструктора
Поддержка источников данных типа ИсполняемоеПредставление, которые можно выбрать из списка так же, как регистры или справочники;
Редактирование параметров представления (в том числе фильтров с подзапросами) через пользовательский интерфейс;
Визуально конструктор запросов похож на конструктор запросов для управляемого приложения, входящий в состав платформы. Основные отличия это доступный список исполняемых представлений,
и возможность редактировать параметры исполняемых представлений через специальную форму.
Для удобства все исполняемые представления сгруппированы по подсистемам.
СКАЧАТЬ СЛИВЫ КУРСОВ
QueryConsole1C — расширение, включающее консоль запросов с поддержкой исполняемых представлений — аналогов виртуальных таблиц, основанных на методах программного интерфейса ЗУП. Оно позволяет выполнять запросы с учётом встроенной бизнес-логики, отлаживать алгоритмы получения данных и автоматически генерировать код на встроенном языке 1С.
Если вы хотите узнать подробнее про архитектуру решения, используемые паттерны проектирования, кейсы реального использования, голосуйте за мой доклад на Infostart tech event 2025.
Подробнее про техническую реализацию можно почитать в статье.
Содержание:
Проблематика
Конфигурация 1С:Зарплата и управление персоналом (ЗУП) отличается от большинства других типовых решений платформы — прежде всего тем, что активно использует программный интерфейс (ПИ) для получения и подготовки данных. Вместо привычной работы с регистрами и справочниками, разработчики вынуждены обращаться к методам, создающим временные таблицы:
СоздатьВТКадровыеДанныеСотрудников
СоздатьВТРабочиеМестаСотрудников
СоздатьВТДанныеУчетаВремениИСостоянийСотрудников т.п.
Разрыв между моделью и реализацией
Одна из сильных сторон платформы 1С — возможность строить запросы на основе метаданных, не вникая в технические детали реализации. Но ЗУП отходит от этой концепции. Здесь аналитики работают с понятиями вроде «сотрудник», «должность», «начисление», а разработчики — с методами, параметрами и временными таблицами, не имеющими аналогов в конфигурации.
В результате:
Стандартная консоль запросов не позволяет получать данные, так, как это задумано в типовой;
Аналитики ограничены в возможностях самостоятельного анализа;
Разработчики вынуждены разбираться с недокументированным API, что увеличивает порог входа и затраты на поддержку.
Простой пример: получить актуальную должность сотрудника
Даже казалось бы тривиальная задача — получить текущую должность сотрудника — не так проста.
На первый взгляд, запрос к виртуальной таблице РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних должен решить проблему. Но на практике он может вернуть некорректный результат, например при наличии возвратных событий.
Пример посложнее: расшифровка базы начислений
Аналогично, в старых версиях конфигурации можно было использовать РегистрРасчета.Начисления.База как виртуальную таблицу. Сейчас для получения базы начисления требуется цепочка вызовов, где каждый метод подготавливает временные таблицы, фильтры и агрегаты. Аналитику без доступа к коду решить такую задачу невозможно. А разработчику потребуется время на изучение механизма и отладку.
Расширенная консоль запросов для ЗУП
QueryConsole1C — это расширение для платформы 1С:Предприятие, включающее усовершенствованную консоль запросов с поддержкой расширенной семантики языка запросов. Ключевая особенность — поддержка нового типа источников данных: ИсполняемыеПредставления, которые можно рассматривать как аналог виртуальных таблиц, адаптированный под архитектуру ЗУП.
Что такое исполняемые представления?
Исполняемые представления позволяют напрямую использовать методы программного интерфейса (ПИ) конфигурации ЗУП внутри пакетов запросов. Эти методы формируют временные таблицы, содержащие актуальные данные, рассчитанные по правилам типовой бизнес-логики. Консоль автоматически вызывает нужный метод, подставляет параметры и делает результат доступным для SQL-запросов.
Зачем это нужно?
В типовой конфигурации ЗУП доступ к ключевым данным (начислениям, кадровой истории, рабочим местам, базам и т.п.) осуществляется через вызовы программного интерфейса. Без использования ПИ получение корректных данных в запросе — нетривиальная задача, требующая глубокого понимания внутренней структуры и алгоритмов конфигурации. При этом стандартная консоль запросов не позволяет интегрировать вызов ПИ в текст запроса, что делает многие сценарии анализа и диагностики практически недоступными.
QueryConsole1C устраняет это ограничение.
Для кого и для чего
Инструмент ориентирован на разработчиков, аналитиков и консультантов, которым необходимо:
Выполнять сложные запросы к данным ЗУП с учетом встроенной бизнес-логики;
Интерактивно анализировать содержимое временных таблиц, формируемых методами ПИ;
Генерировать код на встроенном языке 1С, где исполняемые представления автоматически преобразуются в вызовы ПИ;
Упрощать построение запросов через визуальный конструктор, поддерживающий расширения языка и работу с параметрами.
Подробнее про исполняемые представления
Исполняемые представления — это расширение концепции виртуальных таблиц платформы 1С, адаптированное под архитектуру конфигурации ЗУП. Они позволяют интегрировать вызовы программного интерфейса (ПИ) прямо в тело SQL-запроса, делая доступ к сложной логике получения данных максимально прозрачным и удобным.
Как это работает
При выполнении запроса, содержащего ссылку на исполняемое представление, консоль:
Определяет, какие параметры и фильтры указаны;
Выполняет код на встроенном языке 1С, который вызывает нужный метод ПИ;
Получает из него временную таблицу;
Подставляет эту таблицу как источник данных в SQL-запрос.
В итоге — запрос работает с результатом вызова метода ПИ так же, как если бы это была обычная временная таблица или виртуальная таблица платформы.
Пример использования
Для примера рассмотрим запрос получения данных учета времени по списку сотрудников. Источником данных в нём выступает исполняемое представление ДанныеУчетаВремениСотрудников. Запрос включает описание временной таблицы фильтра и несколько именованных параметров:
ВЫБРАТЬ
ДанныеУчетаВремениСотрудников.Сотрудник КАК Сотрудник,
ДанныеУчетаВремениСотрудников.Дата КАК Дата,
ДанныеУчетаВремениСотрудников.ВидУчетаВремени КАК ВидУчетаВремени,
ДанныеУчетаВремениСотрудников.Дни КАК Дни,
ДанныеУчетаВремениСотрудников.Часы КАК Часы,
ДанныеУчетаВремениСотрудников.Смена КАК Смена,
ДанныеУчетаВремениСотрудников.НормаЧасов КАК НормаЧасов
ИЗ
ИсполняемоеПредставление.ДанныеУчетаВремениСотрудников(
(Сотрудник, ДатаНачала, ДатаОкончания) В
(ВЫБРАТЬ
Сотрудники.Ссылка КАК Ссылка,
&ДатаНачала КАК ДатаНачала,
&ДатаОкончания КАК ДатаОкончания
ИЗ
Справочник.Сотрудники КАК Сотрудники
ГДЕ
Сотрудники.Ссылка В (&СписокСотрудников)),
ДатаНачала = &ДатаНачала,
ДатаОкончания = &ДатаОкончания,
ДатаАктуальности = &ДатаНачала) КАК ДанныеУчетаВремениСотрудников
Синтаксис и параметры
ОписаниеВТФильтр
Первым (если поддерживается) идёт параметр-фильтр — временная таблица, содержащая список объектов, по которым нужно получить данные. Синтаксис такой же, как у подзапросов ВТ в языке запросов:
(Поле1, Поле2) В (ВЫБРАТЬ ... ИЗ ... ГДЕ ...)
Именованные параметры
После фильтра указываются обычные именованные параметры, передаваемые в метод ПИ:
ИмяПараметра = Значение
Эти параметры управляют детализацией, флагами расчёта и другими аспектами поведения представления. Порядок указания не имеет значения.
Гибкость и совместимость
Исполняемые представления не накладывают ограничений на синтаксис запроса. Они поддерживают все типовые операции: соединения, фильтрацию, группировку, сортировку, вложенные подзапросы и т.д. Это делает их полноценными источниками данных в любом сценарии, где раньше приходилось вручную повторять логику ЗУП.
Конструктор запросов: работа с исполняемыми представлениями без погружения в код
В состав QueryConsole1C входит конструктор запросов, предназначенный для упрощения создания запросов, в том числе с использованием исполняемых представлений. Это особенно важно для аналитиков и разработчиков, которым важно получить данные из ЗУП, не погружаясь в детали реализации программного интерфейса.
Основные возможности конструктора
Поддержка источников данных типа ИсполняемоеПредставление, которые можно выбрать из списка так же, как регистры или справочники;
Редактирование параметров представления (в том числе фильтров с подзапросами) через пользовательский интерфейс;
Визуально конструктор запросов похож на конструктор запросов для управляемого приложения, входящий в состав платформы. Основные отличия это доступный список исполняемых представлений,
и возможность редактировать параметры исполняемых представлений через специальную форму.
Для удобства все исполняемые представления сгруппированы по подсистемам.
СКАЧАТЬ СЛИВЫ КУРСОВ
Для возможности скачивать складчины и сливы курсов нужно зарегистрироваться
Возможно, Вас ещё заинтересует:
- Недушный Новый Год [Валерия Рослякова]
- Lesson planning: a road map to achieving positive outcomes [Татьяна Фанштейн]
- Interactive grammar presentation: let them think [Татьяна Фанштейн]
- Как удержать внимание детей в группе онлайн [Татьяна Фанштейн]
- Элементарное счастье [Оксана Бачинская]
- Годовая подписка Яндекс Диск 1Тб на 1 год со скидкой 40% [поток 5]
- Психологические особенности работы учителя онлайн: как обеспечить себе комфорт? [Татьяна Фанштейн]
- Man up [Тариф Вакиддзаси] [Рамзес Кубинский]
- Таро Монара. Искусство страсти и любви: 9 раскладов на отношения [Юлия Бульбаш]
- [ИИ] Чат-бот с искусственным интеллектом ChatGPT [Team №30 на 1 месяц по 15 человек] [openai.com]