RAS: полная и дифференциальная копии своего хранилища

Учебные задачи

Передаём действительное хранилище своей ИБ, а не самостоятельно созданный дескриптор неизвестного хранилища.

Где и как запускать

Синтаксис в своей административной форме тонкого или толстого клиента либо серверном модуле. Соединение RAS относится только к выделенному собственному учебному серверу. Здесь соединения и изменения не выполнялись.

Подготовка

  1. Подготовьте собственный отдельный учебный сервер 1С с RAS по 127.0.0.1:1545 и ровно одним своим кластером. Не направляйте пример на сервер рабочих пользователей.

  2. В административной форме задайте строковые реквизиты ИмяАгента, ПарольАгента, ИмяАдминистратораКластера и ПарольКластера. Пароли вводятся в режиме пароля и не выводятся в сообщения. RAS аутентифицирует агента в порядке пароль, имя, а кластер — имя, пароль.

  3. Используйте только собственное встроенное хранилище выделенной учебной ИБ. Пути C:\УчебныеДанные\full.bak и C:\УчебныеДанные\diff.bak относятся к компьютеру сервера, не к клиенту.

  4. Для создания подготовьте новые незанятые пути и права серверной учётной записи. Для восстановления заранее приготовьте согласованную свою полную и соответствующую ей дифференциальную копию и отдельное учебное назначение.

  5. Загрузка заменяет данные. Эти фрагменты нельзя запускать для рабочих хранилищ. Здесь никакие архивы не создавались и не загружались.

  6. В кластере должна быть только одна своя учебная ИБ и одно её встроенное хранилище. Подготовьте скрытые реквизиты ИмяАдминистратораБазы и ПарольБазы.

Сервер = Новый АдминистрированиеСервера("127.0.0.1", 1545);
Сервер.ВыполнитьАутентификацию(ПарольАгента, ИмяАгента);
Кластеры = Сервер.ПолучитьКластеры();
Если Кластеры.Количество() <> 1 Тогда
    ВызватьИсключение "Нужен ровно один собственный учебный кластер";
КонецЕсли;
Кластер = Кластеры[0];
Кластер.ВыполнитьАутентификацию(ИмяАдминистратораКластера, ПарольКластера);
Базы = Кластер.ПолучитьИнформационныеБазы();
Если Базы.Количество() <> 1 Тогда
    ВызватьИсключение "Нужна ровно одна собственная учебная ИБ";
КонецЕсли;
База = Базы[0];
База.ВыполнитьАутентификацию(ИмяАдминистратораБазы, ПарольБазы);
Хранилища = База.ПолучитьХранилищаДвоичныхДанных();
Если Хранилища.Количество() <> 1 Тогда
    ВызватьИсключение "Нужно одно подготовленное собственное хранилище";
КонецЕсли;
Хранилище = Хранилища[0];
Хранилище.СоздатьПолнуюРезервнуюКопию("C:\УчебныеДанные\full.bak");
Хранилище.СоздатьДифференциальнуюРезервнуюКопию("C:\УчебныеДанные\diff.bak", "C:\УчебныеДанные\full.bak");
Сообщить("Запрошены две копии собственного хранилища");

Разбор по шагам

  1. Получите хранилище через настоящую ИБ и аутентификацию.

  2. Создайте полную копию по новому серверному пути.

  3. Создайте дифференциальную копию с указанием соответствующей полной.

Как проверить результат

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

  2. Реальные файлы и пригодность копий проверяются отдельно только в своём учебном стенде.

Ожидаемый результат

Это короткий синтаксический пример для указанного учебного стенда. Здесь он не выполнялся; сообщение после вызова не заменяет отдельную проверку фактического состояния.

На что обратить внимание

  1. Это запись серверных файлов при выполнении. Здесь файлов и архивов не создавалось.

  2. Дифференциальная копия не является самостоятельной полной копией.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.