1с конфигурация поставщика где хранится
Где хранится информация о версии конфигурации поставщика? И как изменить эту информацию?
Возникла проблема при поэтапном обновлении конфигурации. Версия конфигурации поставщика (когда обновляешь конфигурацию) — 1.2.22.1. Просто сведения о программе дают 1.2.24.2. Если поэтапно обновляться, то подцепляемые программой обновления — 1.2.23.2. При этом если в конфигураторе все ок, то в режиме предприятия уже при начале работы программы — ошибки.
Я пришел к выводу, что версия конфигурации поставщика изменена принудительно. Сейчас нужно изменить ее обратно.
Конфигурация — Поддержка — Настройка поддержки
Саму версию ставить можно в свойствах дерева метаданных. Или я не правильно делал?
Константы.НомерВерсииКонфигурации
Метаданные.Версия
Всё это в процедуре ПриНачалеРаботыСистемы прописано в типовых
Конфигурация на поддержке нескольких конфигураций поставщиков
Рассмотрим следующую ситуацию. Пользователю требуется интегрированное решение, сочетающее в себе две достаточно различные функциональности, например торговлю и управление персоналом. Присутствующие на рынке интегрированные решения по каким — либо причинам его не удовлетворяют, но устраивающие его решения по отдельности существуют. Он приобретает эти решения и объединяет их в одну конфигурацию. Конечно, любое объединение двух существенно отличающихся конфигураций (особенно если они разработаны различными поставщиками) это сложный процесс, требующий «ручной» доработки результата «механического» объединения. Нужно постараться не нарушая работоспособности конфигураций объединить функционально аналогичные объекты, присутствующие в исходных конфигурациях. Сам по себе этот вопрос выходит за рамки данной статьи, мы рассмотрим его с точки зрения механизма поставки и поддержки конфигураций.
Пользователь вероятно захочет сохранить поддержку конфигурации поставщика, но какой именно? Можно, конечно, выбрать наиболее важную (объемную, сложную), а последующие обновления в другой конфигурации поставщика интегрировать вручную, но платформа 1С:Предприятие 8 позволяет сохранить поддержку обеих конфигураций поставщика.
Поддержка сопоставленных объектов
При обновлении конфигурации учитываются только те объекты пользовательской конфигурации, которые происходят из конфигурации поставщика, все остальные объекты считаются добавленными пользователем и влияния на процесс обновления не оказывают, поэтому не имеет значения, были они действительно добавлены пользователем или были получены из другой конфигурации поставщика. Интерес представляют сопоставленные объекты двух конфигураций поставщиков. Рассмотрим вопрос как может осуществляться поддержка таких объектов. Для каждой конфигурации поставщика анализируются только ее связи с пользовательскими объектами, то есть если объект пользовательской конфигурации связан так же с объектом другой конфигурации поставщика, это никак не влияет на работу механизма поставки и поддержки. Если пользователь выполнит обновление объекта из первой конфигурации поставщика, то «с точки зрения» второй конфигурации поставщика, это будет выглядеть как обычное пользовательское редактирование. Эта особенность позволяет для одного объекта сохранить поддержку двух (или более) конфигураций поставщика. Естественно, процесс обновления такого объекта требует внимательного контроля, и «ручной» доработки результата, однако механизм поставки и поддержки все равно приносит пользу, хотя бы возможностью сразу получить отчет об изменениях, внесенных поставщиком в новой версии. Оставлять объект на поддержке двух конфигураций не обязательно. Можно сохранить поддержку только одной из них, чья функциональность в данном объекте более важна или более сложна для адаптации. Можно и вовсе снять объект с поддержки обеих конфигураций поставщика, и все дальнейшие обновления производить вручную.
Наличие сопоставленных объектов
Если конфигурация находится на поддержке более одной конфигурации поставщика, существует, как минимум, один сопоставленный объект — это корневой объект конфигурации. Большинство его свойств не оказывает существенного влияния на функционирование конфигурации, и, вполне возможно, будут изменены пользователем. Особую важность представляют модули приложения и, возможно, внешнего соединения. Здесь пользователю придется принимать решение о способе поддержки, но в любом случае обновление этих модулей будет представлять из себя трудоемкий процесс. Это является одной из причин, по которым разработчикам рекомендуется наиболее существенную функциональность выносить в общие модули, а в этих модулях оставлять только вызовы процедур. Следование этому правилу может сильно облегчить задачу пользователя.
Правила поставки и поддержки
Для того, что бы сохранить для сопоставленного объекта поддержку двух конфигураций поставщика, нужно в настройке поддержки обеих установить правило «Редактируется с сохранением поддержки». Если требуется поддержка только одной конфигурации, то в ее настройке следует установить правило «Редактируется с сохранением поддержки», а в настройке другой «Объект поставщика снят с поддержки». Конечно, все эти правила должны быть допустимыми «с точки зрения» правил поставки, установленных поставщиками для данного объекта. Если оба поставщика установили правило «Изменения запрещены», то сопоставить объекты, сохраняя поддержку обеих поставщиков для конфигурации пользователя, невозможно.
Постановка на поддержку
Постановка на поддержку любой конфигурации поставщика может выполняться двумя способами — прямым использованием дистрибутива поставщика или объединением с дистрибутивом с постановкой на поддержку. Очевидно, что для постановки на поддержку двух конфигураций поставщика требуется хотя бы для одной из них использовать второй способ.
Введение в поставку и поддержку конфигураций
Рассмотрим типичную ситуацию. Фирма-поставщик выпускает тиражную конфигурацию. Клиент приобретает ее и адаптирует под свои требования. Через некоторое время поставщик выпускает новую версию, и перед клиентом встает вопрос обновления, то есть интеграции своих изменений с изменениями поставщика. Ручное объединение в подобных случаях очень трудоемко. Требуется составить список всех отличий своей конфигурации от старой конфигурации поставщика и заново внести их в новую версию. Можно делать и наоборот, то есть подготовить список изменений поставщика и внести их в свою конфигурацию, но это ничего не меняет. Многое также зависит от механизма сравнения конфигураций и подготовки отчета различий. В платформе «1С:Предприятие» версии 8 этот механизм был существенно улучшен по сравнению с «1С:Предприятием» версии 7.7, но даже самый лучший и подробный отчет от дальнейшей утомительной ручной работы не освобождает. Механизм поставки и поддержки конфигураций в значительной степени автоматизирует этот процесс.
Общая схема обновления
Подробно рассмотрим ситуацию на примере любого свойства объекта метаданных. Возможны следующие варианты:
| Пользователь | Поставщик | Правило обновления | |
| 1 | Менял | Не менял | Взять из конфигурации пользователя |
| 2 | Менял | Менял | ? |
| 3 | Не менял | Не менял | Взять из конфигурации пользователя |
| 4 | Не менял | Менял | Взять из конфигурации поставщика |
Таблица 1. Правила обновления по умолчанию
Нетрудно заметить, что варианты 1, 3, 4 в большинстве случаев не требуют модифицировать предложенное правило. Самый сложный случай – второй. Здесь нельзя сделать никаких предположений, но можно по крайней мере автоматически определить все такие свойства и предоставить пользователю отфильтрованный список для указания правила в каждом конкретном случае.
Реализация в платформе «1С:Предприятие 8»
Общие понятия
В «1С:Предприятии 8» любая конфигурация может стоять на поддержке одной или нескольких других конфигураций, называемых конфигурациями поставщика. В качестве конфигурации поставщика может выступать конфигурация, созданная командой Конфигурация — Поставка конфигурации — Создать файлы поставки и обновления конфигурации . В результате выполнения этой команды создается файл конфигурации ( cf) . Файл, подготовленный командой Конфигурация — Сохранить конфигурацию в файл , в качестве конфигурации поставщика использовать нельзя. Для того чтобы получить конфигурацию поставщика в виде файла информационной базы (1cd) или файла выгрузки информационной базы (dt), требуется подготовленный вышеописанным способом файл cf загрузить в требуемую информационную базу (возможно, в пустую), выполнив команду Конфигурация — Загрузить конфигурацию из файла . Затем, при необходимости, можно штатными средствами создать файл dt.
Существуют два способа встать на поддержку конфигурации поставщика. Первый — использовать конфигурацию, подготовленную вышеописанным способом (при необходимости внося в нее изменения). Фактически подготовленная конфигурация поставщика находится на поддержке той конфигурации, в которой она была создана. Аналогичный результат достигается через команды Конфигурация — Загрузить конфигурацию из файла и Администрирование — Загрузить информационную базу . Второй способ позволяет поставить на поддержку уже созданную конфигурацию пользователя. Для этого необходимо выполнить команду Конфигурация — Сравнить, объединить с конфигурацией из файла . Если в качестве выбранного файла указывается файл конфигурации поставщика, и конфигурация пользователя уже не находится на ее поддержке, предлагается после объединения встать на поддержку.
Существуют два режима поддержки. Первый — в конфигурацию поставщика не вносятся изменения, она используется как есть. Такой режим возможен только при первом способе постановки на поддержку, и именно в нем конфигурация поставщика находится после ее создания. Все объекты конфигурации в этом случае заблокированы для изменений (в том числе и для добавления новых объектов). Второй режим — конфигурация находится на поддержке с возможностью изменений. Для того чтобы перейти в этот режим, необходимо открыть диалог настройки поддержки командой Конфигурация — Поддержка — Настройка поддержки и нажать кнопку Включить возможность изменения .
Способы обновления конфигурации. Обновление конфигурации может выполняться как с помощью файлов конфигурации поставщика новой версии, так и с помощью специальных файлов обновления конфигурации ( cfu) . Обновление конфигурации с помощью файлов (cf) может выполняться с любой версии (в том числе и более новой, при необходимости отказаться от внесенных изменений). При создании файла обновления поставщик указывает, для каких версий конфигурации он предназначен. Таких версий может быть несколько, но обновление может быть выполнено только с них. Это связано с тем, что файлы обновления включают в себя не всю конфигурацию, а только те изменения, которые существуют между конечной версией и указанными при создании файла обновлениями. Важно отметить, что файлы cfu не поддерживают обновления не только для более ранних версий конфигурации, чем они предназначены, но и для более поздних.
Приведем пример. Если конечная версия «4», а обновление создается только для версии «2», то невозможно будет выполнить обновление не только для версии «1», но и для версии «3». Такое ограничение связано с возможностью «обратных» изменений. То есть представим себе, что при переходе к версии «3» поставщик увеличил длину строки в типе реквизита, а в версии «4» изменил ее обратно. При подготовке обновления «2» — «4» это свойство в файл не попадет (поскольку в этих версиях значения совпадают). Если позволить использовать такой файл для обновления версии «3», то у пользователя окажется неправильная, увеличенная длина строки. Файлы обновления конфигурации имеют минимальный размер не только за счет включения в них только необходимых объектов, но и за счет применяемого в них сжатия данных. Они оптимальны для доставки обновления пользователю по низкоскоростным каналам связи. Обратной стороной является описанная выше меньшая гибкость их применения. С точки зрения дальнейшего процесса обновления применение файлов cf и cfu ничем не отличается.

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

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


В окне ниже мы видим где пишется версия конфигурации поставщика и версия самой конфигурации 1с.

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

Теперь в появившемся окне выбираем второй вариант предложенный системой, это «Выбор файла обновления», нажимаем «Далее».

В новом окне нужно нажать на три точки и выбрать файл с обновлением, версия которого в точности соответствует версии вашей конфигурации. Файл должен быть с расширением (*.cf), то есть быть полной конфигурацией, если у вас файл (*.cfu) то ничего не получится, так как это файл обновления конфигурации, а не файл самой конфигурации.

Теперь наблюдаем окно примерно следующего вида, нажимаем «Продолжить обновление».

На этой странице ничего не меняем, просто жмем ОК.

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

Теперь когда прошло объединение конфигураций мы увидим окно которое представлено ниже, нажимаем «ОК».

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