Обновление типовых конфигураций 1С, таких как «Бухгалтерия предприятия 3.0», обычно проходит в автоматическом или полуавтоматическом режиме. Однако при переходе с ветки 3.0.89 на 3.0.90 многие специалисты столкнулись с серьезной проблемой: процесс реструктуризации базы данных прерывается критической ошибкой, а система выдает пугающее предупреждение о несоответствии типов в Плане видов характеристик (ПВХ) ОбъектыАдресацииЗадач. В этой статье мы подробно разберем, почему это происходит, и как успешно завершить обновление, сохранив работоспособность базы.
При обновлении с релиза 3.0.89.54 на 3.0.90.45 в окне сравнения объектов или при попытке принять изменения в окне «Реорганизация информации» появляется сообщение: «Предопределенные виды характеристик, измененные пользователем, содержат тип, не соответствующий типу значений плана видов характеристик: ОбъектыАдресацииЗадач». Важно понимать, что это предупреждение не всегда означает реальное вмешательство пользователя.
Рассмотрим ситуацию глубже. В составе Библиотеки стандартных подсистем (БСП), которая интегрирована в «Бухгалтерию предприятия», произошла смена архитектуры подсистемы адресации задач. Выясним, что именно изменилось:
89.54) элемент ВсеОбъектыАдресации имел простой тип Строка.90.45 и выше) архитектура усложнилась. Теперь тип значения ПВХ стал составным и включает в себя ссылки на справочники СтруктураПредприятия и Организации.СтруктураПредприятия с типом СправочникСсылка.СтруктураПредприятия.Система 1С при сравнении конфигураций видит, что данные в текущей базе (где записана «Строка») не могут быть автоматически и безболезненно сопоставлены с новыми типами (ссылочными). Поэтому она маркирует эти предопределенные данные как «измененные пользователем», даже если вы никогда не открывали этот ПВХ. Это штатное поведение системы при масштабной смене типов данных.
Если само по себе предупреждение о типах является информационным, то последующий вылет системы при нажатии кнопки «Принять» — это критическая ошибка. Проанализируем ситуацию: на SQL-версиях баз данных при попытке реструктуризации сеанс прерывается сервером, а база переходит в состояние «разрушенной» (с предложением повторить обновление при каждом входе).
Основная причина здесь кроется не в самой конфигурации «Бухгалтерии», а в ошибке платформы 1С:Предприятие 8.3. В частности, версии 8.3.17.1851 и некоторые соседние сборки имеют подтвержденный баг механизма реструктуризации таблиц. В момент выполнения SQL-кода ALTER TABLE происходит кратковременный разрыв связи или блокировка, после которой платформа «теряет» авторизацию текущего пользователя, выдавая сообщение «Пользователь ИБ не идентифицирован».
Для успешного преодоления этой ошибки и сохранения конфигурации, разберем последовательность действий, которая помогла большинству технических специалистов.
8.3.17.1989, 8.3.18.1334 или более свежие (например, ветки 8.3.21 или 8.3.22) полностью решает проблему потери идентификации пользователя.ОбъектыАдресацииЗадач нужно ответить «Принять», а на уточняющий вопрос о предупреждениях — «Да». На стабильной платформе процесс ALTER TABLE на стороне SQL-сервера пройдет успешно, и типы данных будут конвертированы из строк в пустые ссылки соответствующих справочников.Рассмотрим ситуацию, когда обновление уже «упало», и при запуске конфигуратора вы бесконечно видите вопрос «Повторить обновление?» и ошибку идентификации. Посмотрим, как вывести базу из этого состояния:
Способ 1: Удаление из списка кластера.
Попробуйте удалить информационную базу из списка в консоли администрирования серверов 1С (только регистрацию в кластере, не саму базу данных SQL!), а затем добавьте её заново под тем же именем. Это часто сбрасывает зависшие сеансы и блокировки в таблице Config.
Способ 2: Очистка кэша сервера.
Остановите службу 1C:Enterprise Server, очистите содержимое папки srvinfo (за исключением файлов лицензий) и запустите службу снова. Это заставит сервер пересчитать состояние конфигурации.
Способ 3: Использование обработки для очистки ПВХ.
Если вы работаете в файловом режиме и база позволяет зайти в режим «Предприятие» (например, через запуск с параметром /AllowExecuteScheduledJobs -Force), можно попробовать программно очистить тип значения в проблемном ПВХ перед обновлением. Пример кода для очистки:
Выборка = ПланыВидовХарактеристик.ОбъектыАдресацииЗадач.Выбрать();
Пока Выборка.Следующий() Цикл
Объект = Выборка.ПолучитьОбъект();
Если Объект.Предопределенный Тогда
// Устанавливаем новый пустой тип, если это необходимо для прохождения реструктуризации
Объект.ТипЗначения = Новый ОписаниеТипов("Строка");
Объект.Записать();
КонецЕсли;
КонецЦикла;
Однако помните, что в случае с релизом 3.0.90, программное вмешательство обычно не требуется — достаточно просто обеспечить стабильность платформы для проведения реструктуризации.
Проанализируем, не приведет ли принятие изменений с предупреждением к потере данных. План видов характеристик ОбъектыАдресацииЗадач используется в механизме бизнес-процессов. Если ваша организация не использует сложные схемы согласования задач с адресацией по конкретным подразделениям или организациям внутри «Бухгалтерии», то изменение этого ПВХ никак не затронет ваш учет. Для 99% типовых баз это изменение проходит бесследно, так как ПВХ заполнен стандартными значениями, которые не используются в повседневной первичке (чеках, проводках, счетах).
Таким образом, алгоритм действий при возникновении данной проблемы следующий: обязательно создаем бэкап, обновляем платформу до актуальной версии и смело принимаем изменения в конфигураторе. Предупреждение о ПВХ в данном конкретном переходе между релизами 89 и 90 является нормальным технологическим этапом развития конфигурации.