Конвертация данных 3: Редактор кода
Разработка - Инструментарий разработчика
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Ссылка на исходник: Conversion-3-Plus
Как только специалисты широкого профиля из мира 1С узнали о возможностях Monaco Editor, на инфостарте появилось несколько реализаций дополнительной функциональности для 1С с разными возможностями.
Первым появился проект Vanessa Automation Editor для Vanessa Automation где был реализован чудесный функционал по написанию кода на языке Gherkin. Vanessa Automation используется для написания сценариев тестирования для 1С: Предприятия 8.
P.S. Позже в проекте появилась поддержка языка bsl (1С), но с минимальным функционалом.
Вторым статья Редактор кода управляемых форм
В проекте Консоль кода для 1С 8.3 (Управляемые и обычные формы) был реализован функционал для написания именно кода 1С в режиме 1С:Предприятия или в веб-интерфейсе, с возможностью описать метаданных конфигурации.
По работе мне приходится разрабатывать правила обмена с использованием конфигурации “Конвертация данных 3.1”.
В ней нет ни подсказок, ни привычного оформления при написании кода.
Поэтому я решил встроить механизм работы с кодом из вышеупомянутых консолей в конфигурацию “Конвертация данных 3.1”.
На момент написания первой версии расширения, мой выбор пал на консоль: Консоль кода для 1С 8.3 (Управляемые и обычные формы) т.к. там есть тот функционал который мне нужен, расцветка по аналогии с конфигуратором, возможность описывать метаданные.
В расширении конфигурации Conversion-3-Plus, выбранная консоль кода добавлена на все формы, где предполагается редактирование кода 1С.
Conversion 3 Plus 1.2.0
Удобнее работать с кодом обработчиков
- Редактор кода встроен прямо в форму правила: подсветка, удобный набор, без лишних файлов и сложных настроек.
- На одной форме один редактор — текст меняется при переключении вкладок обработчиков, окно не загромождено несколькими полями.
- Вкладки обработчиков расположены горизонтально, редактору остаётся больше места по высоте.
- Консоль можно отключить в настройках и вернуться к обычным текстовым полям. После смены этой настройки закройте форму и откройте снова — иначе вид не обновится.
- Работает на платформе 8.3.24 и новее (удобнее на 8.3.27+).
Где появилась консоль
- Правила обмена XDTO: конвертация, правила конвертации объектов, правила обработки данных, алгоритмы.
- Правила обмена XML: те же формы, плюс предопределённые данные и правила конвертации свойств.
- Справочник запросов — тоже с редактором кода.
Сразу открывается нужный обработчик
- Если в правиле заполнен только один обработчик, форма открывается сразу на нём — не нужно искать вкладку вручную.
- Работает и для XDTO, и для XML на формах конвертации, ПКО и ПОД.
- Если заполнены несколько обработчиков или ни одного — остаётся привычное поведение формы.
Настройка внешнего вида
- В настройках консоли можно выбрать тему, шрифт, размер, высоту строки, карту кода, перенос длинных строк, показ пробелов, номера строк, строку состояния и быстрые подсказки.
Подсказки на русском или английском
- В настройках выбирается язык подсказок редактора.
- Меняются подписи типов и служебные тексты («Функция» / Function, «Запрос» / Query и т.п.).
- Имена ваших объектов, реквизитов, алгоритмов и запросов остаются как в конфигурации — они не переводятся.
Умные подсказки при наборе кода
- После точки у справочников, документов и других объектов показываются объекты вашей конфигурации-источника или приёмника и их реквизиты — без долгой загрузки всего описания сразу, форма не «зависает».
- Подсказываются экспортные методы общих модулей и модулей объектов, если структура конфигурации была загружена из файлов XML.
- Чтобы подсказки по объектам конфигурации появились, в форме должна быть выбрана конвертация, а для её релизов заранее обновлено описание метаданных (команда обновления на релизе). Без этого редактор знает только встроенные имена платформы. Если вы только что обновили описание или сменили конвертацию, закройте форму правила и откройте снова — подсказки подхватятся заново.
Подсказки под конкретный обработчик
- В списке автодополнения видны параметры текущего обработчика (например `Отказ`, `Параметры`, `ДанныеИБ`).
- У важных параметров раскрывается структура: параметры конвертации, реквизиты источника/объекта (XML), данные ИБ и формата, компоненты обмена (XDTO).
- Видны все алгоритмы и запросы этой конвертации: можно вызвать по имени, увидеть параметры, найти через точку (`Алгоритмы…`, `Запросы…`).
- На алгоритме подсказки обновляются при смене кода, параметров или объекта формата.
Поиск по коду и переход к определению
- Глобальный поиск находит фрагменты в правилах, алгоритмах, запросах и текстах модулей; результат открывается в нужной форме, строка выделяется в редакторе.
- По F12 на имени алгоритма или запроса открывается сам элемент справочника. Текст модуля из загруженной структуры можно открыть для просмотра.
Закладки в коде
- На панели консоли — подменю «Закладки»: поставить или снять закладку на строке, перейти к следующей или предыдущей, открыть список и перейти к выбранной строке.
- Закладки действуют, пока форма открыта; после закрытия не сохраняются. Удобно, когда правите длинный обработчик и нужно быстро прыгать между местами.
Видно, что уже изменили
- Слева от строк подсвечиваются добавления, правки и удаления относительно того текста, который был при первом открытии этого обработчика на форме.
- У каждой вкладки свой «исходный» текст — при переключении подсветка не путается.
- После записи элемента подсветка не сбрасывается. Чтобы начать отсчёт заново — закройте форму и откройте снова.
Надёжность и сопровождение
- Код приведён в порядок по замечаниям автоматической проверки качества (SonarQube): проще сопровождать и меньше скрытых ошибок.
- Добавлены автотесты на основные формы: проверяется, что редактор появляется там, где должен, и не появляется, когда консоль выключена. В саму поставку расширения тесты не входят — это для разработки.
Прочее
- При сохранении текста из консоли переводы строк приводятся к обычному для Windows виду — меньше сюрпризов при сравнении и выгрузке.
- Исходники расширения ведутся в формате EDT; старая выгрузка конфигуратора из репозитория убрана.
Тестировалось на платформе: 8.3.26.1656
Конфигурация: Конвертация данных, редакция 3.1 (3.1.5.35)
Для файла я выбрал конфигурацию КД2, потому что в списке Инфостарта нет конвертации данных 3, почему?...
Проект Open Source, так что буду рад принять issues или pull requests.
Ссылка на исходник находится в начале статьи.
Проверено на следующих конфигурациях и релизах:
- 1С:Конвертация данных 2.0, релизы 2.3.11.37
Вступайте в нашу телеграмм-группу Инфостарт