Как избавиться от конструкций вида //{{MRG

09.12.18

Разработка - Рефакторинг и качество кода

Удаляем комментарии //{{MRG из кода.

Наверное, все сталкивались с большим количеством комментариев вида //{{MRG......//}}MRG, которые остаются при объединении конфигураций.

Иногда такие блоки полезны, но чаще они просто захламляют код. И хуже всего то, что они сильно мешают при следующих обновлениях релиза, попадая в фильтр "дважды измененные". (Ну конечно, эти строки же отличаются от строк в старой конфигурации поставщика!)

Для работы понадобится bash (Для Windows я использую Git Bash, можно скачать тут: https://gitforwindows.org/)

Итак, моё решение данной проблемы:

  1. Выгружаем конфигурацию в файлы (Конфигурация -> Выгрузить конфигурацию в файлы...)
  2. Выбираем пустую папку (например С:/MRGClear), нажимаем выполнить
  3. Запускаем Bash, выполняем код (прописать свой путь)
    for file in `grep -iRl "//..MRG" С:/MRGClear`; do awk -vORS= '{if(match($0, "^//")) print "<NewLine>"$0; else print "\n"$0;}' $file | perl -pe 's/<NewLine>\/\/..MRG.*\[ \<\-\> \]//g' |  perl -pe 's/<NewLine>/\n/g' | sed '1d' > $file; done
  4. Загружаем конфигурацию из файлов (Конфигурация -> Загрузить конфигурацию из файлов...)

Всё, все блоки с MRG пропали вместе со всем содержимым!

обновление объединение MRG

См. также

Инструментарий разработчика Рефакторинг и качество кода Программист Платформа 1С v8.3 Бесплатно (free)

Расширяемый форматтер структуры модулей 1С. Умеет автоматически расставлять стандартные области и раскидывать по ним процедуры и функции модуля, оформлять стандартные комментарии к методам с помощью ИИ. Также умеет анализировать модуль - извлекать структуру вызовов, используемые поля и т.д. Реализован в виде расширения (.cfe). Можно использовать как платформу для обработки кода в своих задачах автоматизации разработки.

12.02.2025    5890    394    wonderboy    42    

116

Linux Рефакторинг и качество кода Программист Платформа 1С v8.3 Бесплатно (free)

В третьей статье по докладу Александра Кириллова, с которым он выступил на конференции INFOSTART TECH EVENT 2024, обсудим подходы к рефакторингу платформеннозависимого кода

11.02.2025    890    it-expertise    0    

3

Рефакторинг и качество кода Linux Программист Платформа 1С v8.3 Бесплатно (free)

Во второй статье по докладу Александра Кириллова, с которым он выступил на конференции INFOSTART TECH EVENT 2024, поговорим об особенностях анализа конфигурации 1С на наличие платформеннозависимого кода.

31.01.2025    1542    it-expertise    1    

7

Рефакторинг и качество кода Обновление 1С Программист Платформа 1С v8.3 Бесплатно (free)

В практике нашей специальной команды по проектам сложных обновлений 1С прошел один из самых объёмных проектов: необходимо было обновить «1С: Бухгалтерия предприятия КОРП 3.0 + БИТ.ФИНАНС». Конфигурация содержала доработки практически по всем типам объектов метаданных. Длительность проекта составила 1 год и 2 месяца и обеспечила полной загрузкой 4 разработчиков на 6 месяцев.

31.01.2025    1086    1c-izh    3    

5

Рефакторинг и качество кода Программист Стажер Платформа 1С v8.3 1C:Бухгалтерия Бесплатно (free)

В последнее время термин «чистый код» стал очень популярным. Появились даже курсы по данной тематике. Так что же это такое?

16.09.2024    17176    markbraer    66    

43

Рефакторинг и качество кода Программист Бесплатно (free)

В статье рассматривается отказ от использования процедур и унификация формата ответа функций. Способ описывается на примере развития абстрактной информационной системы, работающей с PDF файлами.

10.09.2024    1364    acces969    4    

6

Рефакторинг и качество кода Бесплатно (free)

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

28.08.2024    1881    Chernazem    3    

6

Рефакторинг и качество кода Программист Бесплатно (free)

SOLID – принципы проектирования программных структур (модулей). Акроним S.O.L.I.D. образован из первой буквы пяти принципов. Эти принципы делают код более гибким, упрощают разработку. Принято считать, что принципы SOLID применимы только в объектно-ориентированном программировании. Но их можно успешно использовать и в 1С. Расскажем о том, как разобраться в принципах SOLID и начать применять их при работе в 1С.

22.08.2024    12421    alex_sayan    41    

56
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. sansys 76 09.12.18 13:41 Сейчас в теме
Спасибо!!! Сегодня вычищу весь хлам и не только MRG )))
9. TerveRus 12.12.18 09:51 Сейчас в теме
(1) а еще можно заменить везде Истина на Ложь, вот будет веселуха))
МСН; Dementor; DataReducer; +3 Ответить
2. script 128 09.12.18 20:22 Сейчас в теме
Блин, все гениальное - просто.
Я так понимаю аналогичный скрипт можно сделать и при помощи OneScript.
3. triviumfan 99 10.12.18 00:13 Сейчас в теме
Было: https://infostart.ru/public/269771/
Лично я не понимаю, зачем так объединять и потом проводить ревью, ведь можно сразу во время сравнения правильно (вручную) настроить объединение модуля.
Yakud3a; Dementor; SkyHunter; alest; oleg-x; for-elenak; d4rkmesa; +7 Ответить
4. webester 26 10.12.18 08:02 Сейчас в теме
Зачем это делать? Очень удобно после обновления найти все конфликты мержей и проконтролировать, что там именно то, что тебе нужно. или я чего-то не понял? Конечно удобнее как говорят в (3) не допустить конфликта, но если уж прошел, то сделать как надо вручную.
triviumfan; +1 Ответить
5. Sloth 394 10.12.18 10:17 Сейчас в теме
А зачем такой длинный "конвейер"? Почему нельзя было сразу тем же sed-ом сделать замену того что надо, без лишних вставок и обратных замен? На вскидку вот это
cat $file | sed 's/^\/\/[{}][{}]MRG.*//g' > $file

