← На главную
В процессе сопровождения и обновления типовых конфигураций на платформе 1С:Предприятие 8 специалисты иногда сталкиваются с крайне неприятной ситуацией. Сразу после успешного завершения обновления в режиме Конфигуратора, при первом же запуске информационной базы в пользовательском режиме (1С:Предприятие), программа неожиданно закрывается, зависает или перезагружается. Происходит это обычно в момент появления или сразу после закрытия диалогового окна с подтверждением легальности получения обновления.
В этой статье мы подробно проанализируем причины возникновения этой проблемы на примере конфигурации «Управление торговлей», редакция 10.3, выясним, почему стандартные механизмы платформы дают сбой, и рассмотрим детальный алгоритм восстановления работоспособности базы данных, даже если у вас не оказалось под рукой свежей резервной копии.
Почему происходит аварийное завершение работы системы?
Главная причина такого поведения кроется в критической ошибке, допущенной в процессе выбора дистрибутива обновления. Разберем ситуацию подробнее. Для конфигурации «Управление торговлей 10.3» (как и для многих других решений 1С) существуют технологически разные версии поставки:
- ПРОФ (профессиональная) версия — полнофункциональная конфигурация, поддерживающая многопользовательский режим, ведение учета по нескольким организациям в одной базе и допускающая любые изменения структуры метаданных (открытая конфигурация).
- Базовая версия — специализированная поставка с жесткими ограничениями: работа только одного пользователя, учет только по одной организации, полная невозможность изменения конфигурации (она жестко стоит на поддержке без возможности редактирования).
Если администратор или программист по ошибке пытается обновить рабочую базу версии ПРОФ файлом обновления от Базовой версии, система частично позволяет выполнить это действие в Конфигураторе, особенно если конфигурация была частично снята с поддержки. В результате такого некорректного обновления происходит следующее:
- Нарушается целостность метаданных. Базовая конфигурация «накладывается» на структуру ПРОФ.
- Полностью «слетает» или заменяется некорректной конфигурация поставщика. База теряет связь со своим исходным дистрибутивом ПРОФ.
- При первом запуске в режиме «1С:Предприятие» платформа инициирует стандартные процедуры проверки лицензионности и легальности полученного обновления. Поскольку встроенные механизмы проверки базовой версии и версии ПРОФ кардинально различаются, при обращении к защищенным объектам метаданных возникает критическая ошибка платформы (Access Violation или системный сбой), которая приводит к экстренному закрытию (крашу) приложения. При этом пользователь видит лишь то, что программа «перезагружается» или мгновенно закрывается после окна подтверждения легальности.
Ситуация осложняется, если у пользователя отсутствует архив базы данных. В этом случае просто «откатиться» назад не получится, и базу придется реанимировать вручную. Рассмотрим пошаговый план спасения информационной базы.
Шаг 1. Проверка физической и логической целостности базы данных
Поскольку информационная база закрывалась некорректно и аварийно, в самом файле базы данных (для файлового варианта это файл 1Cv8.1CD) могли образоваться внутренние логические или физические повреждения таблиц. Нам необходимо исключить этот фактор перед началом восстановления конфигурации.
Выполним следующие действия:
- Полностью закроем все запущенные процессы 1С:Предприятия на компьютере.
- Перейдем в каталог, где установлена текущая версия платформы 1С. Обычно исполняемые файлы находятся по пути:
C:\Program Files\1cv8\[Номер_Версии_Платформы]\bin\ или C:\Program Files (x86)\1cv8\[Номер_Версии_Платформы]\bin\.
- Найдем и запустим утилиту тестирования физической целостности файлов базы данных —
chdbfl.exe.
- Перед запуском проверки обязательно скопируем файл вашей базы данных
1Cv8.1CD в отдельную безопасную папку! Это защитит нас от потери данных, если утилита применит необратимые исправления.
- В поле «Имя файла БД» укажем путь к нашему рабочему файлу
1Cv8.1CD.
- Установим флаг «Исправлять обнаруженные ошибки» и нажмем кнопку «Выполнить».
- Дождемся окончания процесса. Если утилита найдет и исправит ошибки, это первый шаг к успешному восстановлению.
Шаг 2. Получение эталонного конфигурационного файла (CF) версии ПРОФ
Чтобы вернуть базу на корректную поддержку и восстановить правильную структуру метаданных, нам потребуется чистый файл конфигурации (расширение .cf, а не файл обновления .cfu) именно той версии и релиза, на который мы пытались обновиться (например, для УТ это релиз 10.3.49.1 ПРОФ).
Для его получения пройдем следующие этапы:
- Зайдем на официальный портал поддержки пользователей «1С:Обновление программ» (releases.1c.ru) под своими учетными данными ИТС.
- Найдем в списке программных продуктов конфигурацию «Управление торговлей», редакция 10.3. Обратите внимание, что нам нужна именно ПРОФ-версия, а не базовая!
- Скачаем полный дистрибутив нужного релиза (в данном случае 10.3.49.1) — нам нужен именно дистрибутив для установки новой конфигурации, а не просто файл обновления.
- Установим шаблон конфигурации на компьютер. По умолчанию шаблоны устанавливаются в папку
%APPDATA%\1C\1cv8\tmplts\.
- Запустим стартер 1С и добавим новую (пустую) информационную базу. Выберем вариант «Создание информационной базы без конфигурации...» или создадим ее на основе только что установленного шаблона УТ 10.3.49.1 ПРОФ.
- Запустим созданную пустую базу в режиме Конфигуратора.
- В главном меню выберем пункт
Конфигурация -> Открыть конфигурацию.
- После открытия дерева метаданных выберем пункт меню
Конфигурация -> Сохранить конфигурацию в файл....
- Сохраним файл под понятным именем, например,
ut_10.3.49.1_prof.cf в любую удобную папку на диске. Теперь у нас есть эталонный файл конфигурации поставщика. Полностью закроем пустую базу.
Шаг 3. Снятие сломанной базы с некорректной поддержки
Теперь вернемся к нашей поврежденной рабочей базе. Нам необходимо разорвать связь с ошибочно установленной базовой конфигурацией поставщика.
- Откроем поврежденную рабочую базу в режиме Конфигуратора.
- Откроем окно конфигурации через меню
Конфигурация -> Открыть конфигурацию.
- Перейдем в раздел управления поддержкой: меню
Конфигурация -> Поддержка -> Настройка поддержки.
- В открывшемся окне мы увидим, что правила поддержки нарушены или ведут на базовую версию. Чтобы очистить эти некорректные связи, нажмем кнопку «Снять с поддержки».
- Система выдаст предупреждение о том, что после этого действия автоматическое обновление станет невозможным. Соглашаемся и подтверждаем действие. Наша конфигурация перейдет в состояние «не находится на поддержке».
- Обязательно сохраним изменения в информационной базе. Для этого нажмем клавишу
F7 или синюю пиктограмму («Обновить конфигурацию базы данных») на панели инструментов. На вопросы системы о реструктуризации таблиц отвечаем согласием.
Шаг 4. Восстановление конфигурации поставщика и объединение с эталоном ПРОФ
На этом шаге мы вернем базу на полноценную поддержку правильной ПРОФ-версии.
- В Конфигураторе рабочей базы перейдем в меню
Конфигурация -> Сравнить, объединить с конфигурацией из файла....
- В открывшемся диалоговом окне выберем ранее сохраненный эталонный файл
ut_10.3.49.1_prof.cf.
- Поскольку наша рабочая база сейчас снята с поддержки, платформа 1С проанализирует файл и выдаст важнейший вопрос: «Выполнить замену конфигурации целиком или поставить на поддержку?». Отвечаем согласием на постановку на поддержку.
- Перед нами откроется стандартное окно сравнения и объединения конфигураций. Так как мы объединяем идентичные по релизу версии (наша рабочая база, которая была обновлена до этого релиза, и чистый CF-файл того же релиза), никаких существенных различий быть не должно (если только в базу ранее не вносились доработки).
- Убедимся, что установлены все флажки для объединения объектов метаданных. Нажмем кнопку «Выполнить».
- После успешного завершения сравнения и объединения система предложит настроить правила поддержки для новых объектов. Оставляем настройки по умолчанию (все объекты должны стоять на поддержке «с возможностью изменения» или «без возможности изменения» в зависимости от ваших потребностей). Нажимаем «ОК».
- Теперь зафиксируем изменения в базе данных. Нажимаем клавишу
F7. Платформа произведет обновление конфигурации базы данных. Теперь структура метаданных полностью соответствует требованиям оригинальной ПРОФ-версии.
Шаг 5. Принудительная очистка кэша платформы
Очень часто после критических сбоев и манипуляций с конфигурацией поставщика локальный кэш платформы на компьютере пользователя сохраняет неверные метаданные и старые настройки сессий. Если не очистить кэш, программа может продолжить аварийно закрываться по «старой памяти».
Для надежной очистки кэша проделаем следующую простую процедуру:
- Закроем Конфигуратор рабочей базы.
- Откроем стандартное окно запуска «1С:Предприятие».
- Выделим нашу рабочую базу в списке и нажмем кнопку «Удалить». Не беспокойтесь, физические файлы базы данных останутся на диске, удалится лишь ссылка на нее из списка запуска.
- Нажмем кнопку «Добавить», выберем пункт «Добавление в список существующей информационной базы» и заново пропишем путь к каталогу с файлом
1Cv8.1CD нашей рабочей базы.
При повторном добавлении базы в список платформа автоматически создает для нее новые, чистые папки кэша с уникальными идентификаторами GUID, что гарантирует отсутствие старых кэшированных ошибок.
Шаг 6. Инициализация процедур обновления в пользовательском режиме
Поскольку предыдущие попытки запуска завершались аварийно, процедуры обновления данных (заполнение служебных регистров, обработка документов под новые алгоритмы релиза) в самой базе данных не завершились. Нам нужно запустить их повторно и корректно пройти проверку легальности.
Для этого воспользуемся специальным ключом запуска платформы:
- В окне запуска 1С выделим нашу базу данных и нажмем кнопку «Изменить».
- В открывшемся окне настроек нажимаем «Далее», пока не дойдем до последней страницы («Параметры запуска»).
- В поле «Дополнительные параметры запуска» пропишем следующий параметр (обратите внимание, что буква
C должна быть обязательно латинской):
/C ЗапуститьОбновлениеИнформационнойБазы
- Нажимаем «Готово» и запускаем базу в режиме «1С:Предприятие».
- При запуске система снова выведет окно подтверждения легальности получения обновления. Теперь, когда конфигурация поставщика полностью восстановлена до оригинальной ПРОФ-версии, смело подтверждаем легальность.
- Программа больше не закроется аварийно. Начнется штатный и последовательный процесс обновления данных информационной базы. Дождитесь его полного завершения.
- После успешного входа в программу закройте ее, снова зайдите в свойства базы в окне запуска и удалите прописанный параметр
/C ЗапуститьОбновлениеИнформационнойБазы, чтобы при последующих запусках система не тратила время на инициализацию проверок обновления.
Золотые правила администратора 1С для предотвращения подобных проблем
Чтобы избежать подобных трудоемких процедур восстановления в будущем, рекомендуем придерживаться простых, но критически важных правил при обновлении любых конфигураций 1С:
- Всегда создавайте резервную копию базы данных перед любым действием в Конфигураторе! Для файловых баз достаточно просто скопировать файл
1Cv8.1CD в архивную папку. Для клиент-серверных баз выполняйте выгрузку информационной базы в файл .dt или делайте бэкап средствами СУБД (MS SQL, PostgreSQL и др.).
- Тщательно проверяйте соответствие версий обновлений. Никогда не пытайтесь наложить файлы базовых релизов на ПРОФ или КОРП версии. Помните, что они имеют разную внутреннюю структуру метаданных и логику лицензирования.
- Если вы ведете учет в нетиповой (доработанной) конфигурации, перед обновлением всегда делайте детальное сравнение конфигураций, чтобы случайно не затереть кастомные доработки стандартными механизмами поддержки.
Соблюдение этих рекомендаций сбережет ваше рабочее время и гарантирует стабильную, бесперебойную работу бизнес-приложений на платформе 1С:Предприятие.