Как убедиться, что платформа, конфигурация и база 1С не повреждены

· 9 мин

Содержание

Отдельной галочки «включить контроль целостности» в установщике 1С 8.3 нет. Целостность проверяют в три слоя: цифровая подпись и хеш дистрибутива до запуска setup.exe, защита от опасных действий для расширений и внешних обработок, и тестирование информационной базы после обновления конфигурации.

Частое заблуждение — считать, что раз установщик дошёл до конца без ошибок, всё в порядке. Установщик Windows проверяет только собственные архивы. Он не знает, откуда вы взяли дистрибутив, и ничего не говорит о состоянии базы, которую потом откроет новая платформа.

Как устроена защита в платформе 1С и где её границы

Каждый слой закрывает свой риск. Путать их не стоит: проверка подписи не спасёт базу от сбоя диска, а тестирование базы не поймает подменённый 1cv8.exe.

СлойЧто защищаетЧем проверяется
Дистрибутив платформыФайлы .msi, .cab, setup.exeЦифровая подпись Authenticode, хеш SHA-256
Установленные файлыКаталог bin платформыВосстановление через установщик, сравнение хешей
Расширения и обработкиКод, который запускается в базеЗащита от опасных действий, безопасный режим, профили безопасности
КонфигурацияМетаданные и модулиПроверка конфигурации в Конфигураторе
Информационная базаДанные, ссылки, итогиТестирование и исправление, утилита chdbfl.exe

🔐 Платформа 1С сама предупреждает о потенциально опасных действиях: открытии внешней обработки, загрузке расширения, запуске файла. Это поведение появилось в 8.3.9 и включено по умолчанию у каждого пользователя.

🗄️ За данные платформа отвечает только во время работы: транзакции и блокировки. Физическую и логическую целостность файла базы проверяете вы — штатными средствами, но вручную или по расписанию.

Подготовка к обновлению: настройки безопасности до установки

Перед установкой новой версии платформы или обновлением конфигурации стоит закрыть три вопроса.

Источник дистрибутива

Скачивайте платформу и обновления только с портала обновлений по своей подписке или через интернет -поддержку в самой программе. Архивы с форумов и файлообменников — главный путь, которым в бухгалтерию попадает изменённый код.

Права установки

Ставить платформу должен администратор компьютера, а не каждый пользователь. Если у бухгалтера есть локальные права администратора, любой запущенный «установщик обновления» получит те же права.

Резервная копия

Перед обновлением конфигурации выгрузите базу в .dt или сделайте копию каталога файловой базы. Для серверной базы — резервная копия средствами СУБД. Именно с этой копией вы сравните результат, если после обновления что-то пойдёт не так.

Запишите номер текущей платформы и релиза конфигурации: Справка → О программе. При откате это первое, что понадобится.

Проверка дистрибутива и файлов при установке 1С 8.3

Это и есть контроль целостности при установке в прямом смысле: убедиться, что файлы на диске — те самые, что выпустил разработчик.

Шаг 1. Проверьте цифровую подпись

Файлы установщика платформы подписаны цифровой подписью фирмы «1С». Быстрая проверка в проводнике:

  1. Щёлкните правой кнопкой по setup.exe или файлу .msi в папке дистрибутива.
  2. Откройте Свойства → Цифровые подписи.
  3. Выберите подпись и нажмите Сведения. Должна быть надпись «Эта цифровая подпись действительна».

Вкладки «Цифровые подписи» нет совсем — файл не подписан. Такой дистрибутив не ставьте.

Тот же результат в PowerShell, сразу по всем файлам папки:

Get-ChildItem "D:\Distr\1C\8.3" -Include *.exe,*.msi -Recurse |
  Get-AuthenticodeSignature |
  Select-Object Path, Status, @{n='Signer';e={$_.SignerCertificate.Subject}}

В колонке Status у каждого файла должно быть Valid. Значения HashMismatch или NotSigned означают, что файл изменён или не от разработчика.

Шаг 2. Сравните хеши копий

Если дистрибутив лежит в сетевой папке и с неё ставят на десяток рабочих мест, посчитайте хеш один раз сразу после скачивания и сохраните рядом:

