Поиск по этому блогу

вторник, 22 декабря 2015 г.

Как убедиться в том, что измененная типовая конфигурация 1С обновлена успешно?

Как убедиться, что измененную типовую конфигурацию мы обновили успешно и ничего не отвалилилось?
Итак, после обновления у нас есть 4 cf-ника:
  1. ПоставщикСтарая - старая конфигурация поставщика; 
  2. ПоставщикНовая - новая конфигурация поставщика - та, на которую обновляли; 
  3. ОсновнаяСтарая - измененная конфигурация, по сути это ПоставщикСтарая с нашими изменениями; 
  4. ОсновнаяНовая - то, что получилось после обновления ОсновнаяСтарая с помощью ПоставщикНовая. 
Теперь в двух конфигураторах сравниваем попарно:
  1. ПоставщикСтарая и ПоставщикНовая
  2. ОсновнаяСтарая и ОсновнаяНовая
Для каждого сравнения конфигураций формируем полный "Отчет о сравнении объектов..." (для всех объектов конфигурации) в формате "Подробно", с подчиненными объектами метаданных:
 

и сохраняем эти отчеты в текстовые файлы. Эти два текстовых файла сравниваем с помощью любой сравнивалки текста (я использую WinMerge).
Так вот - не считая технической информации, такой как номера строк с изменным/удаленным кодом и т.п., эти файлы НЕ ДОЛЖНЫ ОТЛИЧАТЬСЯ! Потому что оба отчёта показывают одно и то же - разницу, которую добавила в конфигурацию 1С.

После этого сравниваем попарно:
  1. ПоставщикСтарая и ОсновнаяСтарая
  2. ПоставщикНовая и ОсновнаяНовая
Аналогично сохраняем отчеты о сравнении в текстовые файлы и сравниваем эти текстовые файлы. Они тоже НЕ ДОЛЖНЫ ОТЛИЧАТЬСЯ! Потому что оба отчёта показывают одно и то же - разницу, которую добавили в конфигурацию мы.

Если что-то отличается (помимо технической информации) - значит или не накатили какое-то изменение из типовой, или затерли какое-то своё изменение.

P.S. Чтобы убрать из отчетов о сравнении неинформативный хлам (такой как номера строк с изменным/удаленным кодом и т.п.), можно выполнить в текстовых файлах с отчетами следующие замены по регекспам:
1. Заменить:
^(\s*)Объект присутствует только в(.+) конфигурации: \d+ - \d+$
на:
$1Объект присутствует только в$2 конфигурации: N - N

2. Заменить:
^(\s*)Изменено: \d+ - \d+$
на:
$1Изменено: N - N

P.P.S. Эти замены можно выполнить с помощью следующего макроса для Notepad++ (добавить в %appdata%\Notepad++\shortcuts.xml в раздел <Macros>...</Macros>)
<Macro name="&#x041E;&#x0431;&#x0440;&#x0430;&#x0431;&#x043E;&#x0442;&#x043A;&#x0430;&#x041E;&#x0442;&#x0447;&#x0435;&#x0442;&#x0430;&#x041E;&#x0421;&#x0440;&#x0430;&#x0432;&#x043D;&#x0435;&#x043D;&#x0438;&#x0438;" Ctrl="no" Alt="no" Shift="no" Key="0">
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="^(\s*)&#x041E;&#x0431;&#x044A;&#x0435;&#x043A;&#x0442; &#x043F;&#x0440;&#x0438;&#x0441;&#x0443;&#x0442;&#x0441;&#x0442;&#x0432;&#x0443;&#x0435;&#x0442; &#x0442;&#x043E;&#x043B;&#x044C;&#x043A;&#x043E; &#x0432;(.+) &#x043A;&#x043E;&#x043D;&#x0444;&#x0438;&#x0433;&#x0443;&#x0440;&#x0430;&#x0446;&#x0438;&#x0438;: \d+ - \d+$" />
  <Action type="3" message="1625" wParam="0" lParam="2" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="$1&#x041E;&#x0431;&#x044A;&#x0435;&#x043A;&#x0442; &#x043F;&#x0440;&#x0438;&#x0441;&#x0443;&#x0442;&#x0441;&#x0442;&#x0432;&#x0443;&#x0435;&#x0442; &#x0442;&#x043E;&#x043B;&#x044C;&#x043A;&#x043E; &#x0432;$2 &#x043A;&#x043E;&#x043D;&#x0444;&#x0438;&#x0433;&#x0443;&#x0440;&#x0430;&#x0446;&#x0438;&#x0438;: N - N" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
  <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
  <Action type="3" message="1601" wParam="0" lParam="0" sParam="^(\s*)&#x0418;&#x0437;&#x043C;&#x0435;&#x043D;&#x0435;&#x043D;&#x043E;: \d+ - \d+$" />
  <Action type="3" message="1625" wParam="0" lParam="2" sParam="" />
  <Action type="3" message="1602" wParam="0" lParam="0" sParam="$1&#x0418;&#x0437;&#x043C;&#x0435;&#x043D;&#x0435;&#x043D;&#x043E;: N - N" />
  <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
  <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
</Macro>