Повышение производительности обновления типовых конфигураций 1С с использованием внешних программ Платформа 1С: Предприятие 8.3.6 • Внешние программы • План вебинара • Для чего нужны внешние программы • Внешние программы – установка и настройка; • Что такое двустороннее и трёхстороннее объединение; • Демонстрация и сравнение внешних программ по возможностям, стоимости и удобству в работе; • Примеры использования внешних программ для увеличения эффективности выполнения обновлений типовых конфигураций 1С. • Для чего нужны внешние программы • Типовая система сравнения и объединения модулей 1С • Плюсы • Автоматически объединяет при единичном изменении модуля (демонстрация); • Фильтр по «дважды изменённым» модулям (демонстрация); • Умеет объединять по процедурам (демонстрация); • Возможность редактировать конечный текст модуля в процессе сравнения и объединения (демонстрация); • Минусы • В автоматическом режиме воспринимает модуль, как единое целое; • Объединение по процедурам только в ручном режиме; • Не поддерживает трёхстороннее объединение. • Для чего нужны внешние программы • Внешние программы • • Плюсы • Поддерживают трёхстороннее объединение; • Поддерживают автоматическое трёхстороннее объединение; • Воспринимают модуль, не как единое целое, а как набор строк программного кода; • Возможность редактировать конечный текст модуля в процессе сравнения и объединения. Минусы • Не умеют объединять по процедурам; • Иногда зависают при определении конфликтов; • В неавтоматическом режиме требуют открытия окна сравнения и объединения, даже если нет конфликтов; • Автоматический режим есть не во всех внешних программах; • Платформа 1С: Предприятие пока не умеет запускать внешние программы в автоматическом режиме на этапе первичного сравнения и объединения; • Для чего нужны внешние программы • Оптимальная комбинация возможностей стандартного сравнения и объединения от 1С и внешних программ • • Стандартная подсистема • При «единичном» изменении модуля (или только в текущей конфигурации или только в новой конфигурации поставщика) – не будут открываться дополнительные окна; • При сложном сравнении и объединении по процедурам – если поставщик сильно изменил состав и названия процедур и функций и внешние программы не справляются с таким набором изменений; • При зависании внешних программ; Внешние программы • Во всех остальных случаях. То есть, если модуль был изменён и в текущей конфигурации и в новой конфигурации поставщика, то по умолчанию пробуем внешнюю программу (демонстрация). • Для чего нужны внешние программы • Выявление ошибок • В процессе выполнения обновления, как с использованием стандартной подсистемы, так и с использование внешних программ, возможно появление ошибок; • Для поиска таких ошибок необходимо выполнить полную проверку модулей. • Внешние программы • Справочная информация на сайте its.1c.ru Описание настройки параметров внешних программ http://its.1c.ru/db/v83doc#bookmark:dev:TI000001471 Описание механизма сравнения и объединения конфигураций http://its.1c.ru/db/v83doc#bookmark:dev:TI000001537 • Внешние программы • Список внешних программ, для которых в платформе 1С:Предприятие 8.3.6 имеются настройки по умолчанию • Araxis Merge ссылка для загрузки • DiffMerge ссылка для загрузки • KDiff3 ссылка для загрузки • TortoiseMerge ссылка для загрузки • Perforce P4Merge ссылка для загрузки Для использования внешних программ в процессе «Сравнение/объединение» конфигуратора, необходимо их загрузить, установить и указать пути к исполняемым файлам. • Внешние программы • Указание путей к исполняемым файлам внешних программ после загрузки и установки • В конфигураторе выбрать пункт меню «Сервис» «Параметры» • Внешние программы • Указание путей к исполняемым файлам внешних программ после загрузки и установки • Нажать на кнопку «Изменить…» • Внешние программы • Указание путей к исполняемым файлам внешних программ после загрузки и установки • Указать путь к исполняемому файлу • Внешние программы • Указание путей к исполняемым файлам внешних программ после загрузки и установки Правильные пути к исполняемым файлам: Araxis Merge DiffMerge KDiff3 TortoiseMerge Perforce P4Merge C:\Program Files\Araxis\Araxis Merge\Compare.exe C:\Program Files\SourceGear\Common\DiffMerge\sgdm.exe C:\Program Files\KDiff3\kdiff3.exe C:\Program Files\TortoiseSVN\bin\TortoiseMerge.exe C:\Program Files\Perforce\p4merge.exe • Внешние программы • Настройка процесса сравнения и объединения Режим «Взять из…», «Объединить с приоритетом…» – установить в «Стандартный способ» позволит использовать стандартные возможности там, где 1С справляется полностью автоматически и не открывать лишние окна; Режим «Объединить с помощью внешней программы» – установить выбранную внешнюю программу, например «Perforce P4Merge» Выбранную внешнюю программу можно поменять, если нужно, прямо в процессе сравнения и объединения; Устанавливать по умолчанию – не устанавливать! Т. к. приведёт к открытию лишних окон в тех случаях, когда 1С справляется автоматически. • Внешние программы • Что такое двустороннее объединение Есть текущий программный код конфигурации: Есть новый программный код в новом релизе: А = 2; Б = 4; В = 7; А = 3; Б = 5; В = 7; Алгоритм простого объединения работает с двумя вариантами программного кода: Текущий программный код конфигурации Новый программный код поставщика Сценарий работы алгоритма двустороннего объединения при изменении программного кода поставщика: Текущий программный код конфигурации (А = 2;) отличается от нового программного кода поставщика (А = 3;) и нужно принимать решение, как именно применить новый программный код поставщика • Внешние программы • Что такое трёхстороннее объединение Программный код в релизе 1.0.1.1: Мы изменили одну строку программного кода: Программный код в релизе 1.0.1.2: А = 1; Б = 4; В = 7; А = 2; Б = 4; В = 7; А = 3; Б = 5; В = 7; Алгоритм трёхстороннего объединения работает с тремя вариантами программного кода: Старый программный код поставщика Текущий программный код конфигурации Новый программный код поставщика Два сценария работы алгоритма трёхстороннего объединения при изменении программного кода поставщика: 1. Текущий программный код конфигурации (Б = 4;) идентичен старому программному коду поставщика (Б = 4;), значит никто ничего не менял, можно применить новый программный код поставщика (Б = 5;) 2. Текущий программный код конфигурации (А = 2;) отличается от старого программного кода поставщика (А = 1;), значит были внесены изменения, и нужно принимать решение, как именно применить новый программный код поставщика (Б = 5;) • Внешние программы • Преимущество трёхстороннего объединения перед двусторонним Трёхстороннее объединение: А = 1; Б = 4; В = 7; изменение есть изменений не было изменений не было А = 2; Б = 4; В = 7; решение принимает программист решение принимается автоматически ничего менять не нужно А = 3; Б = 5; В = 7; Двустороннее объединение: Десятки, сотни и тысячи строк программного кода в новых релизах поставщика! А = 2; Б = 4; В = 7; решение принимает программист решение принимает программист ничего менять не нужно А = 3; Б = 5; В = 7; • Внешние программы • Примеры на демонстрационной базе • При наличии конфликта; • При отсутствии конфликта; • С использованием стандартных возможностей; • Сложные случаи. • Внешние программы • Что такое автоматическое трёхстороннее объединение Программный код в релизе 1.0.1.1: Мы изменили одну строку программного кода: Программный код в релизе 1.0.1.2: А = 1; Б = 4; В = 7; А = 2; Б = 4; В = 7; А = 1; Б = 5; В = 7; Плюсы: Если при выполнении обновления программного кода конфликты не обнаружены, то внешняя программа не будет открывать окно для контроля программиста, а выполнит объединение полностью самостоятельно. Минусы: Текущий сценарий использования внешних программ на платформе 1С:Предприятие 8.3.6 нивелирует возможности автоматического трёхстороннего объединения. • Внешние программы • Сценарии выполнения обновления конфигурации на новый релиз после открытия окна сравнения Порядок С использованием трёхстороннего объединения С использованием автоматического трёхстороннего объединения 1. Устанавливаем отбор по дважды изменённым объектам – в текущей конфигурации и в конфигурации поставщика Устанавливаем отбор по дважды изменённым объектам – в текущей конфигурации и в конфигурации поставщика 2. Сверху вниз просматриваем все изменённые объекты Сверху вниз просматриваем все изменённые объекты 3. Для всех изменённых объектов (формы, реквизиты, модули, функциональные опции, критерии отбора и т.д.) уделяем внимание каждому конфликту. Для модулей используем внешние программы. Для всех изменённых объектов, кроме модулей (формы, реквизиты, функциональные опции, критерии отбора и т.д.) уделяем внимание каждому конфликту. Внешние программы пока не используем. Запускаем процесс объединения Запускаем процесс объединения и, если внешняя программа не смогла выполнить объединение автоматически, решаем конфликты в поочерёдно открывающихся окнах 4. • Внешние программы • Сравнение возможностей внешних программ • По данным сайта its.1c.ru http://its.1c.ru/db/v83doc#bookmark:dev:TI000001471 ОС Сравнение двух файлов Объединение двух файлов Трёхстороннее объединение Автоматическое трёхстороннее объединение Платная Araxis Merge Windows + + + - + (30 дней демо) DiffMerge Windows + - + - - KDiff3 Windows Linux + + + + - TortoiseMerge Windows + - +* - - Perforce P4Merge Windows Linux + - + - - Стандартное сравнение и объединение 1С Windows Linux + + - - - Внешняя программа • Внешние программы • Сравнение возможностей внешних программ • По данным сайта its.1c.ru http://its.1c.ru/db/v83doc#bookmark:dev:TI000001471 Внешняя программа ОС Краткое описание Выводы Windows Платная программа. Продемонстрировать уже не получится, т.к. прошли 30 дней бесплатного использования. Не использовать. DiffMerge Windows Конфликты определяет корректно, но неудобный и неочевидный интерфейс, с которым не удалось разобраться. Регулярно требует пройти регистрацию. Не использовать. KDiff3 Windows Linux Конфликты определяет верно (100%). Работоспособность и удобство использования на 4 по пятибалльной шкале Использовать TortoiseMerge Windows Хотя и позволяет выполнять трёхстороннее объединение, но делает это каким-то хитрым способом (описание способа, англ.) Не использовать. Perforce P4Merge Windows Linux Конфликты определяет почти всегда верно (90%). Работоспособность и удобство использования на 5 по пятибалльной шкале. Araxis Merge Использовать • Внешние программы • Примеры на реальных базах • Объединение модуля стандартным способом и с помощью внешних программ (KDiff3 и Perforce P4Merge) – сравнение; • Зависание при работе с конфликтами.