cpr1c / tools_ui_1c

Универсальные инструменты 1С для управляемых форм
GNU General Public License v3.0
730 stars 230 forks source link
1c 1c-edt 1c-enterprise hacktoberfest tools

Универсальные инструменты 1С для управляемых форм

Quality Gate Status Join telegram chat Last release download GitHub issues License OpenYellow

Подержать проект

Поддерживаемые операционные системы

В MacOS должно работать, но не тестировалось

Поддерживаемые клиентские приложения

Поддерживаемые режимы конфигурации

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

Поддерживаемые платформы

8.3.12 и выше

Способ распространения и лицензия

Подсистема разрабатывается и распространяется под лицензией GNU General Public License v3.0. Код открыт, можно копировать и распространять кому угодно, но тоже с выкладывать в общий доступ с открытым кодом.

На текущий момент содержит инструменты:

Интеграция с библиотекой стандартных подсистем (БСП)

  1. Есть возможность удобной отладки дополнительных отчетов и обраток. Подробнее в wiki
  2. В списки и формы объектов добавляется подменю "Инструменты", которое содержит пункты(Формы должны быть подключены к подсистеме "Подключаемые команды"):
    • Добавить к сравнению - добавляет выледенные объекты к сравнению для дальнейшего использования в инструменте "Сравнение объектов"
    • Редактировать объект - Позволяет текущий объект открыть в редакторе реквизитов
    • Сравнить объекты - Открывает инструмент "Сравнение объектов" с выделенными ссылками в качестве объектов сравнения. Доступно только для списков
    • Найти ссылки на объект - Открывает инструмент "Поиск ссылок на объект" для текущего объекта
    • Выгрузить объекты в 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)

Указание наименования для сохраняемого объекта отладки

Для задания наименования используется 4-й параметр метода УИ_._От

Примеры:

УИ_._От(Запрос,,,"Мой запрос")
УИ_._От(СхемаКомпоновкиДанных,,,"Отчет по остаткам")
УИ_._От(Элементы.Список,,,"Список заказов")
УИ_._От(СсылкаНаОбъектБД,,,"Ссылка")
УИ_._От(HTTPЗапрос,СоединениеHTTP,,"Получение списка задач")

Сохранение данных отладки в файлы

Для сохранения данных отладки в файлы используется метод УИ_._ОтФ Использование данного метода аналогично методу УИ_._От

Данные сохраняются во временный каталог на сервере.

Сборка в бинарные файлы

Зависимости сборки теперь находятся в файле packagedef, в папке build для установки зависимостей необходимо выполнить команду opm install находясь в корне проекта

В корне репозитория вызвать файл сценария

Доступные параметры сборки:

Пример ./build.sh ----platformSource=/opt/1cv8/x86_64/8.3.12.1924 --versionEDT=edt@2020.6.0

Развитие инструментов

Разработка ведется в 1С:EDT

Замечания и предложения оставляйте в разделе issues.

Если кто хочет поучаствовать - добро пожаловать. Больше идей- лучше конечное решение. Перед началом прочитайте инструкцию для легкого старта с EDT или инструкцию для доработки через конфигуратор

Донаты и поддержка проекта

Поддержать проект деньгой можно по ссылке https://donate.stream/ya410011848843350

Все собранные средства пойдут ИСКЛЮЧИТЕЛЬНО на развитие проекта и никуда более

Ссылки на инструмены так или иначе участвовавшие в проекте