THE BELL

Есть те, кто прочитали эту новость раньше вас.
Подпишитесь, чтобы получать статьи свежими.
Email
Имя
Фамилия
Как вы хотите читать The Bell
Без спама

Итак, мы хотим внести изменения в типовую конфигурацию 1С:Бухгалтерия предприятия, редакция 3.0 (3.0.9.4).

1. Идем в настройку поддержки: Меню Конфигурация -> Поддержка -> Настройка поддержки;

2. Включаем возможность изменения нажатием одноименной кнопки. Соглашаемся с предупреждением о невозможности в дальнейшем автоматического обновления;

3. Настройку правил поддержки оставляем по умолчанию, т.е. «Объект поставщика не редактируется» и жмем ОК. Теперь возможность изменения включена, но ни один объект конфигурации не доступен для редактирования;

4. Если мы собираемся изменить, например, документ РеализацияТоваровУслуг, в настройке поддержки находим этот документ. Если требуется добавить реквизит, придется изменить правило поддержки самого объекта документ РеализацияТоваровУслуг. Меняем правило поддержки на «Редактируется с сохранением поддержки», при этом правила подчиненных объектов документа РеализацияТоваровУслуг (реквизиты, табличные части, формы и т.д.) остаются без изменений, т.е. «Не редактируется». Реквизит мы, вероятно, захотим разместить на форме, поэтому меняем правило поддержки формы нашего документа на «Редактируется с сохранением поддержки»;

5. Теперь мы можем добавить реквизит, разместить его на форме и изменить модуль документа. Добавляем «МойРеквизит», тип Булево. Далее открываем форму документа и перетаскиваем «МойРеквизит» из «Объекта» на форму, а в модуль документа в процедуре «ПриЗаписи» добавляем строки:

// >>> <<<

Выделяем добавленные строки «фирменным» комментарием , это облегчит там жизнь при обновлении (в идеальном случае описываем зачем всё это было сделано);

6. Обновляем конфигурацию базы данных, чтобы в режиме «Предприятие» отразились все сделанные нами доработки. Проверяем в режиме Предприятие все что мы сделали. На форме документа «Реализация товаров и услуг» появился флажок «Мой реквизит», а при сохранении документа получаем сообщение о состоянии этого флажка.

Вот мы и внесли нехитрые доработки в типовую конфигурацию.

Теперь попробуем обновить нашу уже нетиповую конфигурацию, сохранив в обновленной конфигурации все сделанные доработки.

1. Возвращаемся в меню Конфигурация -> Поддержка и выбираем «Обновить конфигурацию». Выбираем файл обновления или доверяем платформе его найти. Нажимаем «Готово» и продолжаем обновление;

2. Поскольку у нас включена возможность изменения, обновление проходит не в автоматическом режиме, а запускается механизм сравнения и объединения конфигураций.
К этому моменту в нашей базе содержится уже три конфигурации: Основная конфигурация (та которую мы можем изменять), Конфигурация поставщика (абсолютно типовая) и конфигурация базы данных. Конфигурация базы данных в сравнении и объединении не участвует, зато участвуют две другие: «Основная конфигурация», «Конфигурация поставщика» и третья — «Новая конфигурация поставщика».
Итак, перед нами список отличий Основной конфигурации от Новой конфигурации поставщика. В этом списке для нас самое интересное — это объекты которые мы дорабатывали, и не просто дорабатывали мы, но и дорабатывал поставщик, в них нужно оставить все то что было сделано нами, но и привнести новшества придуманные поставщиком типовой конфигурации.
Мы помним, что в сравнении участвовало три конфигурации (Основная, Поставщика старая и Поставщика новая), платформа дает нам возможность увидеть те объекты, которые изменили и мы и поставщик.
Применим фильтр (жмем кнопку «Фильтр») и устанавливаем флажок «Показывать только дважды измененные свойства». Нажимаем ОК и видим, что в новом релизе поставщик тоже внес свои изменения в документ РеализацияТоваровУслуг. Анализируем изменения в обновлении. В нашем случае мы можем просто установить режим объединения для модуля документа РеализацияТоваровУслуг и его формы: «Объединить с приоритетом новой конфигурации поставщика». Если бы мы оставили режим по умолчанию («Взять из новой конфигурации поставщика»), то все сделанные нами доработки были бы утрачены;

3. Отключим фильтр и убедимся, что снят флажок с добавленного нами реквизита «МойРеквизит». Такой реквизит в конфигурации поставщика отсутствует, если поставим флажок — потеряем реквизит, а вместе с ним и данные, которые в нем хранились, «МойРеквизит» заменится «отсутствующим реквизитом»;

4. Нажимаем «Выполнить». Настройку правил поддержки оставляем по умолчанию и жмем ОК;

5. После того как процесс объединения завершится, ищем в дереве Основной конфигурации документ РеализацияТоваровУслуг. Убедимся что «МойРеквизит» никуда не исчез, посмотрим на форму — и там он на месте, заглянем в модуль. В нем в виде комментариев вставляются все отличия модуля неприоритетной конфигурации фрагменты текста. В начало каждой строки вставляемого фрагмента текста добавляется двойной слеш (два символа косой черты), что в тексте программного модуля делает эти строки закомментированными. Кроме того, для облегчения дальнейшей работы с результирующим текстом, в него вставляются специальные строчки-комментарии.

Измененные фрагменты обрамляются сверху и снизу строками

//{{MRG[ <-> ]

добавленные

//{{MRG[ <-- ]

удаленные

//{{MRG[ --> ]

В нашем модуле мы видим что платформа все наши труды закомментировала, но хоть не удалила:

//{{MRG[ <-> ] // // >>> // Сообщить(ЭтотОбъект.МойРеквизит); // // <<< //}}MRG[ <-> ]

Уберем лишние комментарии:

// >>> Сообщить(ЭтотОбъект.МойРеквизит); // <<<

6. Обновим конфигурацию базы данных. Посмотрим на результат, запустив режим Предприятие. Видим что после обновления все доработки сохранились и функционируют так же как и до обновления, а номер релиза изменился на 3.0.10.8.

Нетиповая конфигурация 1С, это когда: 1) конфигурация 1С написана с нуля самостоятельно программистом, 2)конфигурация 1С была типовой, но в нее добавили изменения, даже если добавили один реквизит.

В данной статье мы рассмотрим, как необходимо корректно обновлять конфигурации 1С, а также несколько приемов по мягкому изменению типовых конфигураций, т.е. правильному изменению, которое не будет влиять на возможность дальнейшего обновления.

Для того, чтобы внести любые изменения в типовую конфигурацию 1С, необходимо разблокировать изменение типовой конфигурации 1С, а в некоторых случаях «снять ее с поддержки».

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

Прежде чем выполнять обновление настоятельно рекомендуется сделать резервную копию базы данных, сделать это можно через меню Администрирование/Выгрузить информационную базу.

Существует 2 варианта обновления: а) Обновление 1С через поддержку (вызов через диалог Конфигурация/Поддержка/Обновить конфигурацию) и б) через Сравнение объединение с конфигурацией из файла. Следует обратить особое внимание, что разница между этими двумя пунктами в том, что в первом случае обновляется и основная конфигурация и конфигурация поставщика, а при сравнении объединении конфигураций обновляется только основная конфигурация, конфигурация поставщика остается старой. Таким образом наиболее рекомендуемым вариантом является обновление через Обновить конфигурацию. Для обновления через Поддержку конфигурации используются файлы поставки поставщика CF или CFU, которые можно найти поиском, в каталоге шаблонов, указав путь в Интернете, или напрямую указать путь к нужному файлу на жестком диске.

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

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

Итак, в результате получится список объектов, дважды измененных при доработке типовой конфигурации и в новой конфигурации поставщика. Если согласиться с обновлением, то сделанные ранее доработки в этих объектах будут утеряны. Поэтому по каждому объекту необходимо принять решение о том, каким образом он будет обновлен. На этом этапе следует выполнить предварительное сравнение исключительно для того, чтобы уменьшить объем работ в дальнейшем. Оценка не точная быстрая - "на глазок". Если изменений в объекте больше в новой конфигурации поставщика, то оставляем экземпляр объекта поставщика. Оставляем галочку. Потом нужно будет перенести изменения из рабочей конфигурации. Если изменений в объекте больше в рабочей конфигурации, то оставляем экземпляр объекта рабочей конфигурации. Снимаем галочку. Затем нужно будет перенести изменения из конфигурации поставщика. С модулями можно поступить немного иначе, т.к. есть возможность сравнивать модули попроцедурно.

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

При выводе меню действий по объекту (например нажатием правой кнопки мыши) мы можем вызвать отчет о сравнении объектов.

Чтобы подтвердить проведенное обновление 1С - нужно выбрать пункт меню Конфигурация/Обновить конфигурацию базы данных.

Чтобы отказаться от обновления 1С – нужно выбрать пункт меню Конфигурация/Вернуться к конфигурации БД.

Несколько правил, которые упрощают будущее обновление конфигураций 1С:

Основное правило обновления 1С: нужно добавлять новые объекты, т.к. при обновлении новые объекты системой не затрагиваются

При изменении текстов модулей желательно также добавлять свои новые процедуры и функции, а из существующих вызывать свои новые

Использование подписок на события, благодаря этому можно дорабатывать типовые механизмы, не изменяя типового кода

Использование типового функционала конфигураций

Программное создание элементов формы (В событии ПриСозданииФормыНаСервере)

Спасибо!

В этой статье будет рассказано про обновление нетиповой конфигурации 1С (редакций 8.2 и 8.3), с сохранением всех изменений внесенных вами (или другими разработчиками) в типовую конфигурацию 1С 8.

Рассмотрим пример обновления конфигурации Бухгалтерия 2.0 с нетиповыми изменениями в модулях, ролях, подписках на события, планах обмена и т.д. Рассмотренные здесь случаи не будут слишком сложными для обновления, при их помощи я лишь покажу методику обновления, что позволит вам разобраться со своими случаями.

Обновление нетиповой конфигурации 1С пошаговая инструкция

Рассмотрим по шагам алгоритм обновления конфигурации 1С 8. Данный алгоритм является универсальным, первые одиннадцать его шагов описывают процесс обновления любой типовой конфигурации 1С 8, а все пункты в совокупности описывают обновление нетиповой конфигурации 1С 8:

  • Скачайте файл обновления конфигурации с сайта users.v8.1c.ru или получите его из любых других доступных источников(например с диска ИТС);
  • Распакуйте и установите файл с обновлением 1С 8 в любую папку на жестком диске;
  • В папке с номером релиза 1С 8 найдите файл 1cv8.cfu — именно этот файл содержит обновления конфигурации;

  • Запустите 1С:Предприятие в режиме Конфигуратор ;
  • Перейдите в меню Конфигурация -> Поддержка -> Обновить конфигурацию .

  • В открывшемся окошке «Обновление конфигурации» устанавливаем флаг на пункте Выбор файла обновления и жмем кнопку Далее (если хотите то можно воспользоваться и первым пунктом Поиск доступных обновлений и поискать файлы обновлений в автоматическом режиме);
  • В поле «Укажите файл обновления» выберите.cfu файл из папки с номером релиза. Заметьте, что обновить конфигурацию базы 1С 8 можно не на любой релиз. Для каждого файла обновления существует список релизов для которых оно предназначено. Поэтому возможно придется устанавливать несколько файлов обновления последовательно;
  • В следующем окне вы увидите описание данного обновления. Также в нем можно посмотреть для обновления каких версий конфигурации предназначен данный файл. Нажмите кнопку Продолжить обновление ;
  • Если данную версию конфигурации невозможно обновить выбранным файлом, то вам будет выдано окошко с подсказкой, какие релизы следует установить;
  • Если выбранный файл подходит для обновления конфигурации, то появится окно с данными о версии обновления. Для продолжения обновления нажмите кнопку ОК;
  • После этого запустится процесс обновления. Если ваша конфигурация типовая, то по его завершении останется только согласится изменить текущую конфигурацию и запустить 1С 8 в режиме Предприятие;
  • Если же вы обновляете конфигурацию с изменениями (нетиповую), то после завершения процесса обновления появится окно сравнения-объединения старой и новой конфигурации.

Обновление нетиповой конфигурации 1С разбор примера

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

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

Для это нажмите расположенную внизу окна кнопку Фильтр , в открывшемся окне установить флаг и нажмите ОК.

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

Для правильного обновления разных объектов метаданных нужен свой подход, поэтому рассмотрим на несложных примерах различные ситуации. Замечу также, что обновление сильно переписанных конфигураций задача сложная и требует максимальной внимательности и сосредоточения.

Обновление общего модуля.

  • Рассмотрим пример: В общий модуль КонтрольВерсииКонфигураци вы внесли следующие изменения:
    • В процедуре ПроверитьВерсиюКонфигурации() закомментировали строку: //ОткрытьФормуМодально("ОбщаяФорма.НерекомендуемаяВерсияКонфигурации", Параметры);
    • Добавили в модуль свою процедуру с именем МояТестоваяПроцедура().

    При обновлении этот модуль изменился, поставив в окне сравнения фильтр по дважды измененным мы увидим, что он попал в список.

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

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

    • Затереть ваши изменения установив типовые. После чего вручную внести затертые изменения в обновленный модуль;
    • Не обновлять модуль и внести типовые изменения вручную.

    Механизмы сравнения конфигураций

    Для сравнения изменений в модуле можно воспользоваться следующими встроенными механизмами окна сравнения-объединения конфигураций:

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






    • . Для сравнения модулей также можно использовать отчет о сравнении объектов. Чтобы вызвать его в окне сравнения щелкните на модуле правой кнопкой мыши выберите пункт В открывшемся окне, в области Формат, установите флаг Подробно. В открывшемся отчете можно увидеть, какие строки модуля изменены и как они выглядят в обоих конфигурациях.


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



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

    Мы разобрали все инструменты необходимые для обновления модуля. Для того, что бы показать их практическое применение рассмотрим по шагам процесс обновления модуля КонтрольВерсииКонфигураци с перечисленными выше изменениями. Обновим модуль двумя способами:

    • Обновим модуль, затерев внесенные в него изменения. Внесем их вручную после обновления;
    • Не будем обновлять модуль. Изменения полученные в обновлении внесем после.

    Первый способ:

      • Перед описанием алгоритма замечу, что мы рассматриваем очень простой пример обновления, для того чтобы описание не заняло очень много места, но процесс обновления в сложном случае состоит из точно таких этапов, хотя и требует большей сосредоточенности и внимательности;
      • Перед обновлением конфигурации создадим текстовый документ. В него мы будем записывать изменения, которые необходимо будет внести вручную, после обновления. Данные в текстовом документе должны быть представлены максимально понятным образом, то есть быть структурированы. В нашем примере будем писать так: 1. Общие модули 1.1 КонтрольВерсииКонфигураци
      • Найдем общий модуль КонтрольВерсииКонфигураци Модуль. Кликнем по нему правой кнопкой мыши и в контекстном меню выберем пункт Отчет о сравнении объектов основной конфигурации со старой. В открывшемся окне поставим флаг Подробно. Также я устанавливаю флаг Выводить в Текстовый документ , потому что так удобней смотреть изменения, но это уже дело привычки. Нажмем кнопку ОК. Открывшийся отчет будет иметь следующий вид:

      • Из отчета видно, что в модуль внесено два изменения (перед каждым новым изменением пишутся номера строк, в которых оно внесено):
        • Изменена строка 34, в основной конфигурации она закомментирована, а в старой конфигурации поставщика нет;
        • Добавлена процедура, в старой конфигурации поставщика на ее месте пусто, а в основной конфигурации она есть. Отчет не закрываем, он нам пригодится;
      • Теперь найдем первое отличие в окне сравнения модулей. Для этого снова кликаем правой кнопкой мыши по ветке Модуль и в контекстном меню выбираем пункт Показать различия в модулях… Так как в окне сравнения модулей не видно номеров строк (глобальной нумерации), то для того чтобы найти первое изменение пролистаем все процедуры в верхней половине окна. Также из отчета мы знаем, что первое изменение связано с изменением строки, поэтому ищем текст выделенный красным цветом. Измененная строка найдется в процедуре ПроверитьВерсиюКонфигурации().

      • Откроем текстовый документ, созданный для записи изменений. Пунктом «1.1.1» запишем там название процедуры, в которой находится изменение. После этого нам надо вписать в него найденное изменение так, что бы мы легко могли найти его в тексте модуля. Для этого я обычно копирую в документ не одну, а сразу несколько строк процедуры, до и после изменений. Но в данном случае процедура маленькая и поэтому достаточно скопировать саму измененную строку. Получится следующая запись: 1. Общие модули 1.1 КонтрольВерсииКонфигураци 1.1.1 ПроверитьВерсиюКонфигурации //ОткрытьФормуМодально("ОбщаяФорма.НерекомендуемаяВерсияКонфигурации", Параметры);
      • Теперь снова откроем отчет о сравнении конфигураций, посмотрим следующее изменение и также найдем его в окне сравнения модулей. На этот раз это добавленная новая процедура. Так как данная процедура полностью отсутствует в старой конфигурации поставщика, то ее текст будет выделен синим шрифтом:

      • Снова откроем текстовый документ, созданный для записи изменений. В пункт «1.1.2» запишем название добавленной процедуры. После этого скопируем туда весь текст добавленной процедуры. 1.1.2 МояТестоваяПроцедура Процедура МояТестоваяПроцедура() Экспорт //Текст процедуры КонецПроцедуры
      • КонтрольВерсииКонфигураци установлен флаг, означающий, что данный модуль следует обновить, затерев все внесенные изменения;
      • Далее необходимо записать в текстовый документ изменения других дважды измененных объектов метаданных. Но так как в данном примере мы рассматриваем конкретный общий модуль, то пропустим этот этап;
      • После того, как работа над дважды измененными объектами выполнена, в окне сравнения / объединения нажимаем кнопку Выполнить;
      • Если появится окно с текстом «Существуют объекты, измененные в основной конфигурации…», нажимаем кнопку Да ;

      • В следующем окне Настройка правил поддержки не меняем никаких настроек, а просто нажимаем кнопку Да ;

      • Последним появится сообщение: «Объединение конфигураций завершено». Жмем кнопку ОК ;
      • Сохраним конфигурацию при помощи меню Файл -> Сохранить , пиктограммы Сохранить (синяя дискета) или сочетания клавиш Ctrl + S ;
      • После того как конфигурация сохранена, восстановим затертые изменения модуля. В дереве метаданных найдем и откроем модуль КонтрольВерсииКонфигураци;
      • Откроем текстовый документ в который занесены изменения данного модуля;
      • В пункте «1.1.1» указана процедура ПроверитьВерсиюКонфигурации, найдем ее в модуле и раскроем;
      • В текстовом документе указано, что следует закомментировать строку: ОткрытьФормуМодально("ОбщаяФорма.НерекомендуемаяВерсияКонфигурации", Параметры);

        Найдем ее в модуле и установим комментарий;

      • В пункте «1.1.2» указана процедура МояТестоваяПроцедура, которую необходимо добавить в модуль. Копируем ее из текстового документа и вставляем в конец модуля;
      • Сохраняем конфигурацию одним из указанных выше способов;
      • Обновление конфигурации на этом завершено, осталось только обновить конфигурацию, воспользовавшись клавишами F5 или F7 или соответствующими пиктограммами, и в режиме 1С:Предприятия подтвердить легальность обновления;

    • Второй способ:
      • Второй способ полностью повторяет первый, за исключением того, что действует он от обратного. Поэтому опишу его кратко;
      • Создаем текстовый документ с такой же структурой;
      • Сформируем отчет Отчет о сравнении объектов новой конфигурации поставщика со старой конфигурацией поставщика;
      • Используя сформированный отчет и окно сравнения модулей выпишем в текстовый документ изменения внесенные новой конфигурацией поставщика;
      • В окне сравнения / объединения конфигураций проверяем, что возле модуля КонтрольВерсииКонфигураци СНЯТ ФЛАГ. Это означает, что данный модуль не будет обновляться;
      • Обновляем конфигурацию, вносим изменения из текстового документа в модуль КонтрольВерсииКонфигураци.

