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

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Рефакторинг и качество кода Обновление 1С Разработчик 1С 8.3 Бесплатно (free)

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

22.09.2026    275    1c-izh    0    

4

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

Штатная страховка внутри цепочки обработки умеет прятать дефекты того шага, который стоит перед ней. У нас так и вышло: валидатор чинил результат постфактум, на выходе всё выглядело корректно, и никто не видел, что предыдущий шаг молча теряет данные. Вылезло это только на независимой проверке чужими глазами. Разбираю, чем инвариант отличается от сценарного теста и почему обычное умножение вытащило дефект из красивой метрики 0,997. Отдельно про 13 дублей, которые приехали из источника ещё до всякой обработки, и про две находки, которые оказались вообще не моими: они жили в эталонной реализации, откуда я списывал логику. Вторая часть про лимит выхода модели: почему обрезка ответа по длине это тихий ноль в мониторинге и как смена формата на дельты уронила выход до 4 951 токена. Есть отклонённые гипотезы и честный список того, чего мы так и не померили.

21.09.2026    296    nedomolkov.ivan    2    

1

WEB-интеграция Рефакторинг и качество кода Системный администратор Разработчик 1С 8.3 Бесплатно (free)

Я сел проверять внутренний поисковый сервис по коду: можно ли доверять ему в автоматическом режиме. Сверка с обычным текстовым поиском по файлам дала 261 из 261, 264 из 264 и 182 из 182 совпадений, разбор структуры файла - 318 функций из 318. Стопроцентная точность. Этот же замер и вскрыл, что опираться на сервис нельзя: искал он безупречно, только совсем не в том месте, которое я ему называл. Внутри разбор трёх дефектов, сложившихся в один тихий отказ: аргумент, проглоченный без ошибки; умолчание, выставленное когда-то наугад; снимок данных, у которого в ответе не указан возраст. Плюс регулярное задание, которое вся команда считала работающим и которого не существовало никогда. Перенос на 1С прилагается: готовый цикл проверки, после которого HTTP-сервис перестаёт молча принимать мусор.

21.09.2026    291    nedomolkov.ivan    0    

0

Логистика, склад и ТМЦ Рефакторинг и качество кода Разработчик Аналитик Руководитель проекта 1С 8.3 Бесплатно (free)

Кладовщик получает задачу: на складе проверки лежат две штуки. Идёт в зону, а там всё на месте и никакой задачи в складской системе нет. Так работала автоматическая сверка остатков между учётной и складской системами: разницу она переносила документом, а комментарий к этому документу восемь месяцев отправлял людей искать несуществующий ноль. Робота разобрали до кода. Обе сравниваемые величины оказались синтетическими: слева физический срез с вычетами по активности и окнами в 60 минут и 12 часов, справа учётный остаток на конец дня минус трёхчасовой хвост непроведённых ордеров. Порог срабатывания стоял в нуле, поэтому робот исправно оформлял собственный шум измерения: за 60 дней он сам создал 62,7% оборота технического склада, а 2 081 артикул из 2 102 приезжал туда и уезжал обратно. Внутри обе формулы, замер лага отгрузки, снятая гипотеза и честная граница данных.

21.09.2026    268    nedomolkov.ivan    0    

0

Рефакторинг и качество кода Нейросети Разработчик 1С 8.3 Бесплатно (free)

Как за вечер проверить, годится ли локальная модель для поиска ошибок в вашем коде 1С, и не обмануть себя по дороге. Разбираю замер Qwen2.5-Coder 1.5B, 3B и 7B на коде с заранее известными дефектами: почему полноту и шум надо считать раздельно, как 3B набирает высокий балл, вообще не читая код, сколько минут уходит на боевую процедуру на процессоре и на GTX 1650, и чем кончилась попытка подложить модели справку по методам платформы.

16.09.2026    1235    nedomolkov.ivan    4    

1

Инструментарий разработчика Нейросети Рефакторинг и качество кода Аналитик Пользователь Руководитель проекта Бесплатно (free)

Железо перестало быть проблемой, и качество ответов немедленно встало в потолок. Дальше пошли три улучшения, каждое из которых выглядело очевидно правильным: свой справочник стандартов, код процедур в поисковом индексе и переписывание вопроса отдельной моделью. Первое работало, но стоило пятнадцать тысяч токенов в каждом запросе. Второе уронило находимость на двадцать процентов. Третье уронило качество с 0,864 до 0,782 и растянуло прогон с 88 секунд до 302. Рассказываю, чем я это померил, почему на глаз ни одно ухудшение не видно и почему добавление правдивой информации регулярно делает поиск хуже.

14.09.2026    703    solbol    0    

3

Рефакторинг и качество кода Нейросети Разработчик 1С:Предприятие 8 Бесплатно (free)

Продолжение статьи «BSL Language Server внутри 1С:EDT: коннектор, которого не хватало». Там мы научили EDT видеть расширенную диагностику BSLLS, а здесь замкнем контур: научим ИИ-агентов автоматически исправлять эти ошибки строго по официальным стандартам разработки 1С.

02.09.2026    1878    malikov_pro    2    

6
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. sansys 76 09.12.18 13:41 Сейчас в теме
Спасибо!!! Сегодня вычищу весь хлам и не только MRG )))
9. TerveRus 12.12.18 09:51 Сейчас в теме
(1) а еще можно заменить везде Истина на Ложь, вот будет веселуха))
NicolasCage; МСН; Dementor; DataReducer; +4 Ответить
2. script 128 09.12.18 20:22 Сейчас в теме
Блин, все гениальное - просто.
Я так понимаю аналогичный скрипт можно сделать и при помощи OneScript.
3. triviumfan 103 10.12.18 00:13 Сейчас в теме
Было: https://infostart.ru/public/269771/
Лично я не понимаю, зачем так объединять и потом проводить ревью, ведь можно сразу во время сравнения правильно (вручную) настроить объединение модуля.
1cNBL; Yakud3a; Dementor; SkyHunter; alest; oleg-x; for-elenak; d4rkmesa; +8 Ответить
4. webester 26 10.12.18 08:02 Сейчас в теме
Зачем это делать? Очень удобно после обновления найти все конфликты мержей и проконтролировать, что там именно то, что тебе нужно. или я чего-то не понял? Конечно удобнее как говорят в (3) не допустить конфликта, но если уж прошел, то сделать как надо вручную.
triviumfan; +1 Ответить
5. Sloth 402 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 402 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 106 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 94 13.12.18 06:35 Сейчас в теме
Для объединения текстов использую Araxis Merge. Там настраивается всё, в т.ч. с помощью регулярных выражений. Объединение в 1С это что-то непонятное, проще уж копи-пастом.
Aleskey_K; VovkaPutin; +2 Ответить
13. Voladnas 13.12.18 11:55 Сейчас в теме
Мракобесие и джаз
Для отправки сообщения требуется регистрация/авторизация