1C Форматер кода




Автоматическое форматирование кода 1С

Всем добра.

 

Встала у меня задача отформатировать код 1С. Те решения, что находил в интернете не получалось применить. На C# накатал программку, которая может восстановить форматирование текста/файла/каталога. Выложил программу вместе с исходниками на GitHub. Может, кому-то и пригодиться

https://github.com/Du10777/1C_CodeFormatter

9 Comments

  1. neuro88

    Полезная штука.

    Из недочетов:

    1) код вида

    Если Условие1 Тогда
    ИначеЕсли Условие2 Тогда
    Иначе
    КонецЕсли;

    форматирует в

    Если Условие1 Тогда
    Иначе
    Если Условие2 Тогда
    Иначе
    КонецЕсли;

    Эта ситуация видна и в скриншотах к публикации.

    2) Тексты запросов объединяет в одну строку

    3) цикл:

    Для Каждого Элемент ИЗ Набор Цикл
    Сообщить(Элемент);
    КонецЦикла;

    форматирует в

    Для Каждого Элемент ИЗ Набор Цикл Сообщить(Элемент);
    КонецЦикла;
    Reply
  2. vadim1011985

    а чем стандартное форматирование текста не устраивает ?

    Reply
  3. Толямба

    alt+shift+f

    Reply
  4. neuro88

    (2)

    (3)

    ну достаточно же открыть конфигуратор, написать там строчку вида

    Если Условие1 Тогда ИначеЕсли Условие2 Тогда Иначе КонецЕсли;

    выделить, нажать alt+shift+f и убедиться, что ничего не изменится…

    стандартное форматировние не превратит ее в

    Если Условие1 Тогда
    ИначеЕсли Условие2 Тогда
    Иначе
    КонецЕсли;
    Reply
  5. admin_at_gkgeostroy

    (1)

    Поправил первый и третий недочеты. Про запросы не знал, с ними надо отдельно разбираться. Это будет позже.

    Актуальную версию можно скачать на GitHub-е.

    Reply
  6. user928779
    if (tabControl.SelectedIndex == 0)
    ФорматироватьТекст();
    if (tabControl.SelectedIndex == 1)
    new Thread(ФорматироватьФайл).Start();
    if (tabControl.SelectedIndex == 2)
    new Thread(ФорматироватьКаталог).Start();
    

    Мерзость-то какая…

    Reply
  7. admin_at_gkgeostroy

    (6)

    Критикуя, предлагай!

    Чем конкретно вас смущает данная конструкция?

    Reply
  8. jaroslav.h

    7) как мне кажеться, вместо 0, 1, 2 и т.д., гражданин (6) хочет видеть типа

    const String Name;
    Reply
  9. admin_at_gkgeostroy

    (8)

    Дак это ж индекс выбранной вкладки. Если выбирать по имени, то при переименовании будут проблемы. Если где-то вводить сопоставление индекса какому-то названию в коде, то это будет абсолютно лишний код, усложняющий конструкцию. А индекс вкладки самое простое и понятное (для тех, кто понимает в коде).

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

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *