Переход с версии ПРОФ на Базовую — это технически сложная процедура, так как фирма «1С» официально не предусматривает штатного механизма «понижения» версии программного продукта. Зачастую пользователи сталкиваются с тем, что после такого перехода обновления начинают длиться часами, возникают странные диалоговые окна, а автоматическое обновление через интернет перестает работать. Разберем подробно, почему это происходит и как привести базу в нормальное рабочее состояние.
Проанализируем ситуацию: в версии ПРОФ конфигурация может быть изменена (находиться на поддержке с возможностью редактирования). Базовая же версия по условиям лицензирования должна быть строго типовой и находиться на «замке» (полная поддержка). Если переход был выполнен методом «сравнения и объединения», внутренняя структура базы сохраняет признаки версии ПРОФ.
Рассмотрим подробнее механизм обновления. Когда база находится на полной поддержке (символ «серого замка» в дереве конфигурации), система просто замещает старые объекты новыми из файла обновления. Если же база находится на «частичной поддержке» (желтый кубик), при каждом обновлении включается механизм сравнения и объединения. Программа анализирует каждый объект, пытаясь понять, нужно ли сохранять ваши «изменения». Этот процесс требует колоссальных ресурсов и времени, что и приводит к многочасовым ожиданиям.
Прежде чем приступать к исправлению, посмотрим на текущий статус конфигурации. Для этого в Конфигураторе выберем пункт меню Конфигурация — Поддержка — Настройка поддержки. Обратим внимание на значки рядом с объектами:
Если мы уверены, что нам не нужны никакие доработки и мы хотим использовать чистую типовую конфигурацию, выполним следующий алгоритм действий. Важно: перед началом любых манипуляций обязательно создайте резервную копию базы данных!
Справка — О программе и зафиксируем номер версии (например, 3.0.145.26).cf именно Базовой версии того же самого релиза. Его можно получить, создав пустую базу из дистрибутива базовой версии или выгрузив из имеющейся здоровой базы через Конфигурация — Сохранить конфигурацию в файл.Конфигурация — Поддержка — Настройка поддержки. Нажимаем кнопку Снять с поддержки. После этого дерево конфигурации станет доступным для полного редактирования, а значки пропадут.cf базовой версии. Система выдаст предупреждение о том, что конфигурация будет полностью заменена. Соглашаемся.F7.Проанализируем результат: после этих действий в окне «Настройка поддержки» напротив корня конфигурации и всех объектов должен снова появиться «замок». Теперь обновления будут проходить в штатном автоматическом режиме.
Рассмотрим еще один важный технический нюанс. В Базовой версии 1С существует жесткое ограничение: в справочнике Организации может быть только одна запись. При переносе данных из ПРОФ-версии часто возникает ситуация, когда в базе оказывается две организации (например, основная и какая-нибудь «пустая», созданная системой по умолчанию).
Если в базе будет больше одной организации, Базовая версия может заблокировать работу или выдавать ошибки при запуске. Перед тем как окончательно ставить базу на поддержку, убедитесь, что справочник Организации вычищен и содержит строго один элемент.
Посмотрим на ситуацию со стороны платформы. 1С активно использует кэширование метаданных для ускорения работы. После «хакерского» перехода с ПРОФ на Базовую в кэше могут остаться старые идентификаторы объектов. Выясним, как их удалить:
%AppData%\1C\1Cv8\%LocalAppData%\1C\1Cv8\5f8e22...).Это гарантирует, что система «забудет» о своей принадлежности к версии ПРОФ и начнет работу с чистого листа.
Если метод с загрузкой cf не помогает или база ведет себя нестабильно, рассмотрим самый надежный, хоть и трудоемкий способ — перенос данных через универсальный обмен. Посмотрим на алгоритм:
ВыгрузкаЗагрузкаДанныхXML.Проанализируем код или условия успешности этого метода: важно, чтобы в базе-приемнике не было создано ни одного документа или записи до момента загрузки, иначе возникнут конфликты уникальных идентификаторов (GUID).
// Пример логики проверки количества организаций перед переходом
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ КОЛИЧЕСТВО(*) КАК Колич ИЗ Справочник.Организации";
Результат = Запрос.Выполнить().Выгрузить();
Если Результат[0].Колич > 1 Тогда
Сообщить("Внимание! В базе более одной организации. Переход на Базовую версию невозможен.");
КонецЕсли;
Соблюдение этих правил позволит вам не только восстановить работоспособность программы, но и обеспечит корректное получение обновлений в будущем без лишних временных затрат.