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

Конфигурация , с точки зрения пользователя, это программное решение, заточенное под определенные бизнес-задачи. Например, есть конфигурация 1С:Управление торговлей, для автоматизации торговых операций. С точки зрения разработчика, бизнес-логика данного программного решения реализована с помощью конкретных объектов конфигурации - электронных форм ввода, отчетов, справочников, алгоритмов etc. Эти объекты сгруппированы в виде дерева конфигурации :

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

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

После внесения изменений, их нужно "спроецировать" на ту конфигурацию, в которой хранятся непосредственно бизнес-данные - на конфигурацию базы данных . Например, новый реквизит после добавления в основную конфигурацию не будет сразу доступен для пользователя, так как конфигурация базы данных еще не изменена. Для обновления конфигурации базы данных нажимаем F7; после обновления конфигурация базы данных становится равной основной конфигурации:

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

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

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

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

Вопрос 01.02 экзамена 1С:Профессионал по платформе. В каком объекте содержится редактируемая пользователем информация?

  1. Объект конфигурации
  2. Объект встроенного языка
  3. Объект информационной базы
  4. Верны ответы 1 и 3
  5. Верны все варианты
Правильный ответ третий. Каждому объекту конфигурации (например, документу РеализацияТоваровУслуг) соответствует произвольное число экземпляров объектов информационной базы (например, конкретные документы Реализация товаров и услуг, оформляемые по каждому факту продажи товаров).

Вопрос 01.05 экзамена 1С:Профессионал по платформе. Выберите верный набор ассоциаций "Объект" - "тип файла":

  1. внешняя обработка -"epf", внешний отчет – "erf", конфигурация – "сf"
  2. внешняя обработка -"ert", внешний отчет – "mxl", конфигурация – "pfl"
  3. внешняя обработка -"ert", внешний отчет – " erf", конфигурация – "cfu"
  4. внешняя обработка -"epf", внешний отчет – "mxl", конфигурация – "cfu"

Правильный ответ первый. External processor file это расширение внешних обработок, External report file расширение внешних отчетов, Configuration file это расширение файла конфигурации.

Вопрос 01.21 экзамена 1С:Профессионал по платформе. Из чего состоит конфигурация?

  1. Объекты конфигурации
  2. Объекты встроенного языка
  3. Объекты информационной базы
  4. Верны ответы 1 и 3
  5. Верны все варианты
Правильный ответ первый, из объектов, просмотреть которые можно в дереве конфигурации.

Вопрос 01.27 экзамена 1С:Профессионал по платформе. Какие объекты используются при описании алгоритма?

  1. Объекты конфигурации
  2. Объекты встроенного языка
  3. Объекты информационной базы
  4. Верны ответы 1 и 3
  5. Верны все варианты
Правильный ответ второй, алгоритмы описываются встроенным языком.

Вопрос 01.34 экзамена 1С:Профессионал по платформе. Какую конфигурацию можно изменять интерактивно в конфигураторе?

  1. Основная конфигурация
  2. Конфигурация базы данных
  3. Конфигурация поставщика
  4. Внешние конфигурации
Правильный ответ первый. Конфигурация поставщика остается неизменной, конфигурация базы данных приводится к конфигурации поставщика после процедуры обновления.

Вопрос 01.57 экзамена 1С:Профессионал по платформе. Произвольная классификация объектов конфигурации осуществляется с помощью …

  1. свойства Комментарий у объекта конфигурации
  2. создания реквизита "Классификация"
  3. с помощью объекта конфигурация Подсистемы
  4. верны варианты 1 и 2
  5. верны все варианты
Правильный ответ третий - объекты могут быть объединены в подсистему, каждый объект может входить в одну или несколько подсистем.

Вопрос 01.63 экзамена 1С:Профессионал по платформе. Сколько информационных баз может быть с одной и той же конфигурацией?

  1. Только одна
  2. Только две (рабочая и демонстрационная)
  3. Неограниченно
  4. Определяется комплектом поставки прикладного решения
  5. Определяется в настройках конфигурации
Правильный ответ третий - программное решение может быть растиражировано сколь угодно широко.

Вопрос 01.64 экзамена 1С:Профессионал по платформе. Сколько конфигураций обязательно должно существовать в прикладном решении?

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

Вопрос 03.13 экзамена 1С:Профессионал по платформе. В каком случае в окне конфигурации доступно изменение метаданных?

  1. Всегда
  2. Только для основной конфигурации
  3. Для основной конфигурации и конфигурации базы данных
  4. Для конфигурации поставщика
  5. Для конфигурации открытой из файла

В этой инструкции нетипового обновления измененной 1с 8.3 я не буду описывать базовые вещи, такие как: как открыть конфигуратор, что такое конфигурация БД, конфигурация поставщика и основная конфигурация. Об это и там много написано, и вы можете самостоятельно найти эту информацию на просторах интернета. Я постараюсь описать основные моменты процесса обновления и на что нужно обратить внимание.
Я взял для примера нетиповую бухгалтерию 3.0.51.22 и покажу как обновить ее до версии 3.0.53.29. На платформе версии 8.3.10.2561 (нет большой разницы на более старых платформах, просто раньше окошко сравнения выглядело чуть иначе).
Скажу сразу, будет много картинок и мало текста. Я считаю, что визуально проще запоминать процесс, чем читать море текста.

1. Проверить соответствие конфигурации БД и конфигурации поставщика.

Для этого вам нужно


При совпадении можете смело переходить к пункту 2.

1а. Постановка конфигурации на поддержку.

