Добрый день!
Хочу вам представить свою поделку, которая мне помогает в работе сервис-инженера ИТС. По специфике работы, каждый месяц я удаленно подключаюсь к почти постоянному списку клиентов, делаю резервные копии и провожу обновление конфигурации баз 1С. У всех клиентов базы и папки с копиями расположены в разных директориях.
Моя утилита как раз помогает мне с копированием баз. Да и некоторые клиенты тоже ей пользуются. Программа читает файл списка баз 1С из AppData, составляет список информационных баз и после выбора нужных баз проводит копирование 1Cv8.1CD из расположения базы в папку с копиями. В итоге получается файл копии базы с её именем из списка БД. Утилита не проверяет, работает ли кто в базе данных.
Программа имеет открытый исходный код, опубликованный на GitHub Giblarium/CopyBases1C: Копирование баз 1С из списка баз пользователя (github.com). Там же утилиту можно скачать бесплатно.
Пользоваться просто. Запускаем, выбираем базы для копирования, нажимаем "Скопировать базы", ..., профит! По понятным причинам, не копирует базы, если не найден файл БД или база публикуется на web-сервере или сервере 1С:Предприятия.
Для работы нужен .NET Framework 4.7.2 или выше, но если Windows 10 (или Windows 7) обновляется, то скорее всего фреймворк уже установлен. Из антивирусов только Avast ругался, но проверку проходил без проблем VirusTotal. Утилита проверялась на файлах списка БД созданных программой запуска 1С:Предприятие 8.3. Возможно, 1С:Предприятие 8.1 и 8.2 использует другой формат хранения списка баз.
Вопросы, предложения, критику, пожелания приветствую в комментариях.
Ниже, я попытался сделать описание программы по ГОСТ.
1. Общие сведения
Утилита копирования файловых баз данных 1С предназначена для создания копий нескольких информационных баз на большом количестве компьютеров. Реализована на .NET Framework 4.7.2 и написана на языке C#.
2. Функциональное назначение
Утилита помогает создавать резервные копии файловых баз данных 1С на ПК клиентов, где сами базы и папки с копиями располагаются в разных местах на диске. Работает копирование с сетевых дисков и на них.
Программа считывает имена и расположения файлов баз данных из списка баз 1С в папке AppData пользователя. Копирование производится в выбранную папку на диске.
3. Описание логической структуры
Утилита состоит из одной формы, на которой размещены все элементы управления.
При запуске программы, она считывает файл списка баз (по умолчанию это %userprofile%\AppData\Roaming\1C\1CEStart\ibases.v8i), заполняет коллекцию List и из неё заполняет элемент формы ListBox.
Если база не файловая или файл базы данных не найден, то в начале имени базы в ListBox будет соответственно дописано «[Серверная БД]» и «[Файл БД не найден]». Такие базы не могут быть скопированы данной утилитой.
Если в имени базы присутствуют символы, которые не могут использоваться в именах файлов (/, “, * и т.д.), то такие символы удаляются с помощью регулярного выражения. В ListBox попадает измененное имя базы.
Пользователь может:
• выбрать базы для копирования, щелкнув на имя базы в ListBox, для отмены выделения нужно щелкнуть ещё раз на имя базы;
• выбрать другой список баз или другую папку с копиями, нажав на кнопки «…» рядом с соответствующими полями;
• изменить режим замены файлов при конфликте имен с помощью RadioButton: не копировать (выбрано по умолчанию), заменить и сохранить оба. При выборе «сохранить оба» к имени новой копии добавляется дата и время начала копирования;
• с помощью CheckBox выбрать нужно ли открыть папку с копиями по завершению копирования;
• открыть папку с копиями с помощью одноименной кнопки.
После выбора нужных баз нажатием на кнопку «Скопировать базы», проверяется наличие целевой папки с копиями (если её нет, то создаётся) и проходит копирование файлов БД. Копируется только исходный файл 1cv8.1cd.
В textBox внизу формы отображается создалась ли папка, а также результаты копирования каждой выбранной базы.
4. Используемые технические средства
Утилита предназначена для ПК с ОС семейства Windows. Для работы необходима установленная платформа .NET Framework 4.7.2 или выше. Клиентские лицензии 1С не требуются. Все операции утилита выполняет с помощью ОС и не взаимодействует с платформой и сервером 1С, серверами БД.
5. Вызов и загрузка
Утилита распространяется в виде одного файла CopyBases1C.exe. Ключей запуска программы нет.
6. Входные данные
Входными данными для утилиты является файл списка баз данных 1С, который формирует программа запуска 1С:Предприятие.
7. Выходные данные
Выходные данные - копии файловых информационных баз 1С в папке, указанной пользователем.