делает тоже самое, что вот это
awk -vORS= '{if(match($0, "^//")) print "<NewLine>"$0; else print "\n"$0;}' $file | perl -pe 's/<NewLine>\/\/..MRG.*\[ \<\-\> \]//g' |  perl -pe 's/<NewLine>/\n/g' | sed '1d' > $file;

Может я ошибаюсь, конечно ...
Свою ошибку понял ... Не идентично ...
6. Sloth 394 10.12.18 11:39 Сейчас в теме
(5) Вот так вроде оно
cat $file | perl -pe  's/(\/\/.*)\n/<nl>\1/' | perl -pe 's/^<nl>.*\](.*)/\1/; s/<nl>(.*)/\1\n/' > $file
kuleshov.x; +1 Ответить
7. kuleshov.x 101 10.12.18 12:44 Сейчас в теме
(6) Можно и так. Спасибо за дополнение
8. МимохожийОднако 142 12.12.18 08:19 Сейчас в теме
10. SkyHunter 12.12.18 15:02 Сейчас в теме
В чём проблема сделать это стандартной глобальной заменой в конфигураторе?
11. VGHOST 168 12.12.18 20:42 Сейчас в теме
Офигеть!
Никак не ожидал что столько народа пользуется 1С-ным объединением модулей с нечитаемым шифром на выходе...
Еще на v7 посмотрел один раз на результат - и с тех пор ни разу не использовал.

Гораздо проще отмечать отдельные изменения, если их мало, и переносить руками.
А в сильно переработанных модулях без качественного трехстороннего сравнения вообще делать не чего. Имхо.
***
Слава великому Софтехно, что наконец осчастливил нас, убогих и грешных, опцией интеграции KDiff!
Больше не нужно корячиться с выгрузкой модулей, куда бы то ни было.
Аминь!
12. Aphanas 92 13.12.18 06:35 Сейчас в теме
Для объединения текстов использую Araxis Merge. Там настраивается всё, в т.ч. с помощью регулярных выражений. Объединение в 1С это что-то непонятное, проще уж копи-пастом.
VovkaPutin; +1 Ответить
13. Voladnas 13.12.18 11:55 Сейчас в теме
Оставьте свое сообщение