Методы не найденные в модулях обеих конфигураций

Сопоставление объектов при сравнении конфигураций

Правила сопоставления объектов

Для сопоставления объектов при объединении конфигурации в 1С:Предприятии 8 используются свойство "Имя" объекта метаданных и его внутренний идентификатор. Однако в различных вариантах сравнения алгоритм сопоставления объектов разный. Прежде чем подробно описать различные варианты, сначала опишем правила изменения внутреннего идентификатора. Идентификатор в пределах одной конфигурации никогда не изменяется. Идентификатор не изменяется при выгрузке конфигурации в cf или dt файлы (включая файлы поставки cf и обновления cfu ). Идентификатор не изменяется при использовании механизма групповой разработки (в процессе перемещений между конфигурацией и хранилищем). Идентификатор всегда изменяется при копировании объекта, в том числе в процессе объединения конфигураций. Поясним на примере. Создаем новую конфигурацию. Выполняем команду " Конфигурация – Сравнить, объединить с конфигурацией из файла. ". Программа обнаружит что текущая конфигурация пустая и предложит выполнить полную загрузку (аналогично команде " Конфигурация – Загрузить конфигурацию из файла "). Если согласится на предложенный вариант, то в результате все объекты сохранят свои идентификаторы. Если же отказаться и выполнить обычное объединение, то все объекты идентификаторы поменяют, хотя логически получатся две одинаковые конфигурации.

Теперь рассмотрим алгоритмы сопоставления объектов. Существуют три варианта.

  1. Сравнение произвольных конфигураций. Выполняется сопоставление по имени объекта. Если для каких-то объектов пару найти не удалось, выполняется сопоставление по идентификатору.
  2. Сравнение родственных конфигураций. Имеются ввиду конфигурации, про которые можно точно утверждать, что они являются различными версиями одной и той же конфигурации (примеры – сравнение основной конфигурации с конфигурацией базы данных или с конфигурацией хранилища). Выполняется сопоставление только по идентификатору объекта. Имя объекта не используется.
  3. Сравнение с конфигурацией поставщика. Выполняется сопоставление по идентификаторам, но при этом идентификаторы не обязательно должны быть одинаковы.

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

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

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

Читайте также:  Можно ли зарядить телефон в макдональдсе

Влияние сопоставления объектов на скорость сравнения конфигураций

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

  1. Среди сопоставленных объектов нет пар с различными идентификаторами.
  2. Среди несопоставленных объектов нет возможных пар с одинаковыми идентификаторами.

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

Замечания по методике использования механизма

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

Удаление объектов поставщика

Рассмотрим варианты удаления объекта поставщика.

Удаление пользователем

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

Удаление поставщиком

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

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

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

Как в нетиповой конфигурации 1С выполнить обновление.

Работаем с 1С:8

Общие понятия

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

