← На главную
При обновлении типовых конфигураций «1С:Предприятие» (например, «Бухгалтерия предприятия 3.0») нередко возникает неинформативное системное сообщение: «Ошибка при выполнении файловой операции». Сбой обычно происходит сразу после выбора файла обновления, на этапе сравнения конфигураций или при попытке применить изменения к конфигурации базы данных. При этом свободного места на сервере и клиентских дисках может быть более чем достаточно, а ошибка одинаково воспроизводится как в клиент-серверном (SQL), так и в файловом варианте информационной базы.
Разберем подробнее причины возникновения этой неисправности и рассмотрим пошаговые методы её устранения.
Выясним причины сбоя
Проанализируем механику процесса обновления. При штатном накатывании дифференциального файла обновления .cfu платформа распаковывает во временный каталог как сам файл .cfu, так и хранящуюся внутри базы данных конфигурацию поставщика. Если на каком-либо этапе нарушается доступ к файлам или чтение внутренних таблиц, платформа прерывает процесс. Основные источники проблемы:
- Повреждение конфигурации поставщика в базе. Если в метаданных конфигурации поставщика повреждены блоки данных (например, макеты, картинки или структуры XDTO), побитовое наложение дифференциального файла
.cfu завершается ошибкой ввода-вывода.
- Ограничение адресации памяти в 32-разрядном клиенте. Конфигуратор разрядности x86 ограничен лимитом в 2–3 ГБ виртуальной памяти. При формировании дерева сравнения масштабных конфигураций нехватка ОЗУ часто перехватывается платформой как файловая ошибка.
- Превышение длины пути (MAX_PATH) и некорректные временные папки. Вложенные пути платформы в каталоге
%TEMP% в сочетании с кириллицей или пробелами в имени пользователя Windows могут превышать лимит файловой системы в 260 символов.
- Повреждение клиентского кэша платформы. Накопленные временные файлы конфигуратора содержат устаревшие описания метаданных, препятствующие сопоставлению объектов.
- Блокировка антивирусным ПО или защитником Windows. Динамически создаваемые во временных каталогах служебные файлы могут блокироваться антивирусными сканерами в момент распаковки.
Способ 1. Обновление через полный файл конфигурации (.cf) вместо файла обновления (.cfu)
Рассмотрим самый быстрый и надежный способ обхода ошибки. Файл обновления .cfu содержит исключительно дельту изменений между конкретными версиями, поэтому платформа вынуждена распаковывать старую конфигурацию поставщика и последовательно применять патч. Если старая конфигурация поставщика имеет внутренние микроповреждения, процедура завершается сбоем.
Использование полного дистрибутива поставки .cf целевого релиза полностью исключает расчет разницы «на лету»:
- Обязательно создадим резервную копию базы данных (выгрузку в файл
.dt или средствами СУБД).
- Откроем Конфигуратор и перейдем в меню Конфигурация > Поддержка > Обновить конфигурацию.
- Выберем вариант Выбор файла обновления и укажем файл полного релиза с расширением
.cf (а не .cfu).
- Нажмем Готово. Платформа сопоставит метаданные напрямую из файла, минуя распаковку поврежденных участков старой конфигурации поставщика.
- В окне сравнения и объединения проверим настройки и выполним объединение, после чего обновим конфигурацию базы данных по клавише F7.
Способ 2. Восстановление конфигурации поставщика и постановка на поддержку
Если ошибка файловой операции проявляется даже при попытке открыть окно поддержки или выполнить базовое сравнение, конфигурация поставщика в базе серьезно повреждена. Разберем по шагам алгоритм приведения структуры метаданных к корректному состоянию:
- Создадим полную резервную копию информационной базы.
- Сверим номер текущего релиза конфигурации и релиз в окне настройки поддержки (Конфигурация > Поддержка > Настройка поддержки). Они должны совпадать.
- Остановим службу сервера «1С:Предприятия» (для клиент-серверного варианта).
- Очистим временные каталоги сервера 1С и кэш конфигуратора на клиенте. В файловом варианте достаточно закрыть Конфигуратор и очистить каталоги
%LOCALAPPDATA%\1C\1Cv8 и %APPDATA%\1C\1Cv8.
- Запустим сервер и откроем базу в режиме «Конфигуратор».
- Выполним меню Конфигурация > Сравнить, объединить с конфигурацией из файла, указав чистый типовой файл
.cf текущего релиза базы.
- В появившемся окне нажмем Выполнить. Внимание: конфигурацию базы данных клавишей F7 не обновляем!
- Сразу после объединения выгрузим полученное состояние в отдельный файл через меню Конфигурация > Сохранить конфигурацию в файл (назовем его, например,
Основная_CF.cf).
- Перейдем в окно Настройка поддержки и снимем конфигурацию с поддержки (кнопка Включить возможность изменения, затем полное снятие).
- Через меню Конфигурация > Загрузить конфигурацию из файла загрузим типовой файл
.cf текущего релиза. База вернется на полную замкнутую поддержку производителя. Базу данных по F7 не обновляем.
- Снова выполним Конфигурация > Сравнить, объединить с конфигурацией из файла и укажем ранее сохраненный файл
Основная_CF.cf. Это вернет все пользовательские доработки, если они присутствовали.
- Только после завершения сопоставления нажмем клавишу F7 для применения изменений в базе данных.
- Запустим информационную базу в пользовательском режиме для выполнения служебных обработчиков обновления данных.
- Завершим процедуру обязательным запуском утилиты Тестирование и исправление информационной базы (меню Администрирование > Тестирование и исправление) со всеми включенными проверками ссылочной и логической целостности.
Способ 3. Перенаправление системных временных каталогов и исключение ограничений ОС
Рассмотрим аппаратные и платформенные настройки окружения, которые провоцируют файловые сбои:
- Перенос каталогов TEMP/TMP на короткий путь. Перейдем в свойства операционной системы (Параметры системы > Переменные среды). Изменим значения переменных
TEMP и TMP как для пользователя, так и для системы, указав простой каталог без пробелов и русских букв, например C:\Temp. Предварительно создадим эту папку и предоставим полные права учетной записи, от которой запускается «1С:Предприятие».
- Проверка блокировки скачанных файлов. Если файлы обновлений или дистрибутивов загружались из сети Интернет через браузер, операционная система могла заблокировать их на уровне файловых потоков NTFS. Откроем свойства файла обновления (
.cfu или .cf) в проводнике Windows и проверим наличие отметки Разблокировать внизу вкладки «Общие». Если флаг присутствует, установим его и нажмем «Применить».
- Использование 64-битного клиента «Конфигуратор». Для конфигураций с большим объемом метаданных рекомендуется выполнять обновление с использованием клиентского приложения платформы разрядности x86-64. Это исключает переполнение адресного пространства процесса
1cv8.exe.
- Выгрузка и загрузка через файл .dt. Создадим выгрузку базы в файл
.dt и загрузим ее в новую пустую базу (в случае СУБД — в созданную с нуля чистую базу данных). В процессе загрузки служебные таблицы Config, ConfigSave и Files перезаписываются непрерывными блоками, что полностью устраняет фрагментацию таблиц конфигурации.
Применение полного файла поставки .cf в сочетании с очисткой временных каталогов гарантированно устраняет ошибку при выполнении файловой операции и позволяет успешно завершить обновление программы.