Универсальные инструменты 1С

Универсальные инструменты 1С для управляемых форм: поддержка ОС, клиентов, конфигураций, платформ, распространение под лицензией GPL v3.0.

1C Configurations

Not specified.

Pricing

Free or price is not specified.

README

Универсальные инструменты 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]+)"); //Истина

Выполнение кода в форме вычисления выражения

Необходимо в форме вычисления выражения вызвать функцию УИ_._ДУ(Код).
На вход принимаются до 5 параметров помимо кода с именами П,П2,П3,П4,П5

_ДУ(Код, П = Неопределено, П2 = Неопределено, П3 = Неопределено, П4 = Неопределено, П5 = Неопределено)

Если нужно вернуть значение, необходимо в коде определить переменную Р

Примеры использования:

УИ_._ДУ("Сообщить(П)", "Хорошо")

С возвратом значения

УИ_._ДУ("Сообщить(П);Р=П2;", "Хорошо", "Привет")

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

Необходимо в форме вычисления выражения вызвать функцию УИ.ВТ(ЗапросИЛИМенеджерВременныхТаблиц).

Примеры использования:

УИ_._ВТ(Запрос)

УИ_._ВТ(Запрос.МенеджерВременныхТаблиц)

Сравнение двух таблиц значений

Необходимо в форме вычисления выражения вызвать функцию _ТЗСр(ТаблицаБазовая, ТаблицаСравнения, СписокКолонок).

Примеры использования:

УИ_._ТЗСр(ТаблицаБазовая, ТаблицаСравнения) - выполнит сравнение по всем колонкам параметра ТаблицаБазовая

УИ_._ТЗСр(ТаблицаБазовая, ТаблицаСравнения, "Номенклатура,Количество")

Сериализация XML в простые структуры данных(массив, структура, соответствие)

Необходимо в форме вычисления выражения вызвать функцию _XMLОбъект(ПутьЧтения, УпроститьЭлементы).

Примеры использования:

УИ_._XMLОбъект(ЧтениеXML) - выполнит обход существующего объекта ЧтениеXML

УИ_._XMLОбъект("C:\1.xml") - выполнит чтение в структуры файла

УИ_._XMLОбъект(Поток) - выполнит чтение в структуры потока

УИ_._XMLОбъект("C:\1.xml", Ложь) - выполнит чтение в структуры файла без упрощения полученных структур

Отладка

Особенности использования отладки в портативной поставке

Вызов

Необходимо в форме вычисления выражения вызвать функцию УИ.От(ВашаПеременнаяОбъектаОтладки,ПараметрОтладки2, ПараметрОтладки3,ПараметрОтладки4, ПараметрОтладки5). Где вместо ВашаПеременнаяОбъектаОтладки нужно передать переменную, содержащую один из доступных к отладке объектов, а другие параметры метода передать дополнения к основному объекту отладки.

Все параметры кроме первого можно указывать в произвольном порядке

Логика работы

Если контекст запуска отладки является толстым клиентом открытие формы консоли происходит сразу по окончании выполнения вызова кода

Если отладка вызывается в контексте сервера или тонкого или веб клиента, необходимая информация сохраняется в справочник Данные для отладки. В таком случае вызов отладки происходит потом из списка справочника "Данные для отладки".

Поддерживается отладка объектов:

УИ_._От(Запрос)
УИ_._От(Запрос, "Запрос из сложной формы")

УИ_._От(МенеджерВременныхТаблиц)
УИ_._От(Запрос.МенеджерВременныхТаблиц)

Вызов отладки

УИ_._От(СхемаКомпоновкиДанных,НастройкиСКД) - будет вызвана отладка с переданными настройками

УИ_._От(СхемаКомпоновкиДанных) - будет вызвана отладка с настройками по умолчанию для СКД

УИ_._От(СхемаКомпоновкиДанных,НастройкиСКД, ВнешниеНаборыДанных) - будет вызвана отладка с переданными настройками и внешними наборами данных
УИ_._От(СхемаКомпоновкиДанных,НастройкиСКД, ВнешниеНаборыДанных, МенеджерВременныхТаблиц) - будет вызвана отладка с переданными настройками, внешними наборами данных и менеджером временных таблиц

Вызов
УИ_._От(Элементы.Список)

Вызов отладки

УИ_._от(СсылкаНаОбъектБД)

Вызов отладки

УИ_._От(HTTPЗапрос,СоединениеHTTP)

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

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

Примеры:

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

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

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

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

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

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

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

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

Вместо параметров можно задать переменные окружения,

Пример как это сделать можно посмотреть в файле build_actions.bat

Команды сборки

В начале надо запустить команду xml потом формирование одного из вариантов сборки

Пример
./build.sh --platformSource=/opt/1cv8/x86_64/8.3.12.1924 --edtSource=/home/user/.local/share/1C/1cedtstart/installations/1C_EDT (Lite) 2024.1/1cedt/

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

Перейти к документу про внесение изменений в продукт

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

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

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

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