Обновление плана обмена.

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

Рассмотрим по шагам обновление состава плана обмена ПоОрганизации с указанными изменениями:

  • В созданный при обновлении общего модуля текстовый документ добавим новые строки: 2. Планы обмена 2.1 ПоОрганизации
  • Найдем план обмена ПоОрганизации в окне сравнения / объединения, раскроем его до ветки Состав. Замечу, что в плане обмена вами может быть изменен и модуль, его надо обновлять по правилам описанным для общего модуля. В данном случае нас интересует именно обновление состава плана обмена;
  • Как и в случае с общим модулем, состав плана обмена можно либо обновить, после этого добавив свои изменения вручную, либо не обновлять, добавив типовые изменения вручную. Если ваших изменений в составе больше, чем типовых, то обновлять лучше вторым способом, если меньше то первым. Посмотреть каких изменений больше можно при помощи все тех же отчетов:
  • В нашем примере типовых изменений больше, поэтому выпишем в текстовый документ наши изменения: 2. Планы обмена 2.1 ПоОрганизации - ***Справочники - -->Справочник.ВнешниеОбработки
  • Проверяем, что в окне сравнения / объединения установлена галочка возле плана обмена ПоОрганизации;
  • Сохраняем конфигурацию;
  • После того как конфигурация сохранена, восстановим затертые изменения плана обмена. В дереве метаданных найдем и откроем план обмена ПоОрганизации;
  • В пункте «2.1» текстового документа указан справочник ВнешниеОбработки, найдем его в дереве метаданных состава плана обмена и установим флаг, означающий участие справочника в обмене;

  • Сохраним и обновим конфигурацию;

Обновление подписки на событие.

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

Рассмотрим по шагам обновление состава источников подписки на событие с указанными изменениями:


Обновление ролей в 1С

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

Но все же часто бывают случаи когда роль уже изменена, и не один раз, а разбираться зачем и почему времени нет. Поэтому рассмотрим пример: в типовой роли Бухгалтер для справочника НалоговыеОрганы добавлены права на чтение и просмотр, при обновлении набор прав роли также был изменен.

Рассмотрим обновление роли по шагам:

  • Найдем роль Бухгалтер в окне сравнения / объединения, раскроем ее до ветки Права ;
  • В данном примере в роли всего одно изменение, но обычно бывает не так. Поэтому роль намного проще не обновлять, а типовые изменения вносить вручную;
  • Сформируем Отчет о сравнении объектов новой конфигурации поставщика со старой конфигурацией поставщика . Обычно в нем очень много информации, но далеко не вся нужна для обновления:
  • Остаются либо добавленные новые объекты метаданных, либо изменения прав для старых:
    • Добавленные объекты выглядят так: - -->

      При добавлении нового объекта в отчете не выводятся данные о том, какие права необходимо для него установить. Поэтому после обновления можно либо посмотреть их расстановку в конфигурации поставщика, либо установить все доступные.

    • Измененные объекты выглядят так: - ***Справочники - ***НалоговыеОрганы - ***Права - ***Чтение - ***Значение -->Разрешено <--Запрещено - ***Просмотр - ***Значение -->Разрешено <--Запрещено

      При этом подробно указано, какие права изменились;

  • В нашем примере из полезной информации в отчете о сравнении находится лишь одна строка, добавляем ее в текстовый документ: 4. Роли 4.1 Бухгалтер - -->Объект - РегламентированныйОтчетСтатистикаФорма11НА

    При этом можно указать какой это объект метаданных, но в данном случае и так видно, что отчет;

  • В окне сравнения / объединения снимем галочку возле роли Бухгалтер;
  • После этого необходимо записать в текстовый документ изменения других дважды измененных объектов метаданных и выполнить обновление (процесс подробно описан выше);
  • Сохраняем конфигурацию;
  • После того как конфигурация сохранена, необходимо внести типовые изменения в роль Бухгалтер . В дереве метаданных найдем и откроем данную роль;
  • В пункте «4.1» текстового документа сказано, что в роль добавлен объект РегламентированныйОтчетСтатистикаФорма11НА, найдем его в дереве метаданных роли, установим галочки на правах Использование и Просмотр;

  • Сохраним и обновим конфигурацию.

На этом статья про Обновление нетиповой конфигурации 1С завершена. Если после прочтения у вас остались вопросы — смело задавайте их в комментариях! По желанию читателей в следующей статье я могу рассказать о других интересных и сложных аспектах обновления нетиповой конфигурации 1С 8.

Режим объединения можно установить для каждого объединяемого объекта. Существует два вида режима: «Взять из загружаемой конфигурации» и «Объединять...», во втором случае обычно указывается приоритет конфигураций при объединении.

Выбор «Взять из загружаемой конфигурации» означает, что объект конфигурации будет добавлен, если он новый, или замещен, если он измененный. Причем переносится вся структура объекта, модули, описания, формы. При этом приоритет однозначно отдается загружаемой конфигурации.

При выборе метода «Объединять ...» происходящее при объединении конфигураций зависит от установленного приоритета.

Если из загружаемой конфигурации необходимо взять только новое и максимально сохранить старое, необходимо выбрать «Объединить» с приоритетом основной конфигурации. В этом режиме добавляются только новые объекты.

Тексты

Для модуля формы влияние выбора приоритета на результирующий текст можно проиллюстрировать следующим примером.

Объединение свойств объектов . Для объектов, значения свойств которых определяются простым указанием в палитре свойств (например, Синоним, Комментарий ), зависимость результата объединения от приоритета и наличия значений представлена в таблице:

Значение в основной Значение в загружаемой Приоритет конфигурации Результат (значение выбирается из...)
Задано Задано Приоритет основной основной
Задано Не задано основной
Не задано Задано загружаемой
Задано Задано Приоритет загружаемой загружаемой
Задано Не задано основной
Не задано Задано загружаемой

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



Макеты объединяются следующим образом:

Приоритет Результат
Приоритет основной Макет основной конфигурации остается
Макет загружаемой конфигурации добавляется, но, если его имя совпадает с именем макета основной конфигурации, оно изменяется (например, «Макет» -> «Макет!»); таким образом, по этому имени в объединенной конфигурации будет вызываться макет основной конфигурации, но макет загружаемой тоже не потерян.
Приоритет загружаемой Макет загружаемой конфигурации добавляется
Макет основной конфигурации остается, но, если ее имя совпадает с именем макета загружаемой конфигурации, имя макета основной конфигурации изменяется (тем самым, макет основной конфигурации не потерян, но вызываться будет макет из загружаемой конфигурации).

Элементы управления, располагаемые в форме , не отображаются в окне «Объединение конфигураций» и, поэтому при объединении Конфигуратор производит анализ состава формы, определяет:

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

Новые элементы управления добавляются в форму. Совпадающие элементы (по именам) в основной форме будут заменены (заменяются свойства, размеры и расположение), если выбран приоритет загружаемой конфигурации, и оставлены без изменения, если выбран приоритет основной формы.

Свойства элементов управления не объединяются . Элементы управления, имеющие одинаковое имя, но расположенные на разных страницах форм, при объединении будут присутствовать в форме, независимо от выбранного режима объединения.

Для некоторых объектов (реквизитов объектов) выбор режима объединения может отсутствовать. Так например, для реквизита с базовым типом (например «Число») режим объединения устанавливается только «Взять из загружаемой конфигурации».

Для некоторых объектов выбор приоритетности также может отсутствовать. Например, для свойства Подсистемы можно выбрать режим объединения «Взять из загружаемой конфигурации» и «Объединить». Если выбран режим «Объединить», то при объединении происходит простое объединение указанных подсистем двух конфигураций.

Установка порядка подчиненных объектов

Для видов объектов, которые могут иметь неограниченное число подчиненных объектов (например, подчиненные объекты Реквизиты, Формы, Макеты, Табличные части справочников и документов), в некоторых случаях важен порядок следования объектов в каждой такой группе.

Если в процессе сравнения конфигураций Конфигуратор определил соответствие объектов, входящих в группу, но их порядок в конфигурациях различен, то в графе «Режим объединения и порядок подчиненных объектов» можно указать нужный порядок следования объектов.

Для указания порядка выберите любой подчиненный объект и в третьей графе выберите вариант установки порядка: «Порядок из основной конфигурации» или «Порядок из загружаемой конфигурации».

Выбор порядка действует на все подчиненные объекты данного вида.

Если для выбранного объекта его подчиненные объекты изменены и расположены в другом порядке, то в третьей колонке можно выбрать только порядок. Режим объединения указывается в объекте верхнего уровня с помощью контекстного меню. Например, в обеих конфигурациях для документа «Счет» есть несколько подчиненных объектов типа «Формы». Они изменены и порядок их следования также изменен. Для выбора режима объединения укажите объект более высшего уровня («Формы» или «Счет») и в контекстном меню выберите нужный режим объединения.

Рассмотрим обновление на примере нетиповой конфигурации УПП 1.3 находящейся на поддержке с возможностью изменения с релиза 1.3.61.2 на релиз 1.3.62.1. Так как конфигурация сама по себе довольно тяжелая, то это накладывает некоторые особенности, в частности, не всегда получается открыть в одном конфигураторе несколько окон сравнения конфигурации.

Для обновления я использую две одинаковые копии базы данных старого релиза. В одной из них выполняю подготовку *.cf для обновления, назовем ее, например, for_ updating . Другая база остается не тронутой и служит только как вспомогательная, для сравнения конфигураций, назовем ее base . В принципе, в качестве вспомогательной может использоваться конфигурация рабочей базы.

