Как избавиться от конструкций вида //{{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

См. также

Рефакторинг и качество кода Программист Стажер 1C:Бухгалтерия 1C:ERP 1С:ЗУП 1С:КА 1С:УНФ 1С:УТ 1С:ДО Бесплатно (free)

Разбираем принципы SOLID в контексте 1С: как укротить хаос в коде, сделать его гибким, расширяемым и предсказуемым. Практические примеры, механизмы платформы помогающие в этом и шаги к чистой разработке для новичков и профи.

вчера в 12:00    1886    RPGrigorev    15    

21

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

Диалог "Вопрос" использовался очень интенсивно в старых версиях кода и также его используют в УФ довольно часто. Иногда очень неудобно использовать рефакторинг через асинхронные вызовы ПоказатьВопрос и ВопросАсинх по разным причинам. Есть ещё одно решение, как избежать больших переделок кода, когда Вы не планируете его использовать где-то на других платформах и Веб-клиентах.

26.03.2025    403    ksuman    6    

3

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

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

19.03.2025    2818    EFSOL_oblako    9    

8

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

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

17.03.2025    2421    Bukaska    5    

8

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

Искусственный интеллект в код-ревью – это не фантастика, а реальность, которая уже сегодня помогает разработчикам улучшать свои проекты. Расскажем о том, как ИИ может автоматически находить баги и предлагать улучшения, экономя ваше время и ресурсы.

11.03.2025    5272    mrXoxot    52    

53

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

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

11.03.2025    552    it-expertise    0    

3

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

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

12.02.2025    7352    465    wonderboy    44    

119

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

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

11.02.2025    1148    it-expertise    0    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. sansys 75 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 396 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 396 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 102 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 Сейчас в теме
Оставьте свое сообщение