В базе данных (БД) содержится до трёх разновидностей конфигураций:

  • непосредственно база данных — с ней работают логические алгоритмы;
  • рабочая (так называемая основная, КонфигОР) — которую мы периодически изменяем;
  • конфигурация поставщика (КонфигП — на её основе создаются пользователем и рабочая, и конфигурация БД.

Если программа сбрасывается с поддержки — от поставщика её уже не будет. Однако тогда неизбежно повышение трудозатрат на обновление. Рассмотрим обновление нетиповой конфигурации 1С. Примером будет платформа УПП (Управление производственным предприятием).

Сведение

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

Сравнение версий

Проводим сверку номеров версий (рабочей и поставленной). Первая проверяется в «Конфигурация»/«Открыть»/«Правка»/«Свойства». В разделе «Разработка/Версия». Вторая в «Конфигурация»/«Поддержка»/«Настройка поддержки»/«Версия»:

При совпадении номеров можно переходить к разделу Получение файла через обновление.

Читайте также:  Мсс 6012 что это

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

Сохранение конфигурации (рабочей)

Сохраним КонфигОР в некий файл с именем, например, work.cf. Для этого выбираем «Конфигурация»/«Сохранить…».

Получение файла поставщика

Для сведения КонфигОР с КонфигП нужен cf-файл из дистрибутива поставщика (той же версии). По умолчанию он будет в C:/Program Files/1cv81/tmplts. Проверим наличие нужного cf-файла в таблице шаблонов. Что делать, если нет нужного файла требуемой версии конфигурации поставщика? Тогда нужно сформировать пустую БД из старой, обновить её до требуемой версии и уже потом использовать.

Получение файла через обновление

Для выполнения update cf-файла КонфигП выбирается в меню команда: «Конфигурация/Поддержка/Обновить…/Выбор файла/Готово/Выполнить» (Последовательно на картинках):

Сталкиваемся с проблемой — «Обнаружены ссылки, помеченные на удаление».

Для решения её нужно снять пометку на удаление с объекта в configuration поставщика. Потом после удаления повторно выполняем сравнение — нажимаем кнопку «Обновить» в окошке обновления.

Восстановление настроек

Часть утерянных настроек восстанавливается методом объединения с сохранённым ранее файлом work.cf. Для этого выбираем «Конфигурация/Сравнить, объединить… файла».

Сохранение и корректировка

Для сохранения КонфигОР и обновления базы данных в пункт меню «Конфигурация» выбираем «Обновить…БД». Здесь встречаем новую проблему:

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

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

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

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

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

Подготовка баз

По результатам сведения готовим две идентичные базы. Первая (основная) — это наш искомый результат. Вторая же (вспомогательная) — для выполнения подготовительных действий. В случае с файловым вариантом просто копируем их в каталог и подключаем к списку ИБ, с клиент-серверным — делаем выгрузку/загрузку.

Сравнение

После открытия обеих БД Конфигуратором выполним их трёхстороннее сравнение. Используем для этого файл новой КонфигП — «Конфигурация/Поддержка/Обновить…/Выбор файла…/Готово»:

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

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

Проведём предварительную оценку только лишь для уменьшения работ в последующем. Если изменений элемента больше содержится в новой КонфигП — оставляем объект поставщика. Ставим галочку. Переносим изменения из КонфигОР. Если изменений элемента больше содержится в рабочей configuration — оставляем экземпляр объекта КонфигОР. Снимаем галку. Перенесём изменения из КонфигП. Модули нужно сравнивать попроцедурно. Для этого нажимаем кнопку как на рисунке:

Расставляем галочки для указания процедур и функций на замену или удаление:

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

Последующие сравнения выполняем снова во вспомогательной базе. Находим ранее внесённые изменения дополнительным сравнением старой КонфигП с КонфигОР — «Конфигурация/Сравнить…»:

Аналогично сравниваем старую КонфигП с новой. Если файла новой нет, — его теперь можно взять из основной базы.

Итак, дважды изменённые объекты получены. В основной базе получена практически готовая configuration. В ней нужно разобраться с дважды изменёнными элементами.

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

Читайте также:  Музыка для бумбокса в роблокс

В сравнительном отчёте различающиеся данные даются в виде списка, из которого не видно какие типы данных добавлялись/удалялись. Если количество строк отчёта достигает двухсот, то процесс «ручного» сравнения представляется довольно трудоёмким (около пятидесяти часов).

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

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

Дальнейшая инструкция действий выглядит так.

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

Работаем с 1С 7.7

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

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

Рекомендуется выполнять update на быстродействующем ПК с большим объёмом оперативки. При её недостатке 1С может отказаться отрабатывать часть функций и «зависнуть». Большой объём виртуальной памяти эту проблему не решает.

Создание архивной копии

Для этой цели нужно воспользоваться опцией: «Администрирование/Сохранить данные…». Удобно указывать имя архива, совместив его с датой создания (например, ГГММДД.zip).

Подготовка каталогов

Для работы потребуется шесть файлов конфигураций (1cv7.md):

  1. «РабочийНовый» для подготовки обновления (результирующий md-файл);
  2. «РабочийСтарый» по отслеживанию изменений при сравнении и для переноса настроек в ТипНовый_2;
  3. Типовая (старая) «ТипСтарый_1». На её основе ранее была создана рабочая.
  4. Типов. (прежняя) «ТипСтарый_2». Для отслеживания изменений фирмы 1С в новой типовой версии;
  5. Тип. (новая) «ТипНовый_1». Доработки фирмы 1С в новой версии;
  6. «ТипНовый_2» для сложных объектов.

И пять запущенных конфигураторов (все кроме «ТипНовый_1»).

Первоначально каталоги попарно одинаковы:

  • «РабочийНовый» и «РабочийСтарый»;
  • «ТипСтарый_1 и ТипСтарый_2»;
  • «ТипНовый_1» и «ТипНовый_2».

Объединение элементов

Сперва проводим сравнение между 3 и 2, 4 и 5, 1 и 6. Для этого каждой из первых в паре выбрать пункт «Конфигурация/Объединение…» и указать файл метаданных 1cv7.md второго в паре. На экране отразится форма с деревом изменённых элементов. Далее необходимо провести анализ результатов попарного сравнения 3 с 2 и 4 с 5. Оставить для объединения элементы в обновляемых платформах (1 и 6), в которых были изменения от фирмы 1С (4 с 5), но не были отражены в 3 и 2. 1 и 4 нужно объединить в режиме замещения.

Прочие

Сюда можно отнести план счетов и пользовательские интерфейсы. Если в плане счетов были изменения, то его нужно обновлять в режиме «Объединение объектов» РабочийНовый вместе с ТипНовый_2. После объединения интерфейса проверяется наличие ошибок: дублирование пунктов меню, дублирование панелей инструментов, установка признаков для панелей инструментов «Расположение с новой строки».

Загрузка изменённой платформы

Загрузка выполняется по сети или на сервере (предпочтительнее). Сначала монопольно обеспечивается доступ к БД. А через режим конфигуратора потом загружается база. Перед проведением загрузки и после неё выполняется архивация данных (как описано в самом начале раздела). Далее нужно следовать инструкциям файла UPDATE.TXT. После окончания загрузки все каталоги, кроме РабочийНовый, можно удалить.

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

Оставляйте комментарии, пишите о своём опыте в обновлении 1С.

Очередь просмотра

Очередь

  • Удалить все
  • Отключить

Хотите сохраните это видео?

  • Пожаловаться

Пожаловаться на видео?

Выполните вход, чтобы сообщить о неприемлемом контенте.

Понравилось?

Не понравилось?

Текст видео

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

Вы можете поддержать развитие канала, отправив денежку на этот кошелек:
https://money.yandex.ru/to/4100131574.

Мои контакты:
ВКонтакте: vk.com/ilyaleontyev
Фэйсбук: facebook.com/illeontev

С удовольствием добавлю вас в друзья при условии, что вы не будете меня грузить своими рабочими вопросами 🙂

Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock detector