В базе for_updating выполняем *.cfu нового релиза. Начинается процедура обновления, в результате которой появляется окно обновления.

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

В процессе обновления может появиться окно «Неразрешимые ссылки », нажимаем «Продолжить ». О причинах появления данного окна поговорим ниже.

Появится сообщение о том, что измененные нами объекты будут загружены из новой конфигурации, соглашаемся.

Откроется окно «Настройка правил поддержки » - для новых объектов (верхний раздел) с обеих сторон ставим «Объект редактируется с сохранением поддержки », для существующих объектов поставщика (нижний раздел) во всех четырех местах ставим флаг «Сохранять текущий режим », нажимаем «ОК ».


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

Выполняем «Конфигурация » - «Поддержка » - «Настройка поддержки ». В открывшемся окне выбираем «Сохранить в файл » и сохраняем в *.cf конфигурацию поставщика нового релиза.


Основная конфигурация в том виде, в котором она на данный момент имеется, нам не нужна. Закрываем конфигурацию. «Конфигурация » - «Закрыть конфигурацию ». Отказываемся от сохранения изменений.

В конфигурации для сравнения base запускаем сравнение конфигурации поставщика (старый релиз) и конфигурации поставщика из файла (новый релиз).

Таким образом, мы увидим только те изменения, которые будут выполнены в конфигурации при обновлении на новый релиз.

В базе for_updating снова запускаемобновление конфигурации через поддержку «Конфигурация» - «Поддержка» - «Обновить конфигурацию» , в открывшемся окне выбираем *.cfu нового релиза. Начинается процедура обновления, в результате которой появляется окно обновления.


При нажатии на кнопку «Фильтр » откроется окно «Настройка фильтров просмотра ». В данном окне устанавливаем флаг «Показывать только дважды измененные свойства ».


При обновлении без нашего вмешательства происходит следующее:

  • - объект не изменен нами, изменен в новом релизе - обновляется из нового релиза;
  • - объект изменен нами, не изменен в новом релизе - остается наш объект;
  • - объект изменен нами, изменен в новом релизе - это и есть дважды измененный объект, если ничего не менять - он загрузится из нового релиза.

Таким образом, наиболее пристальное внимание следует уделить именно дважды измененным объектам, их и будем рассматривать.

В данном примере изменено несколько общих модулей, в том числе и общий модуль « УчетНДС ».

По умолчанию в окне обновления показаны отличия основной и новой конфигурации поставщика от старой конфигурации поставщика.



Если посмотреть различия конфигураций в общем модуле «УчетНДС », то мы увидим следующую картину:


Если же сравнить эти модули в базе для сравнения base , то картина будет другая:


Очевидно, что функции «СобратьДанныеДляПечатиИсправленияСчетаФактуры », «СобратьДанныеДляПечатиКорректировочногоСчетаФактуры » и прочие содержат наши доработки, но не меняются при обновлении, а значит, нет смысла тратить время на их просмотр и анализ.


Поэтому, выполняя по процедурное обновление с выделенных процедур и функций можно снять флаги:


Многие скажут, что увидеть отличия старой конфигурации поставщика от новой можно с помощью изменения настройки фильтров просмотра в текущем конфигураторе, не используя сравнение конфигураций в базе base .

Например, так:

Однако, как показывает практический опыт это не так, процедуры и функции все равно отображаются в окне сравнения модулей, даже при установленном фильтре «показывать отличия новой конфигурации поставщика от старой конфигурации поставщика ».

Сделав не большое мысленное усилие, выявим дважды измененные процедуры и функции, только они будут нуждаться в доработках после процесса объединения. С данными процедурами и функциями нужно определиться, что легче:

  • - либо взять процедуру или функцию из новой конфигурации поставщика и потом, после объединения, внести наши доработки;
  • - либо снять флаг обновления, тем самым сохранив наши доработки, и уже потом добавить нужный код из конфигурации поставщика.

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

После того как общие модули были проанализированы и у части процедур сняты флаги обновления, видим, что у модулей теперь установлен режим объединения - индивидуальная настройка:

Двигаемся далее. Среди дважды измененных объектов имеется форма элемента справочника «ОсновныеСредства ». Прежде чем определиться обновлять ли данную форму из новой конфигурации поставщика, нужно выяснить, что по факту меняется при обновлении.

Для этого в базе base с помощью контекстного меню вызовем «Отчет о сравнении объектов…». В открывшемся окне должны стоять все флаги в группе «Объекты».

Мне нравится режим вывода отчета в табличный документ, когда различия показываются графически, но это дело вкуса.

В результате сравнения формы элемента справочника «ОсновныеСредства » видим, что изменения есть только в модуле формы , а изменений в диалоге формы в обновлении нет.

Но так как форма элемента попала в дважды измененные объекты, то наши доработки есть либо в диалоге формы, либо в модуле.

Выполнив аналогичное сравнение в базе for_updating можно увидеть, что доработки есть в диалоге формы.

Причина тому, добавление справочника «ОсновныеСредства » в план видов характеристик «СвойстваОбъектов ». Если обновить форму элемента справочника «ОсновныеСредства » мы получим неразрешимые ссылки, о чем и будет свидетельствовать окно:

В данном случае самым лучшим вариантом будет не обновлять форму элемента справочника «Основные средства » и уже потом добавить необходимый код в модуль формы элемента. В этом случае окно «Неразрешимые ссылки » при обновлении появляться не будет.

Сделаем отступление и представим, что диалог формы элемента справочника «Основные средства » меняется при обновлении на новый релиз, тогда лучшим вариантом было бы обновление формы. Уже потом, после объединения, нужно было бы добавить в форму наши изменения, как в модуль , так и в диалог . Если в модуле много наших доработок и мало от поставщика, то после объединения можно полностью вернуть наш модуль и добавить изменения поставщика.

В этом случае в процессе объединения появилось бы окно «Неразрешимые салки ». Вариантов выбора в данном окне два: 1) «Пометить все для объединения» ; 2) «Продолжить ».

На мой взгляд, правильнее выбирать «Пометить все для объединения ».

В этом случае план видов характеристик «СвойстваОбъектов » будет добавлен как объект для объединения в дереве во вновь открывшемся окне «Обновление …»

Естественно, что после обновления в план видов характеристик «СвойстваОбъектов » нужно будет добавить наши изменения, сделать это лучше с помощью сравнения и объединения с текущей конфигурацией.

Рассмотрим, что произошло бы, если бы мы выбрали «Продолжить » в окне «Неразрешимые ссылки ». В этом случае форма элемента справочника «ОсновныеСредства » стала бы новой, а план видов характеристик «СвойстваОбъектов » остался бы старым. В этом случае у нас затрутся изменения в диалоге формы элемента справочника, а именно на странице «СвойстваИЗначения », смотри рисунок ниже.


Данная проблема тоже не является не преодолимой, если конечно о ней не забывать.

Конечно, лучше всего стараться как можно меньше вносить изменений в диалоги форм , например, создавать реквизиты и кнопки на форме программно.

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

Отдельное внимание хотелось бы уделить по процедурному обновлению форм (часть процедур беру из конфигурации поставщика, а часть нет - индивидуальная настройка). Рассмотрим, как при данном режиме происходит обновление диалога формы в отличие от режима « взять из конфигурации поставщика ».

Пример не имеет отношения к данному обновлению конфигурации, но показателен, поэтому рассмотрим его.

В справочник «Контрагенты » добавлено несколько реквизитов, и они помещены на форму элемента.


При обновлении конфигурации на новый релиз через поддержку будет предложено окно сравнения и объединения конфигурации, в котором можно сделать различные настройки. Сравним несколько вариантов:

1. Флаг обновления формы выставлен, но обновление сделано по процедурно , т.е. по факту выполнена индивидуальная настройка

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

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

2. Флаг обновления формы выставлен, обновление сделано в режиме «Взять из новой конфигурации поставщика »


В данном случае диалог формы элемента полностью приводится в соответствие с диалогом формы элемента поставщика.


Вернемся к обновлению. С модулями объекта и модулями менеджера документов поступаем также как с общими модулями, обновляем их по процедурно. С формами документов поступаем аналогично тому, как поступали с формами справочников.

Отдельно нужно выделить работу с ролями. Не смотря на то, что в примере не требуется обновлять роли поговорить об этом стоит. Рассмотрим самый простой случай, когда в конфигурации поставщика содержится новый объект. В этом случае потребуется обновление роли « Полные права », но данная роль может содержать какие-то созданные нами объекты, например, справочники, документы и прочее.

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


С остальными ролями поступаем аналогично тому, как мы работаем с модулями - если наших изменений больше, то не объединяем роль, после обновления добавляем в нее то, что добавил поставщик в новом релизе.

После того как проработали все дважды измененные объекты в окне обновления нажимаем «Выполнить »


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

В открывшемся окне «Настройка правил поддержки » проверяем, установленные флаги, хотя по умолчанию должны стоять правильно, нажимаем «ОК ».


По окончании процесса объединения сохраняем основную конфигурацию, конфигурацию базы данных пока не обновляем.

Теперь в конфигурацию for_ updating добавляем те минимальные доработки, которые не удалось правильно обновить штатными средствами.

Чтобы удобнее было проконтролировать выполнение данного процесса, в базе base запустим сравнение конфигурации поставщика и основной конфигурации старого релиза.

В базе for_updating сделаем тоже самое. Контролируем дважды измененные объекты, различий быть не должно.

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

Обновление в рабочей базе желательно выполнять с помощью поддержки «Конфигурация» - «Поддержка» - «Обновить конфигурацию». При этом дважды измененные объекты будут загружены из нового релиза, т.е. наши изменения затрутся (конфигурацию не сохраняем!), но потом при объединении с подготовленной конфигурацией мы их восстанавливаем. После этого можно сохранить конфигурацию, обновить конфигурацию базы данных.

THE BELL

Есть те, кто прочитали эту новость раньше вас.
Подпишитесь, чтобы получать статьи свежими.
Email
Имя
Фамилия
Как вы хотите читать The Bell
Без спама