Skip to content

About

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

Topics

Resources

Contributing

Stars

1.1k stars

Watchers

74 watching

Forks

Repository files navigation

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

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

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

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

  • Windows x86
  • Windows x64
  • Linux x64
  • Linux x86

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

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

  • Толстый клиент управляемое приложение
  • Тонкий клиент
  • Web клиент(частично)

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

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

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

8.3.12 и выше

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

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

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

  • Групповая обработка справочников и документов- Аналогична типовой обработке от 1С с диска ИТС
  • Редактор констант - позволяет редактировать значения констант в режиме таблицы
  • Структура хранения базы данных- Просмотр имен таблиц и их взаимосвязей с объектами метаданных.
  • Удаление помеченных объектов- копия стандартной обработки из БСП, адаптированной для жизни вне БСП
  • Консоль запросов- Обработка для разработки и выполнения запросов без написания дополнительных обработок. Форк https://github.com/hal9000cc/RequestConsole9000. Лицензия GPL3
  • Консоль заданий- просмотр и настройка регламентных и фоновых заданий. Форк https://github.com/kuzyara/JobsConsole2019.epf Разрешение автора
  • Регистрация изменений для обмена- Форк обработки с диска ИТС с адаптациями под подсистему
  • Поиск и удаление дублей- Форк стандартной обработки из БСП, в которую добавлены несколько параметров выполнения замены
  • Консоль кода- Позволяет выполнять код из предприятия без создания внешних обработок. Есть подсветка синтаксиса и минимальная контекстная подсказка.
  • Поиск ссылок на объект- аналог стандартной обработки из меню "Все функции".
  • Редактор реквизитов объекта- позволяет низкоуровневое редактирование ссылочных объектов. Поддерживает редактирование движений документа. Форк обработки https://infostart.ru/public/983887/. Вырезана из https://infostart.ru/public/938606/. Разрешение автора
  • Консоль отчетов- переработанная консоль компоновок с диска ИТС. Теперь ей удобнее пользоваться
  • Динамический список- удобный просмотр списков таблиц базы из одной обработки
  • Консоль HTTP запросов- позволяет из 1С делать HTTP запросы.
  • Выгрузка загрузка XML с фильтрами - Перенос информации между однородными базами данных. Форк обработки https://infostart.ru/public/1149722/ Разрешение автора
  • Навигатор по метаданным- Обработка замена стандартному меню "Все функции". Здесь же дополнительные административные функции будут. Форк https://infostart.ru/public/931586/. Разрешение автора
  • Файловый менеджер - Обработка для удобной работы с файлами между клиентом и сервером. Передача, просмотр, удаление. На текущий момент содержит синхронные вызовы. Форк https://infostart.ru/public/1027326/. Разрешение автора
  • Конструктор регулярных выражений- позволяет строить сложно-структурированные выражения на основе параметрического описания, тестировать их, и в результате получить программный код 1С. На текущий момент работает только в Windows. Форк https://infostart.ru/public/592108/. Разрешение автора
  • Консоль веб сервисов -Обработка для чтения и выполнения веб-сервисов на платформе 1С: Предприятие 8.3. Аналог soapUI. Обработка позволяет выполнить операцию веб-сервиса и отобразить результат в виде xml или дерева. Форк https://github.com/ghostaz/WSReader2.git. Лицензия GPL3
  • Консоль сравнения данных- предназначена для сравнения данных, полученных из разных источников данных: информационных баз 1С 8, 1С 7.7, баз данных SQL, файлов формата CSV/TXT/DBF/XLS/DOC/XML, строки JSON, вручную заполненного табличного документа. Форк https://infostart.ru/public/581794. Разрешение автора
  • Информация о лицензиях 1С-представляющая из себя обертку функций Утилиты лицензирования 1С (ring) в понятном для обычного человека виде. По сути, это GUI утилиты RING. Форк https://infostart.ru/public/1124442/. Разрешение автора. Для работы должна быть установлена утилита ring и ее модули license
  • Загрузка данных из табличного документа-Обработка предназначена для загрузки данных в справочники и табличные части различных объектов из табличного документа. Форк обработки https://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
  • Универсальный обмен данными в формате XML (с фильтрами и прямой загрузкой через HTTP сервис) - Выгрузка и загрузка по правилам обмена. Форк стандартной обработки от 1С и https://infostart.ru/public/1176839/. Разрешение. Добавлена возможность накладывать фильтры на выгружаемые объекты, и прямая выгрузка в базу через http сервис универсальных инструментов.
  • Редактор СКД- Аналог конструктора схемы компоновки данных для тонкого клиента. На текущий момент не поддерживает редактирование макетов и вложенных схема.
  • Сравнение объектов - Сравнение ссылочных объектов по реквизитам с выводом в табличный документ. Форк https://infostart.ru/public/1240803/. Разрешение
  • Просмотр значения - Просмотр значений и их свойств произвольных типов. Позволяет таким образом исследовать любой объект по аналогии с диалогом "Вычислить выражение" отладчика
  • Менеджер открытых форм - обработка перехватывает все открытые окна, собирает информацию о формах, выводит её в редактор и позволяет выполнять разные манипуляции. А так же позволяет открывать новые окна (в т.ч. и системные формы). Форк https://github.com/SeiOkami/ManagerOpenForms Лицензия MIT
  • Редактор прототипов форм - Построение прототипов форм в интерактивном режиме. Позволяет быстро накидать внешний вид формы. Форк https://github.com/alehinsasha/sketch1c. Лицензия BSD-3-Clause license Разрешение автора
  • Конструктор представлений подсистемы "Зарплата и кадры" - инструмент для интерактивного формирования представлений, доступных в рамках подсистемы "Зарплата и Кадры". Форк https://github.com/iljyxa/SharedQueryDesignerHRM. Лицензия MIT
  • Библиотека сериализации 1С- Набор процедур и функций для сериализации/десериализации данных 1С и объектов СКД в простые структуры данных (Структура, соответствие, массив). Форк https://github.com/arkuznetsov/SerLib1C. Лицензия MPL-2.0 License
  • Коннектор: удобный HTTP-клиент для 1С:Предприятие 8 - В мире python очень популярна библиотека для работы с HTTP запросами - Requests (автор: Kenneth Reitz). Библиотека берет на себя всю рутину работы с HTTP запросами. Буквально в одну строку можно получать данные, отправлять, не заботясь о необходимости конструирования URL, кодирования данных и т.п. В общем библиотека очень мощная и проста в использовании. Коннектор - это "Requests" для мира 1С. Форк https://github.com/vbondarevsky/Connector. Лицензия Apache-2.0
  • Количество объектов в базе - Показывает таблицу с количеством записей в таблицах справочников, документов, независимых регистров сведений и т.п. Удобно определять, для каких объектов нужно создать правила конвертации при переносе данных. Для периодических объектов нужно задать начало и конец периода отбора. Если в реквизитах (для регистров сведений - в измерениях) объекта есть "Организация", наименование этой организации будет выведено в группировку таблицы
  • Редактор временного хранилища — Инструмент просмотра и правки данных временного хранилища 1С, а также помещения новый данных во временное хранилище.

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

  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Запрос,"Получение списка задач",СоединениеHTTP)

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

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

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

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

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

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

  • build.sh - для Linux
  • build.bat - для Windows

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

  • --platformSource - Каталог установки платформы для выполнения сборки
  • --edtSource - Каталог расположения исполняемых файлов EDT

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

  • TOOLS_UI_1C_BUILDER_PLATFORM_PATH
  • TOOLS_UI_1C_BUILDER_EDT_PATH

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

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

  • xml - Экспорт исходников в формат XML
  • cfe - Формировать сборку в формате Расширения
  • cf - Формировать сборку в виде конфигурации
  • epf - Формировать сборку в виде конфигурации

В начале надо запустить команду 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

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

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

About

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

Topics

Resources

Contributing

Stars

1.1k stars

Watchers

74 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages