Рабочая база или копия: по каким следам это видно в 1С
Содержание
Быстрее всего копию выдаёт строка соединения: откройте Справка → О программе (знак вопроса в правом верхнем углу) и посмотрите, где лежит база. Если путь File= ведёт не туда, где хранится рабочая база, или в Srvr=/Ref= указан другой сервер или другое имя, — перед вами копия. Второй надёжный признак — журнал регистрации, который начинается с даты загрузки файла выгрузки.
Типичная ситуация: в списке баз у бухгалтера три строки «Бухгалтерия предприятия», одна из них — тестовая копия программиста месячной давности. Человек два дня проводит документы не там, а потом ищет их в рабочей базе. Отличить копию можно за пару минут, если знать, куда смотреть.
Где физически лежит база: строка соединения и окно «О программе»
Строка соединения — это адрес базы. Две разные базы не могут иметь одинаковый адрес, поэтому сравнение адресов решает вопрос в большинстве бытовых случаев.
Где её посмотреть:
- 🔎 В окне запуска 1С выделите базу — внизу окна показан путь или сервер с именем базы.
- 🔎 Внутри программы —
Справка → О программе, строка «Информационная база». - 🔎 В списке баз через кнопку
Изменить— там видно, файловая база или серверная и какие параметры.
Как читать результат:
| Вид базы | Что в строке | Признак копии |
|---|---|---|
| Файловая | File="D:\1C\Buh" | Каталог отличается от рабочего: Copy, Test, Buh_old, папка на рабочем столе или флешке |
| Клиент-серверная | Srvr="srv1c";Ref="buh" | Другое имя базы (buh_test, buh_copy) или другой сервер |
| Веб-публикация | ws="http://…" | Публикация смотрит на другую базу — проверять на сервере |
Совпадение названия в списке баз ничего не значит. Название в окне запуска пользователь пишет сам, и копия часто называется так же, как оригинал.
Если адрес выглядит «правильным», но сомнения остались (например, базу недавно перенесли на новый сервер), переходите к журналу регистрации.
Журнал регистрации как свидетель копирования
Журнал регистрации хранится не внутри данных базы, а рядом с ней. У файловой базы это папка 1Cv8Log в каталоге базы. У серверной — каталог базы в служебной папке кластера (srvinfo\reg_1541\<идентификатор базы>\1Cv8Log).
Отсюда главный признак. При выгрузке в файл .dt журнал не переносится. Значит, у базы, развёрнутой из .dt, история событий начинается с момента загрузки, хотя документы в ней лежат за несколько лет.
Что сделать:
- Откройте
Администрирование → Обслуживание → Журнал регистрации(в БП 3.0, ЗУП 3.1, УТ 11). - Отсортируйте по дате по возрастанию и посмотрите самую раннюю запись.
- Установите отбор по событиям группы «Информационная база» — среди них есть загрузка и выгрузка базы.
Как трактовать:
- 📅 Первая запись журнала — вчера, а документы ведутся с 2019 года → базу недавно развернули из выгрузки. Это либо копия, либо перенесённая рабочая база.
- 📤 В журнале оригинала есть событие выгрузки базы в файл → с неё снимали копию; дата подскажет, на какой момент данные в копии.
- 🖥 В колонке «Компьютер» сплошь ноутбук программиста или тестовый сервер → базой пользуется не отдел, а разработчик.
- ⏸ Последняя запись — месяц назад, при том что бухгалтерия работает каждый день → вы смотрите на «застывший» экземпляр.
Если папку файловой базы скопировали целиком, журнал переезжает вместе с ней и выглядит как у оригинала. Тогда журнал выдаст копию только по дате последней записи и по именам компьютеров.
Пользователи и история входов
Список пользователей хранится в самой базе. Поэтому в копии те же логины, те же роли и те же пароли на момент копирования. По составу пользователей копию не отличить — отличить можно по тому, кто и когда в неё входит.
Проверки:
- 👥
Администрирование → Настройки пользователей и прав → Пользователи— сравните список с рабочей базой. Новые сотрудники, принятые после даты копирования, в копии отсутствуют. - 🔐 В журнале регистрации отберите события «Сеанс. Аутентификация» и «Сеанс. Начало». В рабочей базе входы идут каждый день от разных людей. В копии — эпизодически и от одного-двух логинов.
- 🟢
Администрирование → Обслуживание → Активные пользователив рабочее время. Пусто в 11 утра вторника — серьёзный повод насторожиться. - 🧾 Сравните пароли: если бухгалтер недавно сменил пароль, а в базу пускает со старым — база снята раньше смены.
Хорошая практика для тестовых копий — сразу после развёртывания снять у рядовых пользователей право входа или выставить им «Вход в программу запрещён». Тогда случайно зайти в копию просто не получится.
Лицензии, профили безопасности и настройки кластера
Лицензии 1С не привязаны к конкретной базе. Программная лицензия активируется на компьютер или сервер, ключ HASP — на устройство. Копия на том же сервере расходует те же лицензии и сама по себе ничем себя не выдаёт.
Зато серверная база видна в консоли кластера, и там много подсказок. Откройте свойства информационной базы в консоли администрирования серверов 1С:
| Что смотреть | Что говорит о копии |
|---|---|
| «Сервер баз данных» и «База данных» | Какая база СУБД стоит за этой базой 1С. Две базы 1С с разными именами могут смотреть в одну базу СУБД — тогда это не копия, а дубль записи |
| «Блокировка регламентных заданий включена» | Флаг часто ставят на тестовых копиях, чтобы они не слали почту и не запускали обмены |
| «Описание» | Многие администраторы пишут сюда «Копия от 15.03» |
| Профиль безопасности | У тестовых баз его иногда не назначают или назначают другой |
Список баз кластера с идентификаторами можно получить из командной строки:
rac cluster list
rac infobase summary list --cluster=<id кластера>
У каждой серверной базы свой идентификатор в кластере. Если вы видите две базы с похожими именами — у них разные идентификаторы, и по ним вы найдёте нужную папку журнала в srvinfo.
Не меняйте в свойствах базы имя сервера СУБД и имя базы данных «чтобы проверить». Ошибка в этих полях подключит базу 1С к чужим данным.
Контрольные суммы файлов и история восстановления в СУБД
Файловая база: размер, дата и хеш 1Cv8.1CD
Данные файловой базы лежат в одном файле 1Cv8.1CD. Сравните два каталога:
- 📏 Размер файла. Расхождение на сотни мегабайт — базы давно разошлись.
- 🕒 Дата изменения. Рабочая база меняется каждый день, копия — редко.
- 🔢 Хеш. Одинаковый хеш означает, что файлы идентичны бит в бит: копию сняли и ещё ни разу не открыли.
Хеш в Windows считается штатными средствами:
certutil -hashfile "D:\1C\Buh\1Cv8.1CD" SHA256
Get-FileHash "D:\1C\Buh_copy\1Cv8.1CD" -Algorithm SHA256
Считайте хеш только у базы, в которой нет пользователей: открытый файл меняется на ходу, и сравнение потеряет смысл. Совпадения после первого же входа в любую из баз не будет — это нормально, хеш доказывает только факт «копия снята и не тронута».
Серверная база: когда её восстановили
В MS SQL Server каждая операция восстановления записывается в системную базу msdb. Запрос покажет, какая база из какого бэкапа и когда восстановлена:
SELECT rh.destination_database_name AS restored_db,
rh.restore_date,
bs.database_name AS source_db,
bs.server_name AS source_server,
bs.backup_finish_date
FROM msdb.dbo.restorehistory rh
JOIN msdb.dbo.backupset bs ON bs.backup_set_id = rh.backup_set_id
ORDER BY rh.restore_date DESC;
Если restored_db — ваша база, а source_db — рабочая, вопрос закрыт: это копия рабочей базы на дату backup_finish_date. Дату создания базы на сервере покажет SELECT name, create_date FROM sys.databases: у восстановленной из бэкапа базы это дата восстановления.
Для PostgreSQL такой встроенной истории нет — смотрите журналы инструмента резервного копирования и скриптов, которыми разворачивали базу.
Идентификатор базы и данные, которые «застыли»
Платформа знает свою строку соединения, а серверная база — свой идентификатор в кластере. Но после загрузки .dt в новую базу данные внутри одинаковы: те же константы, те же коды узлов обмена, та же нумерация. Поэтому кроме адреса проверьте, на какой дате данные остановились.
Практичные проверки:
- 📄 Откройте журнал документов , с которым работают каждый день (реализация, банковские выписки), и отсортируйте по дате. В копии последний документ будет на дату снимка.
- 🔢 Сравните последний номер счёта на оплату в обеих базах.
- 💱 Посмотрите курсы валют: если загрузка курсов настроена, в рабочей базе они свежие, в копии — на дату копирования (если регламентные задания там отключены).
Когда типовая конфигурация сама сообщает о копии
Типовые конфигурации на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11 и другие) запоминают строку соединения базы. Если при запуске она изменилась, программа показывает окно о том, что база перемещена или восстановлена из резервной копии, и блокирует работу с внешними ресурсами: обмены, почту, синхронизацию, регламентные задания.
Это сделано, чтобы копия не отправила письма контрагентам и не «пообщалась» с узлами обмена от имени рабочей базы. Выбор в этом окне — ответственный шаг:
Если подтвердить «база перемещена» в копии, она начнёт выгружать данные в узлы обмена, отправлять отчётность через сервисы и письма. Узел-получатель примет пакеты от «рабочей» базы, и номера сообщений обмена разъедутся.
Внешняя обработка для быстрого аудита
Когда баз много, удобнее одна внешняя обработка, которую открывают через Файл → Открыть в любой из них. Она собирает сведения на сервере и выводит их сообщениями.
Создайте в конфигураторе внешнюю обработку , добавьте форму и команду «Проверить». Код модуля формы:
&НаКлиенте
Процедура Проверить(Команда)
Для Каждого Строка Из СведенияОБазе() Цикл
Сообщить(Строка);
КонецЦикла;
КонецПроцедуры
&НаСервереБезКонтекста
Функция СведенияОБазе()
Результат = Новый Массив;
Результат.Добавить("Строка соединения: " + СтрокаСоединенияИнформационнойБазы());
Результат.Добавить("Компьютер сервера: " + ИмяКомпьютера());
Результат.Добавить("Конфигурация: " + Метаданные.Синоним + " " + Метаданные.Версия);
Сеансы = ПолучитьСеансыИнформационнойБазы();
Результат.Добавить("Сеансов сейчас: " + Формат(Сеансы.Количество(), "ЧН=0; ЧГ=0"));
Журнал = Новый ТаблицаЗначений;
ВыгрузитьЖурналРегистрации(Журнал, Новый Структура, "Дата", , 1);
Если Журнал.Количество() > 0 Тогда
Результат.Добавить("Первая запись журнала: "
+ Формат(Журнал[0].Дата, "ДФ='dd.MM.yyyy HH:mm'"));
Иначе
Результат.Добавить("Журнал регистрации пуст");
КонецЕсли;
Возврат Результат;
КонецФункции
Что получите: адрес базы, имя сервера, версию конфигурации, число сеансов и дату самой ранней записи журнала. Запустите обработку в рабочей базе и в подозрительной — разница в строке соединения и первой записи журнала решит вопрос.
Ограничения:
- 🔑 Чтение журнала регистрации требует административных прав.
- 🛡 В типовых конфигурациях открытие внешних обработок может быть запрещено настройками безопасности — тогда обработку подключают через
Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработкиили запускают под администратором. - 🧮 Версия конфигурации у копии и оригинала совпадает, если после копирования никто не обновлялся. Расхождение версий — дополнительный признак, совпадение — не доказательство.
Как пометить копию, чтобы потом не гадать
Проще всего вопрос «копия или нет» снимается заранее. Сразу после развёртывания копии:
Заголовок программы виден в шапке окна на каждом экране. Слово «КОПИЯ» в нём защищает лучше любых инструкций: бухгалтер увидит его до того, как проведёт первый документ.
Если копию держат для проверки обновления, удаляйте её после теста. Чем меньше в списке «Бухгалтерия», «Бухгалтерия (2)» и «Бухгалтерия новая», тем меньше шансов работать не там.
Частые вопросы
Можно ли вернуть документы, введённые по ошибке в копию, в рабочую базу?
Копия расходует отдельную лицензию?
rac session list --licenses — она показывает, какой сеанс какую лицензию занял.Почему копия при каждом запуске спрашивает, перемещена ли база?
Отличается ли копия, созданная через выгрузку .dt, от скопированной папки?
.dt нет журнала регистрации, поэтому история начинается заново. Скопированная папка файловой базы несёт с собой журнал, и отличить её можно только по пути, датам и активности.