Если у вас отличаются версия БД и версия конфигурации поставщика, то вам нужно удалить текущую конфигурацию все через то же меню: конфигурация – поддержка – настройка поддержки. И нажать кнопку «Снять с поддержки».


После «недолгого» ожидания снимаем все галочки. Ну и можно убрать галку «Сохранять настройки автоматически». И жмем выполнить.


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

2. Обновление базы.

Теперь можно переходить к обновлению.

Скажу сразу обновление делать нужно ТОЛЬКО через меню «Конфигурация» - «Поддержка» - «Обновить конфигурацию…».
Использовать «Сравнить, объединить с конфигурацией из файла…» НЕЛЬЗЯ!!! При использовании этого механизма вам при следующем обновлении придется переходить к пункту 1а. Поэтому давайте не будем так делать и создавать себе (или тому, кто будет в следующий раз обновлять базу) лишние проблемы.


Далее выбираем файл обновления.
Хотелось бы сказать про обновление через несколько релизов. 1С не рекомендует обновлять на CF файлы, сразу прыгая через несколько релизов. Это нужно делать последовательно. В теории это правильно.
Объясню почему так не рекомендуют делать. Если программисты хотят удалить какой-либо реквизит, то они сначала приписывают к нему приставку «удалить», потом через несколько релизов удаляют его. И могут в каком то релизе перенести из него информацию. Вот пропуская этот релиз, вы можете потерять данные. Но на практике за свои уже лет 10 работы с базами 1с у меня был такой один случай. Когда почему-то разработчики решили перенести данные с перечисления на справочник. При том ничем критичным это для меня не закончилось. Я написал простую обработку, которая перекинула эти данные из архива в текущую базу. Никакого повторного обновления делать не пришлось.
Можете кидать в меня камни, но я всегда обновляю базу через cf файлы на несколько релизов.
Итак мы нажали обновление, нам выскочило сообщение с какой на какую версию будет произведено обновление. Мы нажимаем ОК.



Ожидаем, пока пройдет сравнение объектов.
Далее нам нужно внизу из списка выбрать пункт «показывать только дважды измененные свойства.


Так же хочу сказать по старые версии, раньше это был флажок.


Итак, мы теперь видим гораздо меньше объектов.


Если у вас пусто, то вам несказанно повезло, и вы можете смело нажимать кнопку «выполнить» и считайте обновление закончено. Ну у нас не все так просто, поэтому пробегусь по основным объектам.


Первое что хочется сказать. Ни в коем случае не переключайте режим объединения. Он должен стоять «Взять из новой конфигурации поставщика». Иначе вы получите в базе мусор с комментарием MGR.
Никаких кнопок «показать различия в модулях…» !
Жмем именно на значок шестеренки рядом с модулем


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


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


И вот ту можно уже посмотреть изменения через «показать различия в модулях…». Т.к. мы не собираемся ничего менять, мы только хотим посмотреть, что было изменено.


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


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


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


Копируем его из верхнего окна и вставляем в нижнее окно.


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


Отлично. Теперь пробежавшись по всем объектам можно снять галку «сохранять настройку автоматически» и потом «выполнить»


На сообщение «Существуют объекты, измененные в основной конфигурации по отношению к старой конфигурации….. При обновлении будет выполнено замещение этих объектов! Выполнить?» Нажимаем смело ДА.


В следующем окне оставляем галки, как показано на картинке. И никак иначе!!! Должны стоять обе галки – «объекты редактируются с сохранением поддержки». Нажимаем ОК.


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

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

Перед нам откроется окно настройки поддержки конфигурации.

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

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

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

Распечатываем

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

Нажав на кнопку "ОК" мы получим подробный отчет об изменениях в типовой конфигурации в формате табличного документа, который платформа 1С:Предприятие позволяет сохранить в другие форматы (например, таблица Excel).

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

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

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

Обновления, выпускаемые фирмой 1С, направлены на исправление багов и внесение изменений и дополнений, обусловленных законодательством. Для новых, недавно вышедших на рынок конфигураций, характерен выпуск большого количества обновлений первого типа. Для конфигураций с функционалом, направленным, в основном, на составление регламентной отчетности, например «1С: ЗУП», «1С:Бухгалтерия», выходит больше обновлений второго типа.

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

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

  • Поиск и сопоставление измененных объектов;
  • Внесение обновлений из нового релиза;
  • Внесение ранее произведенных изменений, «затертых» на предыдущем этапе;
  • Проверка совместимости и работы процессов.

Разница будет заключаться во времени реализации: если доработок много, процесс соответственно займет больше времени, потребует сосредоточенности, внимания и ручной проверки.

Рассмотрим для среды 1С обновление нетиповой конфигурации на примере «1С:Управление торговлей» (релиз 2014 года) на следующий доступный релиз.

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

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

Выгрузка информационной базы завершена:


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


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


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


Окно со справочной информацией, инструкцией и очередностью обновлений:



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


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


Остались только объекты, подходящие под это условие:


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


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

*Давайте разберемся в терминологии:

  • «Основная конфигурация» – нетиповая конфигурация, которую необходимо обновить;
  • «Старая конфигурация поставщика» – типовая конфигурация, из которой устанавливались обновления в последний раз;
  • «Новая конфигурация поставщика» – та, на которую обновляем сейчас.


Настраиваем форму отчета и выгружаем его. Список внесенных ранее изменений зафиксирован:


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


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


Принимаем список изменений:*


*Если кнопка «Принять» неактивна, следует запустить «Тестирования исправлений»:



Запускаем через F5 отладку и получаем подтверждение легальности обновлений:



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