В процессе разработки в 1С иногда возникают ситуации, требующие быстрых и точных действий. Одна из таких — случайное подключение расширения конфигурации не к тому хранилищу. В конфигураторе появляется восклицательный знак, сигнализирующий об отличиях, но при этом сама база данных еще не обновлена и работает со старой версией расширения. Разберем по шагам, как безопасно откатить это действие и вернуть все в исходное состояние.
Проанализируем ситуацию: вы подключили расширение к хранилищу, из которого загрузилась другая его версия. Основная конфигурация расширения (та, с которой вы работаете в конфигураторе) теперь отличается от конфигурации базы данных (той, что реально исполняется). Наша задача — отменить загрузку из хранилища и вернуть основную конфигурацию к состоянию конфигурации БД.
Несмотря на кажущуюся сложность, решение довольно простое и состоит из двух шагов. Этот метод является штатным и безопасным, если вы не применяли изменения к базе данных (не нажимали F5 или F7).
Хранилище конфигурации -> Отключиться от хранилища. Этот шаг отсоединит расширение от репозитория, но изменения, загруженные из него, пока останутся в конфигураторе.
Вернуться к конфигурации БД. Здесь кроется важный нюанс, который часто вызывает вопросы: эта команда является контекстно-зависимой.
Это означает, что ее действие зависит от того, какое окно или какой объект в конфигураторе активен в данный момент. Чтобы команда применилась именно к расширению, убедитесь, что:
После этого перейдите в главное меню Конфигурация -> Конфигурация базы данных -> Вернуться к конфигурации БД. Платформа применит команду к активному объекту — в нашем случае, к расширению. В результате все непримененные изменения, включая загруженную из хранилища версию, будут отменены. Конфигурация расширения в конфигураторе вернется к тому состоянию, которое было в базе данных до ошибочного подключения.
В ходе обсуждения подобных проблем часто возникает вопрос: а не относится ли команда Вернуться к конфигурации БД только к основной конфигурации? Давайте разберем этот момент подробнее, чтобы полностью развеять сомнения.
Действительно, исторически эта команда чаще всего применялась для основной конфигурации. Однако в современных версиях платформы 1С:Предприятие 8 она корректно работает и для расширений. Механизм прост: система определяет, с какой конфигурацией (основной или расширения) вы работаете в данный момент, и применяет действие к ней.
Рассмотрим практический пример, который вызвал вопросы на форуме: что произойдет, если после отключения от хранилища добавить в расширение новый объект, например, справочник?
В этом случае команда Вернуться к конфигурации БД также сработает идеально. Она отменит все изменения, которые еще не сохранены в базу данных. Это включает в себя не только версию, загруженную из хранилища, но и только что созданный вами справочник. Почему? Потому что его еще нет в "конфигурации базы данных". Команда возвращает состояние "как в БД", а в БД этого справочника еще не существует. Таким образом, этот метод является универсальным для отмены любых непримененных правок в расширении.
Помимо прямого отката подключения, полезно знать и о других командах, которые могут пригодиться в схожих ситуациях.
Если при подключении к хранилищу вы не только загрузили изменения, но и успели захватить какие-либо объекты расширения для редактирования, их нужно освободить. Если изменения в них еще не были помещены в хранилище, можно воспользоваться командой Отменить захват в хранилище. Это действие снимет с вас блокировку объекта и вернет его локальную версию к той, что хранится в репозитории.
Если у вас есть сомнения в работоспособности текущей версии расширения (например, после неудачного обновления из хранилища) и вам нужно срочно запустить базу без него, можно его временно деактивировать. Для этого:
Конфигурация -> Расширения конфигурации.Это позволит запустить систему в пользовательском режиме, как будто расширения нет. Важно понимать, что само расширение и его структуры данных (если они есть) не удаляются из базы. Это удобный способ для диагностики и временного решения проблем.
Это крайняя мера, к которой стоит прибегать, если другие способы не помогли. Внимание! Если ваше расширение добавляет собственные таблицы данных (справочники, документы и т.д.), то при его удалении из конфигурации все данные из этих таблиц будут безвозвратно утеряны. Перед таким шагом обязательно сделайте резервную копию информационной базы.
В заключение отметим, что механизм работы с расширениями и хранилищем в 1С достаточно гибок. Главное — понимать контекст выполняемых команд и не спешить применять изменения в базу данных, если вы не уверены в своих действиях.