Get-FileHash "D:\Distr\1C\8.3\*.msi" -Algorithm SHA256 |
  Format-List Path, Hash > D:\Distr\1C\8.3\hash.txt

Перед установкой на новый компьютер пересчитайте и сравните. Расхождение хотя бы в одном символе — файл повреждён при копировании или изменён.

Шаг 3. Установите и проверьте результат

После установки откройте каталог платформы, обычно C:\Program Files\1cv8\<номер версии>\bin, и проверьте подпись у 1cv8.exe и 1cv8c.exe тем же способом.

Если файлы платформы повреждены после установки

Установщик Windows умеет восстанавливать собственные файлы. Запустите setup.exe из той же папки дистрибутива той же версии — мастер предложит изменить, восстановить или удалить программу. Выберите восстановление.

Из командной строки то же делает:

msiexec /fa "D:\Distr\1C\8.3\1CEnterprise 8 (x86-64).msi"

Во время восстановления закройте все сеансы 1С на этом компьютере. Открытые файлы не перезапишутся, и мастер попросит перезагрузку.

Linux. Пакеты .deb и .rpm несут свои контрольные суммы. Для RPM-систем изменённые файлы покажет rpm -V <имя пакета>, для Debian и Ubuntu — утилита debsums, если пакет содержит список сумм.

Расширения и внешние обработки: что проверять перед подключением

Установили платформу правильно — следующая дыра там, где в базу попадает чужой код. Это расширения .cfe, внешние обработки .epf и отчёты .erf.

Защита от опасных действий

При открытии внешней обработки или подключении расширения платформа показывает предупреждение и ждёт подтверждения. Флажок «Защита от опасных действий» находится в свойствах пользователя: в Конфигураторе Администрирование → Пользователи, затем карточка пользователя.

🚫 Снимать флажок у рядовых пользователей нельзя. Это последнее окно, где человек может остановиться перед запуском обработки из письма.

Защиту можно отключить и для конкретных баз через файл conf.cfg платформы — параметром DisableUnsafeActionProtection со списком строк соединения. Проверьте, что там нет лишнего: этот параметр иногда оставляют внедренцы «для удобства».

Свойства самого расширения

У каждого расширения в списке Конфигурация → Расширения конфигурации есть два флажка:

  • 🛡️ Безопасный режим — код расширения не получает доступа к файлам, COM-объектам и внешним ресурсам.
  • ⚠️ Защита от опасных действий — при работе расширения действует то же предупреждение, что и для пользователя.

Расширение от поставщика, которому нужен доступ к файлам, работает без безопасного режима. Тогда вы должны знать, что именно оно делает, и хранить исходный .cfe с датой получения.

Профили безопасности на сервере

В клиент-серверном варианте администратор кластера может назначить базе профиль безопасности в консоли администрирования серверов. Профиль ограничивает доступ кода к файловой системе, COM, внешним компонентам и интернет-ресурсам. Конфигурации на БСП умеют запрашивать разрешения у профиля сами, когда подключается дополнительная обработка.

Мини-регламент перед подключением

Перед загрузкой расширения или обработки
Выполнено: 0 / 5

Диагностика ошибок проверки целостности

Ошибки делятся на две группы: при установке платформы и при открытии базы после обновления.

Диагностика: выберите симптом

Тестирование и исправление базы

Основной инструмент после неудачного обновления — Администрирование → Тестирование и исправление в Конфигураторе. Режимы, которые чаще всего нужны:

  1. Проверка логической целостности информационной базы — структура таблиц и данных.
  2. Проверка ссылочной целостности — «битые» ссылки на удалённые объекты.
  3. Пересчёт итогов — если не сходятся остатки и обороты.
  4. Реиндексация и реструктуризация таблиц — после сбоев и при ошибках индексов.

Начните с режима «Только проверка». Так вы увидите масштаб проблем, ничего не меняя. Исправление запускайте на копии и только потом повторите на рабочей базе.

Тестирование и исправление требует монопольного доступа. Все пользователи должны выйти, фоновые задания — остановиться. Планируйте на нерабочее время.

Проверка конфигурации после обновления

Тестирование базы смотрит на данные. Код и метаданные проверяет другая команда — Конфигурация → Проверка конфигурации в Конфигураторе. Она находит синтаксические ошибки в модулях, ссылки на несуществующие объекты, пустые обработчики событий.

