В процессе работы с программными продуктами 1С, особенно в рамках тестовых сред для экспериментов, часто возникает необходимость «обнулить» информационную базу. Задача усложняется, когда требуется не просто удалить данные, но и одновременно обновить конфигурацию до самого актуального релиза, имея при этом ограничения на создание новых баз на стороне SQL-сервера. Рассмотрим детально все возможные способы решения этой задачи, проанализируем их плюсы и минусы, и выберем наиболее эффективные алгоритмы.
Это наиболее надежный способ, который гарантирует получение абсолютно «чистой» базы актуального релиза. Основная проблема при использовании официальных шаблонов заключается в том, что файл 1cv8.dt в папке шаблона обычно является демонстрационной базой с уже введенными данными. Пустого .dt-файла в дистрибутивах «Комплексной автоматизации» (КА) или ERP, как правило, не предусмотрено.
Разберем этот метод по шагам:
.cfu).AppData\Roaming\1C\1cv8\tmplts)..dt.Этот способ хорош тем, что он полностью замещает и структуру (метаданные), и данные. Мы получаем гарантированно корректную пустую базу последнего релиза.
Если нам достаточно просто очистить данные и обновить структуру, можно воспользоваться файлом конфигурации. Однако здесь есть важный нюанс: простая «загрузка конфигурации» в существующую базу с данными не удаляет сами данные, а лишь пытается сопоставить структуру. Чтобы база стала пустой, логика должна быть иной.
Проанализируем правильную последовательность действий:
Если у нас есть возможность создать новую базу на SQL-сервере, то мы просто создаем пустую базу и загружаем в неё .cf. Но если нам нужно «перезалить» существующую, мы можем пойти на хитрость:
1cv8.cf из шаблона)..cf сохранит старые справочники и документы, если они физически совпадают по именам с новой структурой.Поэтому наиболее быстрым вариантом с использованием CF будет: Создать новую временную базу (можно файловую), загрузить туда .cf, выгрузить .dt и далее действовать по Методу 1. Это универсальный путь.
В платформе 1С:Предприятие 8.3 существует встроенный метод для полной очистки таблиц данных без удаления самой конфигурации и пользователей. Это крайне удобно, если релиз конфигурации вас уже устраивает, и нужно только удалить «мусор».
Рассмотрим пример кода, который можно запустить во внешней обработке:
&НаСервере
Процедура ОчиститьБазуНаСервере()
// Метод удаляет все данные: документы, справочники, записи регистров.
// При этом сохраняется структура метаданных и пользователи ИБ.
УдалитьДанныеИнформационнойБазы();
КонецПроцедуры
Что важно знать об этом методе:
УдалитьДанныеИнформационнойБазы() доступен только в привилегированном режиме или под пользователем с административными правами.Если у вас есть права администратора 1С-сервера, можно выполнить очистку через стандартную консоль (MMC). Выясним причину, почему это иногда удобнее всего:
При таком выборе 1С не удаляет саму регистрацию базы в кластере и не удаляет оболочку базы в MS SQL Server. Она просто очищает все внутреннее содержимое (таблицы). После этого, при заходе в конфигуратор, система воспримет базу как абсолютно новую и пустую. Вам останется только загрузить в неё актуальный .cf файл или .dt.
Проанализируем ситуацию, специфичную для тяжелых конфигураций (КА, ERP). Эти системы построены на БСП (Библиотеке стандартных подсистем). При первом запуске пустой базы всегда начинается процесс начального заполнения.
На что обратить внимание:
.cf, убедитесь, что в свойствах конфигурации или пользователя установлен правильный режим запуска (Управляемое приложение).ВерсииПодсистем). Поэтому для «чистоты эксперимента» лучше использовать метод с полной перезагрузкой через .dt.Рассмотрев все варианты, мы можем сделать вывод: если вам нужно быстро и чисто развернуть новый релиз в старой SQL-базе, самым оптимальным алгоритмом будет:
.dt из этой файловой базы..dt в вашу SQL-базу.Это исключит любые ошибки сопоставления объектов и гарантирует, что в базе не останется «хвостов» от старых экспериментов.