Как убедиться, что платформа, конфигурация и база 1С не повреждены
Содержание
Отдельной галочки «включить контроль целостности» в установщике 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С». Быстрая проверка в проводнике:
- Щёлкните правой кнопкой по
setup.exeили файлу.msiв папке дистрибутива. - Откройте
Свойства → Цифровые подписи. - Выберите подпись и нажмите
Сведения. Должна быть надпись «Эта цифровая подпись действительна».
Вкладки «Цифровые подписи» нет совсем — файл не подписан. Такой дистрибутив не ставьте.
Тот же результат в 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, внешним компонентам и интернет-ресурсам. Конфигурации на БСП умеют запрашивать разрешения у профиля сами, когда подключается дополнительная обработка.
Мини-регламент перед подключением
Диагностика ошибок проверки целостности
Ошибки делятся на две группы: при установке платформы и при открытии базы после обновления.
Тестирование и исправление базы
Основной инструмент после неудачного обновления — Администрирование → Тестирование и исправление в Конфигураторе. Режимы, которые чаще всего нужны:
- Проверка логической целостности информационной базы — структура таблиц и данных.
- Проверка ссылочной целостности — «битые» ссылки на удалённые объекты.
- Пересчёт итогов — если не сходятся остатки и обороты.
- Реиндексация и реструктуризация таблиц — после сбоев и при ошибках индексов.
Начните с режима «Только проверка». Так вы увидите масштаб проблем, ничего не меняя. Исправление запускайте на копии и только потом повторите на рабочей базе.
Тестирование и исправление требует монопольного доступа. Все пользователи должны выйти, фоновые задания — остановиться. Планируйте на нерабочее время.
Проверка конфигурации после обновления
Тестирование базы смотрит на данные. Код и метаданные проверяет другая команда — Конфигурация → Проверка конфигурации в Конфигураторе. Она находит синтаксические ошибки в модулях, ссылки на несуществующие объекты, пустые обработчики событий.
Когда она полезна:
- 🧩 после обновления доработанной конфигурации, когда изменения объединяли вручную;
- 🧩 после загрузки расширения, которое писалось под другой релиз;
- 🧩 перед тем как отдать базу пользователям после сложного обновления.
Отметьте режимы проверки клиента и сервера, которые используются в вашей базе, и запустите. Ошибки появятся в окне сообщений; двойной щелчок открывает модуль на нужной строке. Для типовой конфигурации без доработок ошибок быть не должно: если они есть, скорее всего, обновление прошло не до конца.
Физическая проверка файловой базы
Для файловой базы в каталоге 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просматривайте или отправляйте себе на почту отдельным скриптом. Проверка без чтения результата бесполезна. - 📦 Перед заданием проверки поставьте задание резервного копирования. Если проверка найдёт проблему, у вас будет копия на тот же вечер.
Что ещё стоит отслеживать
- Список расширений базы: новое расширение, о котором вы не знали, — повод выяснить, кто его загрузил.
- Журнал регистрации: события загрузки расширений и изменения конфигурации видны по отбору по событию.
- Состояние дисков сервера: многие «повреждения базы» начинаются с ошибок чтения диска.