1с консоль отчетов для управляемого приложения

Управляемая консоль отчетов – новый функциональный инструмент для работы с запросами и СКД в управляемых формах

Приветствую, коллеги, меня зовут Люлюк Евгений, работаю ведущим программистом крупной транспортной компании GLT. Мой опыт разработки на платформе 1С более 15 лет.

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

«Некогда пилу точить, нужно дерево пилить!»

Этой ироничной фразой подмечено, насколько важен инструмент в нашей работе. Время выполнения задачи зависит от инструмента. А время у нас стоит дорого.

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

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

Что такое «Управляемая консоль отчетов»

5ce29b5bddf6f25001b0e2147bedb3a4

Разберем подробнее, какие возможности разработки «Управляемая консоль отчетов» могут быть вам полезны.

Получение данных запроса из отладки

632866dfff17cba223e863d79af80696

Механизм получения данных в момент выполнения запроса известен достаточно давно. Очень удобно: ставим точку останова на строке, где выполняется запрос, вызываем определенную функцию, которая прописана в инструменте, и получаем из отладки весь контекст запроса – все его данные, временные таблицы, заполненные параметры.

В чем особенность? В обычных формах можно было в момент отладки просто открыть форму консоли и сразу же работать с этим запросом. А в управляемых формах в контексте сервера открыть форму нельзя, приходится где-то сохранять данные, и потом производить с ними работу. Это можно назвать «Отложенной отладкой».

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

И потом в последних использованных файлах/настройках можно данные этого запроса найти, выбрать – и сразу же все появляется, можно работать.

Анализ планов запросов

8cf05b9e0dbd2df2f2ccdfb8842430cf

Тема анализа планов запросов достаточно актуальна. Производительность нужна всем, ее постоянно не хватает. В консоль встроен механизм анализа планов запросов (основан на технологическом журнале)

Концепция анализа близка к стандартной консоли запросов от 1С, улучшено:

Улучшения консоли СКД

c0c3e2831ea66f0db643408eb01489d1

Аналогично консоли СКД 1С, есть просмотр схемы компоновки данных, можно добавлять варианты, пользовательские настройки.

Групповая обработка

45ed59fc44dfa02503bc2a9bf55e35b9

В разработке есть очень простая и удобная групповая обработка, которая позволяет решать большинство задач простым способом. На вход этого инструмента подается таблица значений. Нам необходимо прописать код, который будет выполняться для каждой строки.

0e8b15f76e1f69301e8449878e6afde0

Есть подробная индикация с возможностью прерывания.

c8e06c072940f68f1099e7cb7650a91a

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

Еще важно, что когда мы пишем запрос, необходимо его построить таким образом, чтобы при повторном выполнении он нам не давал в результате те объекты, которые уже были обработаны. Допустим, я запускаю обработку, а там 10 тысяч объектов – 5 тысяч из них обработано, потом у меня программа вылетела (администратор выкинул). Чтобы она в следующий раз уже не пыталась обрабатывать обрабатываемые объекты. Это зачастую легко делается. Допустим, если мы хотим заполнить незаполненное поле, мы прописываем в запрос «Выбрать все объекты, где это поле пустое», он нам получает, заполняем его. И, соответственно, повторное выполнение запроса уже не даст те строки, в которых это поле заполнено.

Поддержка пакетных запросов и временных таблиц

36ad7fcb48e7a59af9dbf1211df16629

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

Обратите внимание, мы на экране видим, что сначала идет запрос №3, потом – запрос №2, а потом – запрос №1. Пакеты запросов так устроены, что обычно идут вначале временные таблицы, а результат где-то в конце. И я счел нужным записать это в обратную сторону. Но если для кого-то это непривычно, есть настройка, чтобы записать результат в прямом порядке.

Работа с параметрами запроса

aad5004b2488c457665ab9d12339a75b

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

Редактирование текста запроса вручную

2c5cb6f779ec33f361e81c065b8e094b

Для тех, кто редактирует текст запроса вручную, есть несколько помощников:

Разбор запроса на составляющие

3f5607197789d3475a1707b45f492613

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

Поддержка английского языка разработки

d5acfd605af8df43a24b751baeacb01f

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

Подход к разработке

6178a4b7d95f8b1125a12e25a21db24e

Проект доступен как расширение или как внешняя обработка.

Все привыкли, что консоль запросов – это внешняя обработка. Но расширение, разрабатывать намного удобнее – можно структурировать: создавать модули, картинки, общие макеты и т.д. Поэтому разработка ведется именно в расширении, а внешняя обработка получается путем автоматической генерации.

«Не думай о секундах свысока»

Дальше я немного расскажу про простые улучшения, повышающие удобство работы

