ВНИМАНИЕ!!!
Актуальная информация и файлы по проекту находятся в репозитории на github https://github.com/cpr1c/tools_ui_1c
Тут информация больше не актуализируется
Поддерживаемые операционные системы
- Windows x86
- Windows x64
- Linux x64
- Linux x86
В MacOS должно работать, но не тестировалось
Поддерживаемые клиентские приложения
- Толстый клиент управляемое приложение
- Тонкий клиент
- Web клиент
Поддерживаемые режимы конфигурации
Модуль разрабатывается, исходя из отключенной поддержки модальности и синхронных вызовов. Должно работать во всех современных и не очень конфигурациях
Поддерживаемые платформы
8.3.12 и выше
Состав
Групповая обработка справочников и документов
Сделана на основе "Универсального подбора и обработки" с диска ИТС
Обработка "Групповая обработка справочников и документов" предназначена для поиска объектов в справочниках и документах по произвольному условию и дальнейшей обработки найденных объектов.
Результат поиска выводится в табличное поле, расположенное на закладке "Найденные объекты". Для включения объекта в обработку необходимо включить флажок в соответствующей строке.
Для обработки объектов необходимо перейти на закладку "Обработки".
Доступные обработки:
- Произвольный алгоритм
- Установка реквизитов
- Перенумерация объектов
- Пометить на удаление
- Провести документы
- Отменить проведение документов
- Снять пометку удаления
- Изменить время документов
- Удалить
- Изменить сумму операции
Редактор констант
Форма, в которой выводятся все константы в базе, которые можно отредактировать как обычное поле.
Структура хранения базы данных
За основу взята обработка https://github.com/alexkmbk/1CDBStorageStructureInfo, лицензия свободная.
Позволяет увидеть названия таблиц и полей в том виде, в котором с ними работает СУБД. Также есть поиск по объектам метаданных и их полям
Удаление помеченных объектов
Копия стандартной обработки из БСП, адаптированной для жизни вне БСП
Консоль запросов
За основу взята обработка //infostart.ru/public/938606/ Разрешение автора
Обработка предназначена для создания, редактирования и отладки запросов, с возможностью обработки таблицы результатов произвольными алгоритмами на языке 1С. Выгрузка результатов запроса в таблицу или дерево значений, включая временные таблицы и запросы пакета. Формирование запроса для консоли в отладчике, включая временные таблицы и параметры
Консоль заданий
За основу взята обработка из репозитория https://github.com/kuzyara/JobsConsole2019.epf. Разрешение автора
- с редактированием параметров
- не зависает при открытии
- режим совместимости 8.2
- не требует БСП
Регистрация изменений для обмена
Стандартная обработка из БСП с адаптацией для жизни без БСП
Поиск и удаление дублей
За основу взята обработка из БСП.
Предназначена для поиска и устранения дублирования элементов во всех списках программы (для администраторов программы).
Программа позволяет найти вхождения всех дублирующихся элементов и производит в документах замену всех ссылок на дубли ссылками на выбранный "правильный" элемент, затем помечает на удаление дублирующиеся элементы в списке.
Позволяет выполнять замену дублей под полными правами, а также без проверок записи объектов.
Консоль кода
Форма для выполнения программного кода без написания дополнительных обработок.
Поддерживает выполнение как на клиенте, так и на сервере со своим набором переменных.
Также позволяет из клиентского кода передать значения в серверный код. Для этого есть общая переменная "Структура передачи"
Поиск ссылок на объект
Аналог стандартной обработки поиска ссылок на объект из состава платформы. Дополнительно выводит уникальные идентификаторы ссылочных объектов, а также позволяет выполнять поиск ссылок для выбранного в строке объекта
Редактор реквизитов объекта
Обработка редактирования реквизитов ссылочных объектов базы данных.
Нужна для того, чтобы отредактировать реквизиты, не выведенные на форму объекта, или обойти программные ограничения в форме объекта.
Для документов есть возможность редактирования движений.
Запись можно осуществлять с отключением проверок. Для этого режима есть соответствующая галочка
Форк обработки //infostart.ru/public/983887/. Вырезана из //infostart.ru/public/938606/. Разрешение автора
Динамический список
В одной форме позволяет просматривать списки всех объектов метаданных. Для этого просто в форме нужно выбрать какой объект будем просматривать и справа будет показан список выбранного объекта метаданных
Форму, помимо просмотра списков, можно использовать для выбора объектов ссылочного типа.
Консоль отчетов
За основу взята обработка "Консоль системы компоновки данных" с диска ИТС с доработками для удобного использования.
Нужна для создания, отладки и формирования отчетов на базе схемы компоновки данных.
- Возможность сохранить/загрузить СКД из файла XML
- Непосредственное редактирование настроек формирования отчета
- Вывод в коллекцию результата
Редактор СКД доступен только в Толстом клиенте.
Консоль HTTP запросов
Позволяет выполнять HTTP запросы без написания кода. Хранит историю выполнения запросов. Источником вдохновения послужила известная утилита Fiddler
Заголовки запроса можно задавать как таблицей, так и в строковом поле.
URL запроса задается просто одной строкой.
Слева таблица с историей выполнения запросов. При активизации строки этого поля, на закладке "Анализ запроса" можно просмотреть запрос и результат запроса в разных форматах, в том числе сохранить файл из двоичных данных запроса или ответа
Историю запросов можно сохранить в файл и потом при необходимости открыть.
Выгрузка и загрузка XML с фильтрами
Перенос информации между однородными базами данных. Форк обработки //infostart.ru/public/1149722/ Разрешение автора
Навигатор по конфигурации (Все фукнции)
Обработка для просмотра метаданных конфигураций баз. Отображает свойства и реквизиты объектов конфигурации, их количество, основные права доступа и т.д. Содержит некоторые административные функции. Форк обработки //infostart.ru/public/931586/. Разрешение автора
Файловый менеджер
Обработка для удобной работы с файлами между клиентом и сервером. Передача, просмотр, удаление. На текущий момент содержит синхронные вызовы. Форк //infostart.ru/public/1027326/. Разрешение автора
Внешняя обработка организована по принципу Total Commander.
Слева - файловая система клиента, справа - сервера.
Конструктор регулярный выражений
позволяет строить сложно-структурированные выражения на основе параметрического описания, тестировать их, и в результате получить программный код 1С. На текущий момент работает только в Windows. Форк //infostart.ru/public/592108/. Разрешение автора
Консоль вебсервисов
Обработка WSReader 2.0 представляет собой клиент веб-сервисов под платформу 1С: Предприятие 8.3. Данная обработка доступна скачивания на сайте infostart.ru либо по ссылке WSReader2.0.2.2. Лицензия GPL3
Консоль сравнения данных
предназначена для сравнения данных, полученных из разных источников данных: информационных баз 1С 8, 1С 7.7, баз данных SQL, файлов формата CSV/TXT/DBF/XLS/DOC/XML, строки JSON, вручную заполненного табличного документа. Форк //infostart.ru/public/581794. Разрешение автора
Информация о лицензиях 1С
представляющая из себя обертку функций Утилиты лицензирования 1С (ring) в понятном для обычного человека виде. По сути, это GUI утилиты RING. Форк //infostart.ru/public/1124442/. Разрешение автора. Для работы должна быть установлена утилита ring и ее модули license
Загрузка данных из табличного документа
Обработка предназначена для загрузки данных в справочники и табличные части различных объектов из табличного документа. Форк обработки //infostart.ru/public/269425/. Разрешение автора
Редактор JSON
Позволяет в удобной форме редактировать строки JSON. Содержит подсветку синтаксиса JSON, редактирование в виде дерева, некоторые автоподстановки. Редактор реализован на основании библиотеки https://github.com/josdejong/jsoneditor. В Windows работает, начиная с версии платформы 8.3.14
Редактор HTML
Быстрая отладка отображения HTML страниц в 1С. Представляет собой экран разбитый на 4 части, в левой части три редактора-тела HTML, CSS и JavaScript, а право - поле результата. Есть контекстная подсказка и автодополнение кода. Для редакторов кода используется библиотека https://ace.c9.io/. Незаменим, при тестировании вывода HTML в 1С, т.к. даже с платформы 8.3.14 отображение в браузере и 1С, а также в разных операционных системах может сильно отличаться.
В Windows работает, начиная с версии платформы 8.3.14. //infostart.ru/public/1273525/
Сравнение объектов
Сравнение по-реквизитно ссылочных объектов с выводом в табличный документ.
Форк обработки //infostart.ru/public/1240803/. Разрешение
Универсальный обмен данными в формате XML (с фильтрами и прямой загрузкой через HTTP сервис)
Выгрузка и загрузка по правилам обмена. Форк стандартной обработки от 1С и //infostart.ru/public/1176839/. Разрешение. Добавлена возможность накладывать фильтры на выгружаемые объекты, и прямая выгрузка в базу через http сервис универсальных инструментов.
Интеграция с библиотекой стандартных подсистем (БСП)
- Есть возможность удобной отладки дополнительных отчетов и обработок. Подробнее в wiki
- В списки и формы объектов добавляется подменю "Инструменты", которое содержит пункты(Формы должны быть подключены к подсистеме "Подключаемые команды"):
- Добавить к сравнению - добавляет выделенные объекты к сравнению для дальнейшего использования в инструменте "Сравнение объектов"
- Редактировать объект - Позволяет текущий объект открыть в редакторе реквизитов
- Сравнить объекты - Открывает инструмент "Сравнение объектов" с выделенными ссылками в качестве объектов сравнения. Доступно только для списков
- Найти ссылки на объект - Открывает инструмент "Поиск ссылок на объект" для текущего объекта
- Выгрузить объекты в XML - Выполняет выгрузку выбранных объектов с подчиненными ссылками с использованием инструмента "Выгрузка загрузка XML"
Программный интерфейс
Библиотека Коннектор: удобный HTTP-клиент для 1С:Предприятие 8
Доступна программно через общий модуль УИ_КоннекторHTTP. Подробное описание смотрите на странице библиотеки https://github.com/vbondarevsky/Connector
Пример использования:
Результат = КоннекторHTTP.GetJson("https://api.github.com/events");
Библиотека сериализации 1С
Доступна программно через обработку УИ_ПреобразованиеДанныхJSON. Подробное описание методов смотрите на странице библиотеки https://github.com/arkuznetsov/SerLib1C
Инициализация:
Сериализатор1С = Обработки.УИ_ПреобразованиеДанныхJSON.Создать();
Пример использования:
СериализаторJSON=Обработки.УИ_ПреобразованиеДанныхJSON.Создать();
СтруктураИстории=СериализаторJSON.ЗначениеВСтруктуру(ДанныеСохранения);
СериализуемаяСтрокаJSON=СериализаторJSON.ЗаписатьОписаниеОбъектаВJSON(СтруктураИстории);
Работа с буфером обмена ОС
Доступна программно через модуль УИ_БуферОбменаКлиент. Описание методов в коде. Поддерживается синхронный и асинхронный режим работы. https://github.com/cpr1c/clipboard_1c
Пример использования:
УИ_БуферОбменаКлиент.КопироватьСтрокуВБуфер("Моя строка для копирования в буфер обмена");
Работа с регулярными выражениями
Доступна программно через модуль УИ_РегулярныеВыраженияКлиентСервер. Описание методов в коде. Поддерживается синхронный и асинхронный режим работы. https://github.com/cpr1c/RegEx1C_cfe
Пример использования:
УИ_РегулярныеВыраженияКлиентСервер.Совпадает("Hello world", "([A-Za-z]+)\s+([a-z]+)"); //Истина
Получение структуры виртуальных таблиц запроса или менеджера временных таблиц
Необходимо в форме вычисления выражения вызвать функцию УИ_._ВТ(ЗапросИЛИМенеджерВременныхТаблиц).
Примеры использования:
УИ_._ВТ(Запрос)
УИ_._ВТ(Запрос.МенеджерВременныхТаблиц)
Сравнение двух таблиц значений
Необходимо в форме вычисления выражения вызвать функцию _ТЗСр(ТаблицаБазовая, ТаблицаСравнения, СписокКолонок).
Примеры использования:
УИ_._ТЗСр(ТаблицаБазовая, ТаблицаСравнения)
- выполнит сравнение по всем колонкам параметра ТаблицаБазовая
УИ_._ТЗСр(ТаблицаБазовая, ТаблицаСравнения, "Номенклатура,Количество")
Сериализация XML в простые структуры данных(массив, структура, соответствие)
Необходимо в форме вычисления выражения вызвать функцию _XMLОбъект(ПутьЧтения, УпроститьЭлементы).
Примеры использования:
УИ_._XMLОбъект(ЧтениеXML)
- выполнит обход существующего объекта ЧтениеXML
УИ_._XMLОбъект("C:\1.xml")
- выполнит чтение в структуры файла
УИ_._XMLОбъект(Поток)
- выполнит чтение в структуры потока
УИ_._XMLОбъект("C:\1.xml", Ложь)
- выполнит чтение в структуры файла без упрощения полученных структур
Возможность отладки объектов конфигурации
Под отладкой подразумевается возможность открывать консоли с данными, доступными в процессе отладки в конфигураторе
Вызов
Необходимо в форме вычисления выражения вызвать функцию УИ_._От(ВашаПеременнаяОбъектаОтладки,НастройкиСКД). Где вместо ВашаПеременнаяОбъектаОтладки нужно передать переменную, содержащую один из доступных для отладки объектов
Логика работы
Если контекст запуска отладки является толстым клиентом, открытие формы консоли происходит сразу по окончании выполнения вызова кода.
Если отладка вызывается в контексте сервера, тонкого или веб клиента, необходимая информация сохраняется в справочник Данные для отладки. В таком случае вызов отладки просиходит потом из списка справочника "Данные для отладки".
Поддерживается отладка объектов:
- Запрос- на текущий момент отлаживаются запросы без менеджеров временных таблиц. Вызов отладки
УИ_._От(Запрос)
- Схема компоновки данных- поддерживается отладка без внешних источников данных.
Вызов отладки
УИ_._От(СхемаКомпоновкиДанных,НастройкиСКД)
- будет вызвана отладка с переданными настройками
Или
УИ_._От(СхемаКомпоновкиДанных)
- будет вызвана отладка с настройками по умолчанию для СКД
- Ссылочный объект базы- просмотр и редактирование ссылки БД
Вызов отладки
УИ_._От(СсылкаНаОбъектБД)
- HTTP Запрос- поддерживается отладка строкового и файлового содержимого запросов, а также прокси
Вызов отладки
УИ_._От(HTTPЗапрос,СоединениеHTTP)
Варианты поставки
- Расширение- устанавливается как расширение в базу.
- Конфигурация- Встраивается непосредственно в основную конфигурацию базы
- Портативные - поставляется в виде архива директории, в которой находятся все инструменты. Не требует отдельной установки для использования. Может частично работать на базах с режимом совместимости менее 8.3.10
Для расширения и конфигурации есть сборки с поддержкой БСП и без, с дополнительными таблицами(режим совместимости 8.3.12) и содержащие только инструменты(режим совместимости 8.3.10).
Можно выбрать подходящий вам
Скачать их можно на странице релизов репозитория.
Установка
Установка выполняется как установка любого другого расширения. При установке расширения рекомендуется снять галки "Безопасный режим" и "Защита от опасных действий". С ними часть функционала будет недоступна
Обновление на новый релиз
Начиная с версии 1.4.0 доступно обновление по кнопке из 1С. Для этого сделана кнопка в подсистеме "Проверить необходимость обновления".
При нажатии на нее открывается специальная форма, которая проверяет наличие новых релизов, показывает описание изменений и по нажатию кнопки "Обновить" выполняет скачивание и установку новой версии с гитхаба
Планы развития
Расширить набор инструментов:
- Редактор хранилищ настроек
- Редактор параметров сеанса
- Редактор предопределенных элементов
- Административные функции - аналог стандартной команды "Все функции" с добавлением функций по администрированию
- Завершение работы пользователей
- Анализ и настройка техножурнала
Развитие механизмов отладки:
- Расширение отлаживаемых типов. Если есть идеи- поделитесь.
Развитие существующих инструментов
- Единообразный механизм сохранения и открытия файлов настроек для каждого инструмента
- Более тесная увязка между собой различных инструментов
- Возможность удаленного вызова алгоритмов посредством HTTP сервисов
- Формирование кода для конфигуратора, где это возможно
Также есть желание сделать описание для каждого инструмента в wiki.
Это из того что видно сейчас. Рассчитываем на идеи от сообщества.
Почему вообще решили сделать что-то подобное, когда есть замечательные инструменты разработчика от Сергея Старых(tormozit)
Инструменты разработчика http://devtool1c.ucoz.ru/ -замечательный инструмент, но имеющий ряд недостатков, оказавшихся для нас критичными:
- Работает только в Windows. Притом что linux сейчас ничем не уступает Windows как для установки сервера 1С, как для машин клиентов, так и для машин разработчиков. У нас многие пересели полноценно на использование linux как повседневной системы. Как следствие нужен был какой-то инструмент для работы.
- В ряде современных конфигураций на БСП часть инструментов выдает ошибки про недоступность подписок или невозможности что-нибудь скомпилировать. Ошибки связаны с недоступностью контекста в толстом клиенте обычном приложении
- Для полноценной работы со всеми инструментами необходимы права администратора на компьютере, чего часто не бывает
- Если в конфигурации отключен режим использования модальности, приходится нажать много кнопок для запуска нужного инструмента.
Способ распространения и лицензия
Подсистема разрабатывается и распространяется под лицензией GNU General Public License v3.0. Код открыт, можно копировать и распространять кому угодно, но тоже с выкладывать в общий доступ с открытым кодом.
Если возникла проблема
Если у вас есть пожелание или возникла проблема создавайте задачу в репозитории проекта. Список задач проекта.
Также в самой подсистеме сделана кнопка "Вопрос разработчику", которая позволяет, даже не имея аккаунта на гитхабе, поставить задачу или предложить идею к реализации.
Для желающих поучаствовать в разработке
Разработка ведется с использованием EDT через репозиторий на GitHub tools_ui_1c. Проверка кода осуществляется SonarQube с помощью плагина https://1c-syntax.github.io/sonar-bsl-plugin-community/.
Чат для обсуждения вопросов по разработке в телеграмме https://t.me/tools_ui_1c
- Для редактора Monaco реализованы:
- Показ изменений, сделанных с последнего сохранения
- подсказки по экспортным методам общих модулей, модулей объектов и менеджеров. Для использования исходные модули конфигурации и расширений должны быть сохранены на диск и пути указаны в настройках. Можно указывать каталоги исходников, сохраненные как в формате конфигуратора, так и в формате EDT
- Реализована возможность сохранить модули конфигурации в папку. Для этого в настройках реализована соответствующая кнопка
- Редактор кода интегрирован в консоль запросов, Загрузку из табличного документа
- В консоль запросов и Редактор СКД при использовании редактора кода Monaco добавлена контекстная подсказка в поле текста запроса
- В редакторе СКД добавлена контекстная подсказка при редактировании выражения на языке выражений СКД
- Вернул возможность отладки через внешнюю обработку для Универсального обмена в формате XML by @StupnikovVG in #347
- #364 Общие реквизиты в редакторе объекта by @JohnyDeath in #369
- Создание команды выполнения выделенных алгоритмов для справочника УИ_Алгоритмы by @Untru in #363
- #366 Доработка удаления нескольких строк в данных отладки by @StupnikovVG in #367
- #391 Внесены исправления в процедуру ВыполнитьКоманду() by @Virsy in #392
- #390 Исправлен вывод ИнформацияОбОшибке() для платформ выше 8.3.17 в консоли задани by @Virsy in #393
- Повторно исправлена ошибка с открытием консоли по данным отладки сохраненным под другим пользователем
- Http коннектор обновлен до версии 2.4.5
- Библиотека сериализации JSON обновлена до версии 0.9.0
- Обновлена консоль сравнения данных до версии 15.9.61
- Исправлена ошибка при закрытии портативных инструментов