При обслуживании и регулярном обновлении крупных конфигураций, таких как 1С:Комплексная автоматизация 2 или 1С:ERP Управление предприятием, администраторы и программисты нередко сталкиваются с ситуацией, когда на официальном портале обновлений публикуется сообщение: «Дистрибутив обновления будет доступен позднее. Сейчас можно выполнить обновление с использованием файла поставки 1cv8.cf». Разберем подробно, почему так происходит, как правильно накатить полный дистрибутив без потери поддержки и что делать, если после обновления зависли отложенные обработчики данных.
Выясним причину, почему вендор сначала выкладывает файл полной конфигурации 1cv8.cf, а файл обновления 1cv8.cfu задерживает или не выпускает вовсе для определенных версий. Проанализируем техническую сторону вопроса:
Объем метаданных и разница релизов. Конфигурации КА и ERP содержат колоссальное количество объектов. При масштабных изменениях метаданных размер разницы (дельты) между старым и новым релизами становится сопоставим с полным файлом конфигурации. В таком случае формирование сотен вариантов дифференциальных пакетов под разные промежуточные релизы теряет практический смысл.
Срочность публикации исправлений. При обнаружении критических ошибок разработчикам важно максимально быстро предоставить исправленный релиз. Сборка полного файла .cf происходит сразу, тогда как генерация и тестирование матрицы связок .cfu со всеми предыдущими подверсиями требует длительного времени.
Ограничения адресного пространства 32-битных приложений. Во время обновления из .cfu платформа 1С сначала разворачивает конфигурацию поставщика из базы, накладывает на нее дельту, собирает результирующую конфигурацию и выполняет построение дерева сравнения. Для объемных конфигураций этот процесс потребляет свыше 1.6–2 ГБ оперативной памяти. В 32-разрядных версиях клиента процесс неизбежно аварийно завершается из-за нехватки виртуальной памяти или зависает. Использование готового файла .cf исключает фазу сборки дельты и существенно снижает пиковое потребление памяти.
Как правильно обновить базу через файл поставки .cf
Разберем по шагам, как корректно применить полный файл 1cv8.cf, не нарушая типовую поддержку конфигурации. Распространенная ошибка — попытка применить файл через меню «Конфигурация» — «Сравнить, объединить с конфигурацией из файла». В этом случае конфигурация поставщика не обновляется, ее номер версии остается прежним, и в дальнейшем база перестанет видеть последующие штатные обновления .cfu.
Выполним правильную последовательность действий:
Создадим резервную копию информационной базы (выгрузка в .dt или средствами СУБД).
Откроем Конфигуратор в монопольном режиме.
Перейдем в главное меню: Конфигурация — Поддержка — Обновить конфигурацию.
В открывшемся окне мастера выберем переключатель «Выбор файла обновления» и нажмем «Далее».
В проводнике выберем файл 1cv8.cf из каталога полного дистрибутива поставки.
Платформа сопоставит метаданные и предложит окно сравнения и объединения. Если в конфигурацию не вносились доработки, подтверждаем объединение со стандартными настройками по умолчанию.
Нажмем «Выполнить», дождемся завершения обновления конфигурации поставщика и применим изменения к базе данных клавишей F7.
Ошибка «Файл не содержит доступных обновлений»
Рассмотрим ситуацию, когда при попытке накатить очередной файл .cfu платформа выдает сообщение: «Файл не содержит доступных обновлений». Проанализируем возможные факторы:
Несоответствие цепочки релизов. Каждый файл .cfu жестко привязан к списку исходных релизов. Если текущий релиз вашей базы перескочил через версию или отстал от допустимого диапазона, обновиться этим файлом невозможно. В этом случае требуется либо накатывать недостающие промежуточные релизы, либо обновляться через полный файл .cf.
Требования к минимальной версии платформы 1С. Новые релизы прикладных решений часто используют оптимизированные форматы упаковки и алгоритмы применения метаданных. Если релиз конфигурации требует платформу не ниже 8.3.9.2170, а запуск выполняется на более старом билде (например, 8.3.9.1818), конфигуратор просто не распознает манифест файла .cfu. В такой ситуации необходимо в первую очередь обновить саму технологическую платформу 1С:Предприятие.
Сбитая конфигурация поставщика. Если ранее база была обновлена через обычное сравнение/объединение, платформа видит старый номер релиза поставщика, поэтому новый .cfu отвергается. Решением является повторное обновление через поддержку с использованием .cf актуального релиза.
Зависание дополнительных процедур обновления информационной базы
После успешного обновления конфигурации в режиме Конфигуратора запускается пользовательский сеанс в режиме 1С:Предприятие, где стартует отложенное обновление данных (механизмы БСП). Нередко пользователи сталкиваются с тем, что счетчик процедур останавливается на отметке «0 из 42», либо процесс бесконечно ожидает на шаге «Обновление индекса поиска отчетов...».
Разберем основные причины и методы решения этой проблемы:
Включена блокировка регламентных заданий. Если перед обновлением создавалась копия базы или администратор устанавливал блокировку выполнения регламентных процедур (через консоль администрирования кластера 1С или параметры информационной базы), фоновые задания БСП не могут запуститься. В окне «Результаты обновления программы» кнопка ручного запуска не дает эффекта именно по этой причине. Для решения проблемы снимем блокировку регламентных заданий в свойствах информационной базы.
Зависание на полнотекстовом поиске данных (ППИ). Процедура индексации отчетов тесно связана со службой полнотекстового поиска. Если индекс поврежден или заблокирован, фоновое задание зацикливается. Чтобы устранить сбой, перейдем в меню Администрирование — Обслуживание — Полнотекстовый поиск, очистим индекс и запустим его перестроение, либо временно отключим ППИ до окончания регламентных процедур.
Принудительное выполнение обновления в монопольном сеансе. Чтобы гарантированно завершить все обработчики без использования механизма фоновых заданий, запустим клиент 1С с ключом командной строки:
При таком запуске все обработчики БСП отрабатывают синхронно и последовательно непосредственно в сеансе текущего пользователя.
Влияние механизма Windows Fair Share (DFSS) в терминале. Если обновление выполняется на сервере удаленных рабочих столов (RDS), операционная система Windows Server может автоматически урезать процессорные и дисковые квоты для долго работающего сеанса конфигуратора или клиента 1С. В результате дисковые операции замедляются в десятки раз. Для устранения искусственного троттлинга системным администраторам рекомендуется отключить службы Fair Share в реестре Windows по веткам HKLM\SYSTEM\CurrentControlSet\Services\TSFairShare\Disk (параметр EnableFairShare = 0) и HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Quota System (параметр EnableCpuQuota = 0).
Переход на 64-разрядные клиенты. Для стабильной работы с тяжелыми базами масштаба КА и ERP рекомендуется использовать 64-битную платформу (сервер и клиент 1cv8.exe), что исключает падения из-за ограничений виртуальной памяти при реструктуризации и обработке больших массивов данных.