Ограничение количества выводимых строк

0b2903dde80ca37130c9a6d11e750b1d

Часто бывает, что мы выполняем пакет запросов, в нем может быть 40 таблиц с большим количеством строк. Такой результат никогда нормально не выведется, придется ждать очень долго. Сделано ограничение строк – больше 3000 строк по умолчанию он не выводит. Пишет, что выведено 3000 из 3125. И дальнейший результат не выводится, пишет «не все выведены». При желании можно нажать «Вывести все», и выведутся все строки.

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

Выделение особых значений – NULL и др.

5261fcf1301ce19f68dbe53751b3e9b7

Выделение особых значений – тоже достаточно важная функция. Выделяются значения: «NULL», «Пустая строка», «Пустая дата», «Пустая ссылка», «Неопределено».

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

Сравнение данных

0eeaedcaa21164f72669f94167254774

Когда это использовать? Например, когда нам необходимо изменить запрос или оптимизировать запрос. Тогда мы в дереве консоли создаем первый запрос – это у нас эталон. А второй – это у нас разрабатываемый запрос. И, допустим, если нам необходимо, чтобы колонка «Выручка» считалась по-другому, мы реализуем этот механизм, а потом впоследствии наглядно сравниваем результаты и видим, соответствуют они нашим ожиданиям или нет.

Другой пример, если мы оптимизируем какой-то запрос – слева у нас эталон, а справа – оптимизируемый запрос. Мы его оптимизировали, закончили, можем наглядно сравнить тексты запроса. Бывает такое, что в конструкторе запроса, почему-то удалилось какое-то поле, и текст уже изменился, а это было сразу непонятно.

И другой пример – если получается, что при оптимизации эталонный запрос выдает другие данные, нежели наш, это значит, что-то не так – мы что-то слишком перемудрили с оптимизацией.

Расшифровка таблиц значений

c9a346ba496fc540eba7756c3a575a18

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

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

Форма выбора типа

f3b3b49ccf2862f6bfe0cd93b26f004e

В разработке сделана своя форма выбора типа.

Форма выбора типа у 1С, мне кажется, не менялась с версии 8.0 – она просто вываливает список значений со всеми доступными типами, очень ненаглядно. Единственный помощник в стандартной форме выбора типа – это Ctrl+F.

Наша форма выбора типа:

Вставка значений ссылки по UID и по представлению битой ссылки

9cf1226042528e0ca06c89356e0246db

Я уже упоминал об этой функциональности, но важно, что сейчас на картинках наглядно видно, как происходит эта вставка. И этот механизм работает везде, где у нас используется ссылка – при вставке ссылки на объект и т.д.

Генерация кода на встроенном языке

1c1d5ec35738023b453b9018dba80f51

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

Примечание к типу поля

d64f04c2b409297b7137c1c8a15c34fc

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

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

Экспорт результата

8b4b15d9b3e70d18f3bdd92088855a84

Думаю, понятно – если необходимо выполнить экспорт результата в Excel, MXL, PDF, то нужно воспользоваться этой функцией.

Здесь важная особенность – он делает внутри какие-то мелкие полезности. Допустим, для MXL он устанавливает защиту ячеек, чтобы при открытии MXL в 1С можно было работать с расшифровками. Такие вещи, которые вы можете даже не заметить.

Замер времени выполнения

f5ec1973537e114139ae47d729b6ef77

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

Но в чем здесь особенность? Здесь особенность, что по кнопке «Обновить замер времени выполнения» мы можем видеть не время вывода результата, а только время выполнения запроса. Потому что так бывает, что запрос выполняется три миллисекунды, а вывод данных занимает одну минуту. Эта кнопка производит замер только времени выполнения, замер времени вывода результата она не производит.

Выделение активированной строки

ffdc3cf7c40b04bfba5d6e0300cceed7

Вот это – тоже простая функция. Тоже «стильно, модно, молодежно». Активированная строка выделяется нашим самым любимым цветом – желтым.

Информирование об обновлении

57566bb4e87efde072271a2f3b7d02e5

Есть функциональность информирования об обновлении.

Немного об оптимизации

9343e0b60006f0eacda2aa895539a1ee

Обновление и поддержка

f97b33cb2534003d777a566b288feda1

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

Данная статья написана по итогам доклада (видео), прочитанного на конференции INFOSTART EVENT 2019. Больше статей можно прочитать здесь.

В 2020 году приглашаем всех принять участие в 7 региональных митапах, а также юбилейной INFOSTART EVENT 2020 в Москве.

Источник

Консоль отчетов для управляемых форм

Предназначена для запуска на управляемых формах. Возможность редактировать саму компановку есть только в толстом клиенте (уравляемом). В тонком клиенте можно просто формировать отчеты с параметрами.

Может использоваться как встроенный отчет в конфигурации для формирования опытным пользователем отчетов.

Есть возможность сохранить отчеты в файл с последующим востановлением. Формат сохранения свой.

Форма настройки схемы компановки данных взята из УП 2.0

Скачать файлы

Специальные предложения

f71a8c4e70c0ff03708038e2b0210df8

9c2808762ec294cd4c55532520b9c521

895fb1e0f7afc3c0ed0d73bf5ee9d9d0

egais promo

b34b292ed32e9501f98cc31df406353e

789363929b9f37ddc5641a069a5fe52e

5b19cd6c4494a88b2abefce64a1b7565

199e2be4fd21dd8f4209d8ec34616c76

(3) douwl, можно все.. у меня даже есть консоль которая работает на тонком клиенте и там работает конструктор запросов! причем с совместимостью 8.2
(4) консоль замечательная, реально помогла.. только вот если конфа с совместимостью 8.2 не работает, ругается на ЭтотОбъект.. сделайте универсально:
делаем типа такой функции:

и заменяем все ЭтотОбъект на такой код:
?(ПолучитьСовместимостьС83(), Вычислить(«ЭтотОбъект»), ЭтаФорма)
и все отлично!
ПС: добавьте такую функцию что бы выводил текст запроса (после компоновки), нигде такую консоль не могу найти.. есть только под обычные формы.. вот взял вашу, допилю что бы текст запроса после компановки был.. если интересно в личку напишите, я вам готовый кусок дам
ПС: сделал себе отчет с выводом результат скомпонованного запроса, все работает отлично

Спасибо.
Пока это единственное, работает в самодельной конфигурации, да и не сильно наворочен.

Только при запуске в тонком клиенте надо кликнуть два раза, пока появится запрос на восстановление
настроек по умолчанию и при смене группировок слетают детальные записи по строкам.
Может что не так делаю?

Обновление 15.06.15 15:30

Код открыт Не указано

См. также

Универсальный редактор данных (УРД) Промо

27.08.2021 5477 118 Adeptus 51

Конвертация данных 3 расширение: Редактор кода.

08.09.2020 11565 30 Viktor_Ermakov 32

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

14.08.2020 13656 0 Enigma 47

Должно быть NULL в регистре бухгалтерии Хозрасчетный

Обработка проверяет наличие и решает проблему с ошибкой развернутого сальдо в Оборотно-сальдовой ведомости (регистр бухгалтерии Хозрасчетный) из-за ошибки Универсального редактора реквизитов или кода программиста, устанавливающего пустые ссылки в значениях Валюты, Подразделения, Направления деятельности не равными NULL. И пересчёт итогов тут точно не поможет.

21.10.2019 18329 74 sapervodichka 33

Программа Faster 9.4 позволяет ускорить процесс работы программиста (работает в любом текстовом редакторе). Подсказка при вводе текста на основе ранее введенного текста и настроенных шаблонов. Программа Faster позволяет делится кодом с другими программистами в два клика или передать ссылку через QR Код. Исправление введенных фраз двойным Shift (с помощью speller.yandex). Переводчик текста. Переворачивает текст случайно набранный на другой раскладке. Полезная утилита для тех, кто печатает много однотипного текста, кодирует в среде Windows на разных языках программирования. Через некоторое время работы с программой у вас соберется своя база часто используемых словосочетаний и кусков кода. Настройка любых шорткатов под себя с помощью скриптов. Никаких установок и лицензий, все бесплатно.

24.05.2012 84626 965 moolex 157

CF & SQL : конструктор прямых запросов к БД 1С

Программа для чтения и анализа внутренней структуры данных 1С V8.х, Содержит конструктор прямых SQL запросов, позволяет обрабатывать и редактировать тексты SQL-запросов, выполнять прямые запросы к базе данных 1С и обрабатывать полученные результаты.

02.10.2019 30334 296 dmitrydemenew 63

Конвейер проверки качества кода

Jenkinsfile для выполнения проверки качества кода. Собирает информацию с АПК, EDT и BSL-LS. Сопоставляет ошибки с гит-репозиторием, выгруженным ГитКонвертором. Отправляет в Сонар.

04.09.2019 37615 27 Stepa86 46

Модель объекта

Подсистема позволяет описать модель данных объекта, где описана зависимость между реквизитами, и затем использовать эту модель в разных сценариях работы с объектом. Версия платформы: 8.3.6 и выше. С небольшими доработками будет работать на 8.2.

30.06.2019 16502 1 vadim1980 5

