Skip to content

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

License

Notifications You must be signed in to change notification settings

cpr1c/tools_ui_1c

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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/. Разрешение
  • Библиотека сериализации 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. Есть возможность удобной отладки дополнительных отчетов и обраток. Подробнее в 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Запрос,СоединениеHTTP)

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

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

Примеры:

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

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

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

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

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

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

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

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

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

  • --platformSource - Каталог установки платформы для выполнения сборки
  • --versionEDT - Версия EDT для выполнения конвертации. Для запуска через утилиту ring. Необходимо указывать, если в системе установлено более одной версии 1C:EDT
  • --cfe - Формировать сборку в формате Расширения
  • --cf - Формировать сборку в виде конфигурации

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

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

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

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

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

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

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

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

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