Когда она полезна:

  • 🧩 после обновления доработанной конфигурации, когда изменения объединяли вручную;
  • 🧩 после загрузки расширения, которое писалось под другой релиз;
  • 🧩 перед тем как отдать базу пользователям после сложного обновления.

Отметьте режимы проверки клиента и сервера, которые используются в вашей базе, и запустите. Ошибки появятся в окне сообщений; двойной щелчок открывает модуль на нужной строке. Для типовой конфигурации без доработок ошибок быть не должно: если они есть, скорее всего, обновление прошло не до конца.

Физическая проверка файловой базы

Для файловой базы в каталоге bin платформы есть утилита chdbfl.exe. Она проверяет физическую структуру файла 1Cv8.1CD: сама база в ней не открывается, работает только с файлом. Закройте все сеансы, сделайте копию файла, укажите путь в утилите и запустите проверку. Флажок исправления ставьте только для копии.

Автоматизация контроля целостности

Разовая проверка после установки — хорошо, но повреждения появляются позже: сбой диска, обрыв питания, ручная правка файлов. Два задания в Планировщике Windows закрывают большую часть рисков.

Проверка подписей платформы

Скрипт раз в сутки проверяет подписи исполняемых файлов всех установленных версий и пишет в журнал только проблемы:

$log = "C:\Scripts\1c_signature.log"
Get-ChildItem "C:\Program Files\1cv8\*\bin\1cv8*.exe" |
  Get-AuthenticodeSignature |
  Where-Object { $_.Status -ne 'Valid' } |
  ForEach-Object { "$(Get-Date -Format s) $($_.Path) $($_.Status)" } |
  Add-Content $log

Пустой журнал — всё в порядке. Строка в журнале — повод разобраться в тот же день.

Ночное тестирование базы

Пакетный запуск Конфигуратора позволяет прогонять проверку без участия человека. Ключ -TestOnly только проверяет и ничего не исправляет:

"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" DESIGNER /F"D:\Bases\Buh" /N"Администратор" /P"пароль" ^
  /IBCheckAndRepair -LogAndRefsIntegrity -TestOnly /Out"D:\Logs\check_buh.txt"

Подставьте свой номер версии платформы в путь. Для серверной базы вместо /F используется /S"сервер\имя_базы".

Что учесть при настройке:

  • 🌙 Время запуска — когда никого нет в базе. Проверка требует монопольного доступа и не начнётся при активных сеансах.
  • 🔑 Пароль в bat-файле храните в каталоге, к которому есть доступ только у учётной записи задания.
  • 📄 Журнал из /Out просматривайте или отправляйте себе на почту отдельным скриптом. Проверка без чтения результата бесполезна.
  • 📦 Перед заданием проверки поставьте задание резервного копирования. Если проверка найдёт проблему, у вас будет копия на тот же вечер.

Что ещё стоит отслеживать

  • Список расширений базы: новое расширение, о котором вы не знали, — повод выяснить, кто его загрузил.
  • Журнал регистрации: события загрузки расширений и изменения конфигурации видны по отбору по событию.
  • Состояние дисков сервера: многие «повреждения базы» начинаются с ошибок чтения диска.

Частые вопросы

Нужно ли проверять подпись, если дистрибутив скачан с портала 1С?
Да, хотя бы выборочно. Файл может повредиться при копировании в сетевую папку или на флешку. Проверка занимает минуту.
Проверка подписи замедляет установку?
Нет. Это отдельное действие до запуска установщика, на сам процесс установки оно не влияет.
Можно ли запускать тестирование и исправление при работающих пользователях?
Нет. Режиму нужен монопольный доступ к базе, при активных сеансах он не запустится.
Что делать, если хеш дистрибутива не совпал с сохранённым?
Не ставить этот файл. Скачайте дистрибутив заново и посчитайте хеш ещё раз. Если не совпадает снова — проверьте диск и сетевую папку.
Безопасный режим расширения отключает его функции?
Только те, которым нужен доступ к файлам, COM и внешним ресурсам. Если расширение с безопасным режимом выдаёт ошибку обращения к файлу, уточните у поставщика, нужен ли ему такой доступ.