Установка предопределенных элементов: просмотр, исправление и поиск ошибок (задвоенных и отсутствующих) Промо

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

06.10.2014 169452 2757 ekaruk 170

Переводим рутину ручного тестирования 1C на рельсы Jenkins-а и ADD

Вы все еще тестируете свои конфигурации 1С вручную? Да вы просто тратите жизнь впустую! В данном туториале попробуем скрестить ADD и jenkins для автоматического запуска тестов.

03.06.2019 37012 9 ripreal1 92

Универсальный HTTP-сервис на платформе 1С, аля HTTP-сервер с примером

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

13.05.2019 38270 152 Diversus 44

Немного о графических файлах. Сжатие. Распознавание текста

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

06.05.2019 9857 12 tusv 6

[Расширение] Контроль отрицательных остатков по регистру бухгалтерии при проведении Промо

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

17.08.2015 54692 170 ekaruk 32

Расширение «Быстрая проверка кода» для конфигурации 1С:Автоматизированная проверка конфигураций

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

26.03.2019 26051 67 Bazil 34

Настройка отладки на сервере 1С

Обработка для настройки отладки на сервере, включение отладки COM-соединений и отладки Web-сервисов.

26.03.2019 37466 165 frkbvfnjh 44

Методика оптимизации программного кода 1С: проведение документов

Описание простого метода анализа производительности программного кода 1С, способов его оптимизации и оценки результатов в виде числовых показателей прироста производительности. Не требует сторонних программных продуктов, используются только типовые возможности платформ 1С. Методика проверена на линейке платформ начиная с 1С:Предприятие 8.2 (обычные формы, управляемые формы). Позволяет ускорить проведение проблемных документов в 3 и более раз, провести проверку корректности формирования проводок оптимизированным кодом и подтвердить результаты оптимизации реальными замерами производительности в режиме предприятия. К публикации приложены демонстрационные базы для режимов обычного и управляемого приложения на платформе 1С:Предприятие 8.3 (8.3.9.2033).

19.03.2019 31645 21 dmitrydemenew 85

[x1c.ru] 1CDBin: Работа с файлами *.1CD на низком уровне средствами языка 1С с возможностью чтения таблиц (поддерживается формат 8.3.8.0) Промо

Обработка позволяет просматривать файловые базы 1CD на низком уровне средствами встроенного языка. Реализована часть функциональности Tool_1CD, но на языке 1С Предприятия. Показываются таблицы, параметры таблиц, поля таблиц, записи таблиц, значения полей BLOB, есть 16-ричный просмотр страниц базы и консоль кода. Можно использовать для изучения структуры файлов 1CD, просмотра баз 1CD для выявления повреждений, создания своих обработок для выгрузки данных без открытия исследуемой базы в 1С:Предприятии.

07.10.2014 62896 392 GusevNA 78

Инструктор. Прототип инструмента создания быстрых пользовательских инструкций

Прототип дружелюбного и эффективного инструмента для написания пользовательских экспресс-инструкций. Задействована штатная утилита Windows, о существовании которой многие не знают и которая умеет делать огромную работу по логированию действий и снятию скриншотов на всех ПК с Windows (начиная с версии Win7). «Инструктор» не требует никакой установки и дополнительных библиотек! Это означает, что инструмент будет работать и на домашнем ПК и на «чужом ноутбуке» и на терминальном win-сервере у заказчика, где ваши права сильно ограничены. Вы просто подключаете легкую файловую базу 1С и получаете инструмент по снятию скриншотов с интересной функциональностью.

15.02.2019 18598 49 ROM_NN 11

Simple WMS Client – это визуальный конструктор мобильного клиента для терминала сбора данных(ТСД) или обычного телефона на Android. Приложение работает в онлайн режиме через интернет или WI-FI, постоянно общаясь с базой посредством http-запросов (вариант для 1С-клиента общается с 1С напрямую как обычный клиент). Можно создавать любые конфигурации мобильного клиента с помощью конструктора и обработчиков на языке 1С (НЕ мобильная платформа). Вся логика приложения и интеграции содержится в обработчиках на стороне 1С. Это очень простой способ создать и развернуть клиентскую часть для WMS системы или для любой другой конфигурации 1С (УТ, УПП, ERP, самописной) с минимумом программирования. Например, можно добавить в учетную систему адресное хранение, учет оборудования и любые другие задачи. Приложение умеет работать не только со штрих-кодами, но и с распознаванием голоса от Google. Это бесплатная и открытая система, не требующая обучения, с возможностью быстро получить результат.

09.01.2019 62163 269 informa1555 236

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • 1с консоль запросов нарушение прав доступа
  • 1с конвертировать управляемую форму в обычную