Оформитель исходного кода 1С

23.09.24

Разработка - Инструментарий разработчика

Все мы хотя бы раз работали с конструктором запросов. Результатом его работы является синтаксически верный запрос, оформленный по некоторому стандарту. Нравится - не нравится, а привыкаешь быстро, и на запрос, написанный руками, уже не хочется смотреть... А почему бы не попробовать сделать то же самое с исходным кодом 1С? Ну я и попробовал...

Почему я его написал, чем не устраивал Alt+Shift+F? А я просто захотел себе такой инструмент, мужик захотел - мужик сделал. Вы можете относиться к этому как к развлечению для ума.

Оформитель или bslpretty.

Оформитель представляет собой набор плагинов для парсера встроенного языка 1С и скрипт для запуска из командной строки bslpretty.os. Проект опубликован на GitHub, имеет открытую лицензию MIT.

В качестве киллер-фишки заявляется интеграция с ГИТ. Он может сравнить рабочий каталог репозитория с последним коммитом и оформить только измененные строки.

 

Что Оформитель умеет

  1. Заменять неправильно написанные ключевые слова на правильные. "если" меняет на "Если"
  2. Расставлять пробелы там где они нужны и удалять там где они не нужны
  3. Расставлять отступы. В том числе менять отступы пробелами на отступы символом табуляции

Грубо говоря, он исправляет код:

Для ц=1 по 100500 Цикл
Если ц >= 100500 Тогда
    Сообщить("100500");	
	КонецЕсли;
КонецЦикла;

на код:

Для ц = 1 По 100500 Цикл
	Если ц >= 100500 Тогда
		Сообщить("100500");
	КонецЕсли;
КонецЦикла;

 

На всякий случай подсвечу изменения с помощью программы WinMerge

Есть весьма спорный функционал выравнивания аргументов:

Код

Стр = новый Структура();
Стр.Вставить("Результат1", п);
Стр.Вставить("Резу", п1);
Стр.Вставить("Рез", п2);

Заменяет на код

Стр = новый Структура();
Стр.Вставить("Результат1", п);
Стр.Вставить("Резу",       п1);
Стр.Вставить("Рез",        п2);

Как воспользоваться оформителем кода

Вам понадобиться

  1. oscript и установленная для него библиотека osparser
  2. Если вы хотите использовать Интерактивный режим Оформителя - утилита diff (устанавливается вместе с git) или программа WinMerge

 

И так:

  1. Склонируйте или скачайте репозиторий bslpretty
  2. Откройте в текстовом редакторе файл src\bslpretty.os и посмотрите на функцию Настройки(). Убедитесь, что там правильные пути до утилиты Diff / WinMerge или отключите интерактивный режим. В остальном, надеюсь, там все понятно.
  3. Запустите командную строку windows и перейдите в каталог с корнем bslpretty. У меня так:
 cd c:\git\bslpretty\

 

Оформитель имеет два режима работы. С каталогом исходного кода или с репозиторием git.

Запустите команду, думаю будет все понятно:

oscript src\bslpretty.os

bslpretty.os git путь_к_репозиторию [commit]
  Оформляет измененные стройки по результату сравнения git diff [commit]
  Оформление применяется только к измененным строкам в измененных файлах

bslpretty.os file путь_к_каталогу_с_файлами
  Оформляет все файлы *.bsl и *.os в каталоге

 

Выполните команду

oscript src\bslpretty.os file test_data

Оформитель оформит файл test_data/МодульДляОформления.bsl, а в интерактивном режиме покажет изменения и спросит ваше мнение "Нужно ли применять исправления к файлу"?

 

Или отредактируйте файл test_data/МодульДляОформления.bsl. Измените буквально пару строк, чтобы git заметил изменения.

Запустите команду

oscript src\bslpretty.os git .

Оформитель оформит в файле только измененные строки, не трогая модуль целиком.
 

Заключение

bslpretty - довольно сырой инструмент, имеет список известных проблем, тем не менее он работает.

Ожидаемый эффект от внедрения:

  • Единообразный код вне зависимости от среды разработки: Текстовый редактор, Конфигуратор, EDT
  • Минимум "мусорных коммитов"

Надеюсь, моя работа стоила вашего внимания и вам было интересно. Я старался.

Вступайте в нашу телеграмм-группу Инфостарт

oscript

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

15500 руб.

02.09.2020    209705    1147    413    

1040

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    38947    215    113    

204

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

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

16000 руб.

10.11.2023    18132    78    39    

92

Инструментарий разработчика Программист 1С v8.3 1С:Управление нашей фирмой 3.0 Платные (руб)

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9500 руб.

17.05.2024    36725    133    53    

176

Пакетная печать Печатные формы Инструментарий разработчика Программист 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    25730    65    30    

96

Инструментарий разработчика Нейросети Платные (руб)

Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше.<br/> Далее в публикации:<br/> MCP для поиска по метаданым 1С, справке синтакс-помошника и проверки синтаксиса.

9900 руб.

25.08.2025    2386    4    7    

12

Инструментарий разработчика 1С v8.3 1C:Бухгалтерия 1С:ERP Управление предприятием 2 Платные (руб)

Разработка Конструктор автоматизированных рабочих мест "Конструктор АРМ" реализована в виде расширения и является универсальным инструментом для создания АРМ любой сложности в пользовательском режиме.

3600 руб.

27.12.2024    3411    7    0    

12

Инструментарий разработчика Программист 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

6000 руб.

07.02.2018    108163    249    100    

313
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Spurk 42 24.09.24 02:35 Сейчас в теме
Выделяешь написанный код.
Нажимаешь Alt+Shift+F.
В результате получишь выравнивание как нужно.
2. scarl1n 6 24.09.24 10:57 Сейчас в теме
(1) Ага, а еще он регистр исправит и пробелами обособит операторы.
unknown181538; +1 Ответить
3. artbear 1571 24.09.24 11:25 Сейчас в теме
Еще один форматтер кода 1С в копилку форматтеров. Спасибо автору.

Жаль только, что постепенно эти проекты не развиваются и умирают по разным причинам.
4. stopa85 46 24.09.24 14:15 Сейчас в теме
(3) А вам известны какие-нибудь другие? Поделитесь. Я видел только какую-то обработку на 1С. Ну и говорят, что всякие снегопады могут.
unknown181538; +1 Ответить
6. chrnv 29.08.25 10:51 Сейчас в теме
(5) расскажите как ее устанавливать. я скопировал в папку 1с. Хоткей у меня не заработал.
7. leobrn 702 29.08.25 11:28 Сейчас в теме
(6) установки нет. Запускаете файл "SmartConfigurator.exe" и все
8. chrnv 29.08.25 11:58 Сейчас в теме
1С закрыл
Смарт конфигуратор запустил
Встал на пункт редактирование.
Открыл его.
Нажал ок
Смарт конфигуратор закрыл
1С открыл
Хоткей не сработал

Может еще какие-то компоненты/библиотеки нужны?
Для отправки сообщения требуется регистрация/авторизация