1с консоль системы компоновки данных управляемые формы
Внешний отчет «Консоль системы компоновки данных (управляемое приложение)» предназначен для специалистов, желающих подробнее узнать об устройстве системы компоновки данных.
Консоль позволяет выполнять отдельные шаги компоновки данных с просмотром промежуточных результатов в виде XML. Например, при помощи консоли можно анализировать запросы, генерируемые системой при выполнении компоновки с определенными настройками.
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
Подписывайтесь и получайте новые статьи и обработки на почту (не чаще 1 раза в неделю). |
Вступайте в мою группу ВКонтакте, Одноклассниках, Facebook или Google+ — самые последние обработки, исправления ошибок в 1С, всё выкладываю там в первую очередь.
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
Нажмите одну из кнопок, чтобы поделиться:
Консоль системы компоновки данных
Консоль системы компоновки данных для отладки схем компоновки данных.
Система компоновки данных (СКД) — механизм платформы 1С:Предприятие для декларативного описания способа получения данных из базы, обработки этой информации и вывода ее пользователю. Механизм прежде всего используется для создания отчетов (но не ограничивается ими).
Консоль системы компоновки данных — это внешний отчет, запускаемый в пользовательском режиме и позволяющий выполнять отдельные шаги компоновки данных с просмотром промежуточных результатов (в виде XML). Это очень мощный инструмент, предназначенный прежде всего для разработчиков. С помощью консоли СКД можно отлаживать сложные схемы компоновки данных, когда результат запроса не соответствует ожидаемому или появляется непонятная ошибка. Наиболее часто консоль СКД используется для анализа результирующего запроса к информационной базе, который формирует платформа после наложения всех настроек.
Внимание!
У пользователя для запуска консоли запросов должно быть право на интерактивное открытие внешних обработок.
Данные в консоль СКД можно:
Внимание!
Запуск конструктора схемы компоновки данных возможна только в толстом клиенте.
Для загрузки из существующего отчета необходимо:
1. Из конфигуратора сохранить существующую схему компоновки данных в файл XML.
2. Запустить консоль СКД, добавить новый отчет и нажать кнопку Загрузить схему из файла .
Отладка схем компоновки данных: анализ запросов
Система компоновки данных представляет собой декларативный механизм для описания отчета. Как правило, для того, чтобы сделать отчет при помощи системы компоновки данных, достаточно разработать схему компоновки данных и назначить ее основной схемой в отчете. Все остальное платформа сделает сама.
Однако бывают ситуации, когда для сложных схем разработчику отчета трудно сразу понять, каким образом будут получаться данные, какие запросы будут исполняться при формировании отчета.
Для отладки сложных схем компоновки данных можно использовать консоль системы компоновки данных, которая публикуется на диске ИТС.
В данной статье мы рассмотрим, как использовать консоль системы компоновки данных для того, чтобы узнать, какие запросы будут исполняться при формировании отчета.
Использование консоли системы компоновки данных
Для того, чтобы отлаживать схему в консоли компоновки данных нужно добавить схему в консоль. В консоли схемы компоновки данных располагаются в отчетах. Для создания нового отчета в консоли системы компоновки данных нужно в дереве отчетов воспользоваться командой «Добавить отчет» и ввести имя отчета.
После чего нужно воспользоваться командой «Конструктор схемы компоновки данных», которая откроет конструктор схемы, с помощью которого и создается схема компоновки данных.
Конструктор схемы компоновки данных работает только в толстом клиенте, поэтому, если нужно создавать новые или редактировать существующие схемы компоновки данных, то следует запускать толстый клиент в управляемом режиме.
Если в конфигурации уже имеется готовая схема компоновки данных, то эту схему можно перенести в консоль компоновки, сохранив ее в конфигураторе в файл и загрузив ее из файла в конструкторе схемы компоновки данных, открытого из консоли.
Для того, чтобы загрузить схему компоновки данных в консоль конструктор схемы компоновки данных не обязателен, поэтому эту операцию можно выполнять и в тонком клиенте.
После того, как схема компоновки данных готова, нужно создать настройки отчета.
В консоли схемы компоновки данных имеется возможность выполнить отчет с его настройками по умолчанию, также имеется возможность создать для каждой схемы несколько вариантов и пользовательских настроек.
Если в схеме компоновки данных уже имеются настройки, то можно их загрузить из схемы, воспользовавшись командой «Стандартные настройки» .
Когда схема компоновки и настройки готовы, можно приступать к исполнению отчета. Для того, чтобы выполнить отчет с текущими настройками нужно нажать команду «Сформировать».
Просмотр запросов
В тексте макета компоновки данных можно видеть, какие запросы с какими параметрами будут исполняться.
Создадим схему компоновки данных, в которой добавим набор данных с запросом:
Добавим вариант отчета, в настройках которого добавим детальные записи (группировку без полей группировки), в выбранные поля добавим поля Товар и СуммаОборот, в отбор добавим условие Покупатель = «Магазин «Бытовая техника»».
Сформируем. Результат отчета в виде табличного документа отображается на первой закладке консоли.
На закладке «Макет для табличного документа» можно найти текст запроса, который реально будет исполняться системой при формировании отчета.
В нашем случае это будет следующий запрос:
ПРИМЕЧАНИЕ Т.к. текст запроса отображается в XML тексте, некоторые символы, зарезервированные в XML, отображаются при помощи специальных обозначений. Так символ «&» отображается как «&», символ » » как «>». |
Как видно, система добавила условие в параметр виртуальной таблицы и в список выборки запроса поместила только поля, которые нам требовалось выводить.
Таким образом, используя консоль системы отчетности можно видеть, какие запросы будут исполняться при использовании тех или иных настроек.
Другие возможности
В консоли имеется возможность сохранить текст сгенерированного макета компоновки данных в качестве эталона (команда «Сохранить эталон») и сравнить с новым макетом, после изменения схемы компоновки данных или настроек (команда «Сравнить с эталоном»). Это дает возможность понять, что меняется в зависимости от того или иного изменения в настройках или схеме компоновки данных.
Отметим также, что при необходимости можно модифицировать сгенерированный макет компоновки данных и, воспользовавшись командой «Выполнить в табличный документ с текущим макетом», сформировать отчет на основании модифицированного макета.
Управляемая консоль отчетов – новый функциональный инструмент для работы с запросами и СКД в управляемых формах
Приветствую, коллеги, меня зовут Люлюк Евгений, работаю ведущим программистом крупной транспортной компании GLT. Мой опыт разработки на платформе 1С более 15 лет.
Расскажу про управляемую консоль отчетов – новый функциональный инструмент для работы с запросами и СКД в управляемых формах. Это, наверное, самый близкий программистам и разработчикам доклад, который есть на Infostart Event.
«Некогда пилу точить, нужно дерево пилить!»
Этой ироничной фразой подмечено, насколько важен инструмент в нашей работе. Время выполнения задачи зависит от инструмента. А время у нас стоит дорого.
Сложность конфигураций растет – для получения данных часто используются пакетные запросы, временные таблицы, в качестве параметров запроса может использоваться уникальный идентификатор, таблица значений, тип. А инструментов для удобной работы с этим в управляемых формах практически нет.
Все знают, что есть консоль отчетов, консоль запросов от 1С, но в них уже как минимум пять лет ничего не изменяется, функциональность остается на том же уровне. Уже идут годы, и 1С вряд ли изменится. Воспринимаю, как посыл фирмы «1С» о том, что улучшение этих инструментов нам нужно взять в свои руки, потому что без боли ими пользоваться становится все сложнее и сложнее. Это, так сказать, мой Inception на этой конференции, что дорабатывать и улучшать эти инструменты должны мы сами.
Что такое «Управляемая консоль отчетов»
Разберем подробнее, какие возможности разработки «Управляемая консоль отчетов» могут быть вам полезны.
Получение данных запроса из отладки
Механизм получения данных в момент выполнения запроса известен достаточно давно. Очень удобно: ставим точку останова на строке, где выполняется запрос, вызываем определенную функцию, которая прописана в инструменте, и получаем из отладки весь контекст запроса – все его данные, временные таблицы, заполненные параметры.
В чем особенность? В обычных формах можно было в момент отладки просто открыть форму консоли и сразу же работать с этим запросом. А в управляемых формах в контексте сервера открыть форму нельзя, приходится где-то сохранять данные, и потом производить с ними работу. Это можно назвать «Отложенной отладкой».
Для упрощения запуска есть инструмент «Конструктор строки отладки» – он позволит вам посмотреть, какой вызов необходимо прописать. Для СКД этот вызов будет одним, для запроса – другим. На верхнем скриншоте слайда видно, как будет выглядеть команда отладки для запроса – ставим точку останова и прописываем эту команду.
И потом в последних использованных файлах/настройках можно данные этого запроса найти, выбрать – и сразу же все появляется, можно работать.
Анализ планов запросов
Тема анализа планов запросов достаточно актуальна. Производительность нужна всем, ее постоянно не хватает. В консоль встроен механизм анализа планов запросов (основан на технологическом журнале)
Концепция анализа близка к стандартной консоли запросов от 1С, улучшено:
Улучшения консоли СКД
Аналогично консоли СКД 1С, есть просмотр схемы компоновки данных, можно добавлять варианты, пользовательские настройки.
Групповая обработка
В разработке есть очень простая и удобная групповая обработка, которая позволяет решать большинство задач простым способом. На вход этого инструмента подается таблица значений. Нам необходимо прописать код, который будет выполняться для каждой строки.
Есть подробная индикация с возможностью прерывания.
После выполнения, нужен какой-то журнал, протокол этих выполненных действий. Не все может всегда завершаться успешно, по некоторым элементам могут возникнуть проблемы. Поэтому инструмент поддерживает:
Еще важно, что когда мы пишем запрос, необходимо его построить таким образом, чтобы при повторном выполнении он нам не давал в результате те объекты, которые уже были обработаны. Допустим, я запускаю обработку, а там 10 тысяч объектов – 5 тысяч из них обработано, потом у меня программа вылетела (администратор выкинул). Чтобы она в следующий раз уже не пыталась обрабатывать обрабатываемые объекты. Это зачастую легко делается. Допустим, если мы хотим заполнить незаполненное поле, мы прописываем в запрос «Выбрать все объекты, где это поле пустое», он нам получает, заполняем его. И, соответственно, повторное выполнение запроса уже не даст те строки, в которых это поле заполнено.
Поддержка пакетных запросов и временных таблиц
Бывают такие запросы, в которых есть только временные таблицы, и бессмысленно выводить результат без временных таблиц – он просто будет пустой. Поэтому когда инструмент видит, что в запросе используются только временные таблицы, он их выводит автоматически.
Обратите внимание, мы на экране видим, что сначала идет запрос №3, потом – запрос №2, а потом – запрос №1. Пакеты запросов так устроены, что обычно идут вначале временные таблицы, а результат где-то в конце. И я счел нужным записать это в обратную сторону. Но если для кого-то это непривычно, есть настройка, чтобы записать результат в прямом порядке.
Работа с параметрами запроса
В разработке реализовано автоматическое получение параметров. При изменении текста запроса вручную или конструктором новые параметры считываются автоматически, все определяется без дополнительных действий со стороны пользователя.
Редактирование текста запроса вручную
Для тех, кто редактирует текст запроса вручную, есть несколько помощников:
Разбор запроса на составляющие
Есть возможность разобрать запрос на маленькие кусочки, преобразовать его в дерево, чтобы он стал более понятен.
Поддержка английского языка разработки
Про поддержку английского языка разработки – имеется в виду не только англоязычный интерфейс инструмента (синонимы, которые есть у кнопок и т.д.), но и то, что разработка поддерживает генерацию кода в на английском языке.
Подход к разработке
Проект доступен как расширение или как внешняя обработка.
Все привыкли, что консоль запросов – это внешняя обработка. Но расширение, разрабатывать намного удобнее – можно структурировать: создавать модули, картинки, общие макеты и т.д. Поэтому разработка ведется именно в расширении, а внешняя обработка получается путем автоматической генерации.
«Не думай о секундах свысока»
Дальше я немного расскажу про простые улучшения, повышающие удобство работы
Ограничение количества выводимых строк
Часто бывает, что мы выполняем пакет запросов, в нем может быть 40 таблиц с большим количеством строк. Такой результат никогда нормально не выведется, придется ждать очень долго. Сделано ограничение строк – больше 3000 строк по умолчанию он не выводит. Пишет, что выведено 3000 из 3125. И дальнейший результат не выводится, пишет «не все выведены». При желании можно нажать «Вывести все», и выведутся все строки.
Этот механизм позволяет работать с большими данными, где у вас обычная консоль или какие-то другие аналогичные инструменты просто зависнут.
Выделение особых значений – NULL и др.
Выделение особых значений – тоже достаточно важная функция. Выделяются значения: «NULL», «Пустая строка», «Пустая дата», «Пустая ссылка», «Неопределено».
Достаточно тяжелая функция, потому что это реализуется пост-обработкой после вывода результата. Соответственно, нагрузка большая. Если у нас имеется 10 тысяч строк и 5 колонок, это получается уже цикл в 50 тысяч итераций. При необходимости эту функцию можно отключить, и все будет выводиться еще быстрее.
Сравнение данных
Когда это использовать? Например, когда нам необходимо изменить запрос или оптимизировать запрос. Тогда мы в дереве консоли создаем первый запрос – это у нас эталон. А второй – это у нас разрабатываемый запрос. И, допустим, если нам необходимо, чтобы колонка «Выручка» считалась по-другому, мы реализуем этот механизм, а потом впоследствии наглядно сравниваем результаты и видим, соответствуют они нашим ожиданиям или нет.
Другой пример, если мы оптимизируем какой-то запрос – слева у нас эталон, а справа – оптимизируемый запрос. Мы его оптимизировали, закончили, можем наглядно сравнить тексты запроса. Бывает такое, что в конструкторе запроса, почему-то удалилось какое-то поле, и текст уже изменился, а это было сразу непонятно.
И другой пример – если получается, что при оптимизации эталонный запрос выдает другие данные, нежели наш, это значит, что-то не так – мы что-то слишком перемудрили с оптимизацией.
Расшифровка таблиц значений
Наверняка вы сталкивались с тем, что строки результата запроса иногда могут содержать таблицу значений. По умолчанию ее посмотреть невозможно, но в стандартной консоли ИТС есть подобный механизм – можно посмотреть, какая таблица значений в какой конкретной строке лежит.
Тяжелый механизм, который создает временные хранилища, туда таблицы закладывает. Иногда его лучше отключить.
Форма выбора типа
В разработке сделана своя форма выбора типа.
Форма выбора типа у 1С, мне кажется, не менялась с версии 8.0 – она просто вываливает список значений со всеми доступными типами, очень ненаглядно. Единственный помощник в стандартной форме выбора типа – это Ctrl+F.
Наша форма выбора типа:
Вставка значений ссылки по UID и по представлению битой ссылки
Я уже упоминал об этой функциональности, но важно, что сейчас на картинках наглядно видно, как происходит эта вставка. И этот механизм работает везде, где у нас используется ссылка – при вставке ссылки на объект и т.д.
Генерация кода на встроенном языке
Позволяет «обернуть» запрос, чтобы перенести код на встроенном языке в конфигуратор. Как мы видим, внизу можно переключить язык, если кому-то необходимо, чтобы код генерировался на английском.
Примечание к типу поля
Вы уже заметили, что у каждой колонки в заголовке таблицы есть картинка. Это – для отображения ее типа. Очень удобно видеть, какого типа колонка – дата или составной тип, как приведено на примере.
В дополнение к этому, если колонка содержит составной тип, то в примечании к ячейке табличного документа отображаются все типы, которые она содержит. И видно на скриншоте, что больше 10 он не старается отобразить, не нагружает систему этим примечанием.
Экспорт результата
Думаю, понятно – если необходимо выполнить экспорт результата в Excel, MXL, PDF, то нужно воспользоваться этой функцией.
Здесь важная особенность – он делает внутри какие-то мелкие полезности. Допустим, для MXL он устанавливает защиту ячеек, чтобы при открытии MXL в 1С можно было работать с расшифровками. Такие вещи, которые вы можете даже не заметить.
Замер времени выполнения
Думаю, что замер времени это стандартная функция, которая есть во многих консолях запросов. При запуске запроса на выполнение открывается новый отсчет, замер производится в миллисекундах.
Но в чем здесь особенность? Здесь особенность, что по кнопке «Обновить замер времени выполнения» мы можем видеть не время вывода результата, а только время выполнения запроса. Потому что так бывает, что запрос выполняется три миллисекунды, а вывод данных занимает одну минуту. Эта кнопка производит замер только времени выполнения, замер времени вывода результата она не производит.
Выделение активированной строки
Вот это – тоже простая функция. Тоже «стильно, модно, молодежно». Активированная строка выделяется нашим самым любимым цветом – желтым.
Информирование об обновлении
Есть функциональность информирования об обновлении.
Немного об оптимизации
Обновление и поддержка
Проект развивается. Внимательно отношусь к пожеланиям пользователей, стараюсь реализовывать все пожелания, которые есть. Почти все планы на 2019 год, которые у меня были до этого, сделаны, хотя, казалось, это нереально.
Данная статья написана по итогам доклада (видео), прочитанного на конференции INFOSTART EVENT 2019. Больше статей можно прочитать здесь.
В 2020 году приглашаем всех принять участие в 7 региональных митапах, а также юбилейной INFOSTART EVENT 2020 в Москве.
Универсальный конструктор отчетов СКД (Управляемые формы, тонкий клиент)
Коллеги, представляю вашему вниманию, свою очередную наработку.
Как всегда, в качестве мотиватора выступила бухгалтерия на моей новой работе. Напиши им такой отчет, напиши им этакий отчет, а можно ли сделать чтобы выгруженные документы как-то сравнивать с управленческой базой, вдруг там что-то изменили, или неправильно выгрузилось, или отчетик который вытащит им какие то кривые документы, по определенным критериям.
В общем, ничего особенного, обычная работа. Для обычных форм существовал подобный отчет.
А вот для управляемых форм, все оказалось несколько сложнее. И так-как мне не удалось найти ничего готового подходящего, то пришлось все делать самому и так, как мне хочется, с учетом накопившихся потребностей и новых идей.
Внешне она выглядит как обычная консоль запросов, с деревом отчетов. Хранятся все отчеты в едином файлике.
Подключаем к конфигурации, как обычный внешний отчет. ну или просто открываем из файла.
В дерево добавляем нужный отчет, задаем имя. По правой кнопке мыши, в контекстном меню, есть пункты «Описание» и «Изменить».
Выбрав описание, открывается фрейм, где мы видим описание, а в нем по правой кнопке мыши попадаем в редактор. Редактор описаний я делал давно, используя HTML-поле. Можно вставлять картинки, гиперссылки, раскрашивать и т.п. Сейчас,я бы сделал используя форматированный документ, но пока времени переделывать, то, что оттестировано и давно работает, нет, да и форматированный документ, это такой же HTML. В принципе там особо описывать нечего, все должно быть интуитивно понятно.
Тут рассмотрим все по порядку.
В левой колонке, список наших источников данных, по которым будем строится наш отчет.
Также в окне мы видим несколько кнопок, которыми будем настраивать наш источник.
Итак, подготовим запросик
и зададим его параметры
нажав кнопку ок, вернемся в окно редактирования.
Теперь мы можем уже тестово вывести запрос, посмотреть что он там нам выводит.
Следующим шагом, нам необходимо заполнить поля источника, нажав соответствующую кнопку.
Если все сделано верно и корректно, то увидим названия полей, и тип полей. Это будут ключевые поля, для работы и с временными таблицами, и в самой схеме СКД,
если поля не заполнились, то ищем ошибки в запросе, или в обработчиках, без автоматом заполненных полей ничего работать не будет.
Ну и для примера заполним обработчик произвольного алгоритма.
следует помнить, что обработчик вызывается после выполнения основного запроса. Результат запроса выгружен в переменную «таблица», с которой мы и оперируем.
если это таблица удаленной базы, то в переменной ВнешнийИсточник находится наш ком соединитель. Чтобы не забыть, кликнув на поле правой кнопкой мыши, можно посмотреть пример.
Итак, после заполнения обработчиков, нажмем еще раз «Заполнить поля источника», чтобы там появилось программно добавленная нами колонка, и переходим к следующему шагу.
Закладка параметры, нужна для задания связок и визуализации параметров непосредственно у пользователя, с параметрами запросов наших источников.
Для начала нажмем кнопку «Обновить структуру».
И введем названия параметров, как их будет видеть пользователь, а в колонке с именем источника, выберем параметр из запроса, которому он будет соответствовать.
Параметры необязательно задавать все, какие есть в запросе. Мы можем задать, только Дату начала и дату конца, а организацию и контрагента, вообще не задавать,
тогда его значение по умолчанию, будет тем, каким мы его задали в консоли запроса.
Ну и после задания связок параметров, создадим схему СКД.
К слову сказать, конструктор схемы СКД, в тонком клиенте не работает, поэтому, чтобы его задать, нам придется запустить все приложение в режиме Толстого клиента, управляемого приложения. Других серьезных платформенных ограничений нет. Но пользоваться готовыми отчетами, вполне можно и в режиме тонкого клиента.
Итак, нажав, «ОК», перейдя в начальную форму отчета, нам нужно только у заполненного списка параметров, выбрать тип, задать какие-то значения, которые наиболее часто будут использоваться. Ну и можно его уже вывести и пользоваться.
Несколько слов о внешних базах.
Работа с КОМ-объектами, требует, некоторого опыта при работе. Поэтому, не нужно расстраиваться что, не работает то или другое. Курите, изучайте мат часть. В принципе, консоль это инструмент разработчика, а не обычного пользователя.
у редактора есть форма транспорт. Когда мы подготовим текст запроса, и зададим параметры, то перейдя на эту закладку видим абрукадабру.
это ни что иное, как сериализованный в строку, весь наш запрос, вместе с параметрами, функцией ЗначениеВСтрокуВнутр.
Сразу отвечу на вопрос, почему не сериализатор. Да потому, что опытным путем, выяснилось, что не со всеми базами это прокатывает, при десеарилизации в другой базе. Может быть из за разных режимов совместимости заданных у конфигураций, может еще из за чего-то. А данная функция, работает железобетонно. Поэтому оставил ее.
Эту абракадабру копипастим,
а в той базе, где строим отчет, при нажатии ОткрытьКонсоль, у нас откроется форма ввода транспортной строки.
При задании параметров, для внешней базы, требуется задать код связки. Это там же, на вкладке параметров.
Например, имеет стандартный отчет, по сверке поступлений. Там 2 источника данных, один реестр «Поступлений товаров услуг» в бухгалтерской базе,
другой берет документы «Приходная накладная» во внешней базе УНФ.
Ключевыми параметрами для обоих запросов, у нас является Дата начала, дата окончания, и Организация.
Выбирать организацию мы будем в локальной базе, там это будет элемент справочника «Организации», а в удаленной базе будем искать выбранную организацию по «ИНН» (предположим, что наименования, и коды справочников у нас различаются).
На закладке параметры, после обновления структуры, мы видим поле «Преобразование», именно туда нам и необходимо вписать нужный код преобразования.
Если код не указать, то она просто попытается в лоб воткнуть значение параметра, что у нее конечно же не получится. А вот примитивные типы, без всякого преобразования указываем.
В контекстном меню, оставил памятку, по примеру преобразований (а то и сам, забываю).
На этом, пожалуй закончу данное повествование.
Пожелания, и баги приветствуются, претензии не принимаются (кому что не нравится, делайте свои поделки).
Всевозможные способы и вариации работы, тестировать нет ни потребности ни возможности. Но если что, по возможности буду дорабатывать. В принципе, итак перерабатывал его уже несчетное количество раз, идеи развития есть. поэтому буду тут и выкладывать обновления.
На авторство самой идеи не претендую, подобные работы давно делались. При кодировании, также не все из головы брал, использовал и куски чужих разработок (точно помню где-то подсмотрел раскраску текста), только источников этих сейчас уже и не смогу найти.
В общем всем удачи, и плодотворной работы.
UPD. 27.11.2017 v.2.0.0.1 исправлено некоторое количество багов.
UPD. 29.11.2017 v.2.0.1.0 выявлен и исправлен баг с расшифровкой (работал только в толстом клиенте), добавлена проверка корректности задания имени источника. Добавлена возможность тестового подключения к внешнему источнику. Добавлена возможность установить пароль на весь файл отчетов, для того чтобы обычный пользователь не мог случайно испортить и после этого сохранить отчеты.
UPD. 30.11.2017 v.2.0.1.1 Теперь настройки отчетов (отборы, сортировки) пользователем сохраняются и восстанавливаются через хранилище общих настроек, сам файл отчетов перезаписывать при этом не нужно.
UPD. 08.12.2017 v.2.0.1.2 Исправлена следующая ошибка. «Если пользователь ошибочно указывал файл, каталог, или неподходящий по структуре, путь запоминался и при открытии отчет выдавал ошибку и не открывался. » Завернул чтение и запись файла в попытку.
UPD. 14.12.2017 v.2.0.1.3 В целях удобства, по кнопке восстановить настройки, сделана инициализация настроек компоновщика по умолчанию. При многократном изменении схемы, настройки от предыдущих вариантов сильно мешали. Также немного почистил интерфейс, на кнопки с надписями сделал картинки, и информационные надписи сделал более лаконичными.
UPD. 15.12.2017 v.2.0.2.1 Добавлена автосумма выделенных ячеек, что-то наподобие ОСВ в БУХ.
UPD. 22.12.2017 v.2.1.0.1 Расширен функционал отчета. Появилась возможность расширенного редактирования настроек отчета, включая оформление, поля, структуру, и при необходимости экспертное редактирование всех параметров отчета.
после этого появляются дополнительные вкладки в параметрах, и несколько дополнительных кнопок в вариантах отчета.
Также появилась возможность работы с вариантами настроек.
По умолчанию варианты, подтягиваются из самой схемы СКД, и по желанию пользователя, меняются, либо добавляются собственные.
В отчете также, разграничились функции по управлению настройками, надеюсь стало более интуитивно понятно, как все работает. Отдельные кнопки сохранение восстановление и очистка хранилища пользователя, и отдельные кнопки помещения отрегулированных настроек в саму структуру отчета, а также возможность их инициализации.
И сделал вопрос, при попытке закрытия консоли, подтверждение о закрытии (дабы пользователь случайно esc не нажал и все свои настройки закрыл).
UPD. 01.08.2018 v.2.1.0.3. Столкнулся со старенькой УТ-шкой 11.0 с древним режимом совместимости. Как и написали в отзывах, не взлетело. Пришлось подшаманить, и заменить новые функции, на старые, и один вызов функции из БСП перенести. Предыдущую версию удалять не буду, т.к. она уже проверена а эту еще тестить нужно в различных вариантах.
UPD. 16.11.2018 v2.2.1.3. Расширен функционал. Сделана возможность хранения созданных отчетов внутри базы данных.
для этого в настройках необходимо установить галочку
При этом поле с выбором файла станет недоступным, а все созданные отчеты будут сохранятся внутри базы данных.
Для того чтобы удалить из базы сохраненные отчеты, сделал кнопку удаления.
Также перенес внутрь отчета, процедуру из БСП, для того чтобы максимально отвязать, и использовать отчет там где этой процедуры нет.
UPD. 16.11.2018 v2.2.1.4. Заметил и исправил ошибочку, возникшую после переноса общего модуля. Не считалась сумма выделенных ячеек.
UPD. 10.01.2020 v2.3.3.2. Устранен ряд ошибок. При передаче параметра (булево) при работе с источником данных через ком, требовалось преобразование, хоть это и примитивный тип. Также затирался произвольный алгоритм, в случае обновления структуры внешнего источника данных, что доставляло неудобство, требовалось копипастить код и заново вставлять. Также исправлена ошибка, нельзя было выбрать перечисления в параметрах запроса с типом список значений. Также переделал добавление источников, кнопками, вместо добавления из контекстного меню по правой кнопке мыши, для исключения случайных ошибок.
Также расширен функционал. Теперь можно в качестве отдельного источника данных использовать файл эксель и компоновать эти данные как угодно в своих отчетах.
Для этого, при добавлении нового источника данных выбираем тип «эксель».
далее, нажимая кнопку «открыть консоль», попадем в форму настроек источника данных.
далее, можно попробовать прочитать выбранный файл, который подтянется в первую вкладку, и можно предварительно увидеть
с чем имеем дело. И нам нужно добавить номера колонок, которые нам нужны.
Для упрощения ввода, можно нажать автоопределение колонок, тогда заполнятся все колонки файла, со стандартным именем, и типом колонки «строка». Имена можно задать свои, но с учетом, что фактически это будут колонки таблицы значений, а значит имена надо давать соответствующие. Также можно выбрать сразу тип. Тип может быть строка, дата и число. Которые сразу будут преобразованы при чтении в нужный тип.
После того как все настроили, нажимаем «ок».
Без проблем можно дополнительно обработать нашу получившуюся таблицу, собственными алгоритмами, добавить колонки, преобразовать или вычислить. Это все делается в обычном порядке, как и для других видов источников данных.
если мы хотим дать возможность пользователю менять наши параметры, номера строк чтения, или самому выбирать файл, то задаем параметры для пользователя и связываем из с требуемыми параметрами источника, по тому же принципу что и обычными источниками. На закладке «параметры».
далее, делаем нашу схему, компонуем данные как нужно.
Переданные параметры появятся на главной странице у пользователя, и он сможет их сам крутить.
Скачать файлы
Специальные предложения
как бы, не совсем понимаю, что еще добавить в описание.
Добрый день!
Для обычных форм есть замечательный набор инструментов «Инструменты разработчика 1С», но его невозможно использовать в линуксе и в тонком и веб клиенте.
Поэтому мы решили собрать подобный пакет, но который будет работать только на платформенных механизмах или с использованием кроссплатформенных компонент.
Использование этого пакета инструментов хотим сделать общедоступным(OpenSource), разработку вести через гитхаб с использованием EDT.
Можем ли мы включить в этот набор обработки(или часть идей и функционала) из этой публикации?
На текущий момент нашли основные инструменты (консоль запросов, консоль кода, редактор реквизитов, консоль компоновки и др.) для включения в инструментарий. Сейчас занимаемся получением одобрения авторов. Часть включаем свои- редактор предопределенных, редактор констант, Групповая обработка