Процесс обновления доработанных конфигураций 1С, находящихся на поддержке, часто сопровождается необходимостью ручной правки программного кода в окне сравнения и объединения. Одной из неочевидных проблем, с которой сталкиваются даже опытные разработчики, является отсутствие привычного пункта «Копировать» в контекстном меню (при нажатии правой кнопкой мыши) в окнах просмотра исходных текстов. Разберем подробно, почему так происходит и как эффективно переносить фрагменты кода между окнами при настройке объединения модулей.
Проанализируем ситуацию: когда мы открываем окно «Настройка объединения модулей», интерфейс Конфигуратора разделяет экран на три или более областей. Слева обычно отображается текст модуля из основной конфигурации, справа — текст из загружаемого файла (обновления), а снизу — результат объединения. Окна, показывающие исходные тексты (левое и правое), программно защищены от редактирования. В платформе 1С:Предприятие 8.3 это ограничение распространяется и на контекстное меню: разработчики интерфейса посчитали, что раз окно нельзя изменять, то и вызывать меню в нем не требуется.
Однако отсутствие визуальной команды в меню не означает, что текст нельзя скопировать. На уровне операционной системы Windows системный буфер обмена продолжает работать. Рассмотрим основные способы решения этой задачи.
Самый простой и быстрый метод, который подтвердил свою эффективность в ходе обсуждения — это использование стандартных сочетаний клавиш. Несмотря на «пустое» контекстное меню, выделенный текст успешно помещается в буфер обмена.
Если вы привыкли к классическим сочетаниям, которые использовались в ранних версиях ПО, можно также применять Ctrl + Insert для копирования и Shift + Insert для вставки. Эти команды работают в Конфигураторе идентично.
Иногда копировать по две строки вручную неудобно, особенно если изменений много. В этом случае мы можем воспользоваться встроенным механизмом приоритетов. Посмотрим, как это работает по шагам:
//.Для действительно сложных обновлений, когда типовой механизм 1С не позволяет наглядно разрешить конфликты, рекомендуется использовать сторонние утилиты, такие как KDiff3 или P4Merge. Эти программы поддерживают так называемое «трехстороннее сравнение».
Выясним, в чем преимущество этого подхода. Система сравнивает три файла: вашу текущую базу, новую базу поставщика и «базовую» версию (тот код, который был общим для обеих веток до внесения изменений). Это позволяет программе автоматически понять, какие строки добавили вы, а какие — вендор, и объединить их без вашего участия.
Чтобы подключить внешнюю утилиту в Конфигураторе, выполните следующие действия:
kdiff3.exe).Разберем несколько приемов, которые помогут вам меньше заниматься ручным копированием и быстрее ориентироваться в коде:
ОбщегоНазначения или других объемных объектов.КонецПроцедуры..txt и сравнить их в любом удобном редакторе (например, VS Code или Notepad++), а затем вставить итоговый результат обратно в 1С.Рассмотрим ситуацию, когда вам нужно видеть не только различия, но и контекст использования переменных в других частях модуля. Окно объединения блокирует основной интерфейс Конфигуратора. В этом случае профессиональные разработчики часто используют «второй Конфигуратор»:
Запустите еще один экземпляр 1С и откройте в нем файл конфигурации (.cf), из которого вы делаете обновление, или копию базы. Это позволит вам свободно перемещаться по всем объектам, использовать глобальный поиск и полноценно копировать любые фрагменты кода через правую кнопку мыши, не ограничиваясь рамками окна сравнения.
Проанализировав все способы, можно сделать вывод: хотя отсутствие команды «Копировать» в меню выглядит как ошибка интерфейса, использование Ctrl + C и Ctrl + V полностью решает проблему. Для более глубокой работы стоит один раз настроить KDiff3, что сэкономит часы времени при последующих обновлениях крупных программных продуктов, таких как 1С:ERP или 1С:Управление торговлей.