Очистка относится к реальному собственному хранилищу и явно согласованной дате, не к пустому общему отбору.
Где и как запускать
Синтаксический пример толстого клиента Windows, обращающегося к COM-интерфейсу своего отдельного учебного сервера. Эти COM-методы в справке имеют контекст «Интеграция». Здесь COM не запускался.
Подготовка
Подготовьте собственный локальный учебный агент по 127.0.0.1:1540, ровно один свой кластер и один свой рабочий процесс. На компьютере примера должен быть зарегистрирован совместимый V85.COMConnector.
Заполните в своей форме ИмяАгента, ПарольАгента, ИмяАдминистратораКластера и ПарольКластера. Для доступа к своей ИБ нужны ИмяАдминистратораБазы и ПарольБазы. Все пароли вводятся скрыто и не печатаются.
Подключение рабочего процесса берёт действительный адрес из полученного описания процесса. Это не подключение по случайному GUID или к неизвестной машине.
Используйте только собственное встроенное хранилище выделенной учебной ИБ. Пути C:\УчебныеДанные\full.bak и C:\УчебныеДанные\diff.bak относятся к компьютеру сервера, не к клиенту.
Для создания подготовьте новые незанятые пути и права серверной учётной записи. Для восстановления заранее приготовьте согласованную свою полную и соответствующую ей дифференциальную копию и отдельное учебное назначение.
Загрузка заменяет данные. Эти фрагменты нельзя запускать для рабочих хранилищ. Здесь никакие архивы не создавались и не загружались.
Создайте реквизит ДатаГраницыUTC типа Дата и вручную задайте ненулевую согласованную границу для собственных удалённых данных.
Менеджер = Новый COMОбъект("V85.COMConnector");
Агент = Менеджер.ConnectAgent("127.0.0.1:1540");
Агент.AuthenticateAgent(ИмяАгента, ПарольАгента);
Кластеры = Агент.GetClusters().Выгрузить();
Кластер = Кластеры[0];
Агент.Authenticate(Кластер, ИмяАдминистратораКластера, ПарольКластера);
Процессы = Агент.GetWorkingProcesses(Кластер).Выгрузить();
ОписаниеПроцесса = Процессы[0];
Адрес = ОписаниеПроцесса.HostName + ":" + Формат(ОписаниеПроцесса.MainPort, "ЧГ=0;ЧДЦ=0");
Процесс = Менеджер.ConnectWorkingProcess(Адрес);
Процесс.AuthenticateAdmin(ИмяАдминистратораКластера, ПарольКластера);
Процесс.AddAuthentication(ИмяАдминистратораБазы, ПарольБазы);
Базы = Процесс.GetInfoBases().Выгрузить();
Если Базы.Количество() <> 1 Тогда
ВызватьИсключение "Нужна одна собственная учебная ИБ";
КонецЕсли;
База = Базы[0];
Хранилища = Процесс.GetInfoBaseBinaryDataStorages(База).Выгрузить();
Если Хранилища.Количество() <> 1 Тогда
ВызватьИсключение "Нужно одно собственное встроенное хранилище";
КонецЕсли;
Хранилище = Хранилища[0];
Сообщить("Хранилище: " + Хранилище.Name);
Процесс.ClearBinaryDataStorageUnusedSpace(Хранилище, ДатаГраницыUTC);
Сообщить("Вызов до согласованной UTC-границы выполнен");Разбор по шагам
Получите собственный дескриптор хранилища.
Проверьте смысл UTC-границы.
Передайте его и дату в явную операцию очистки.
Как проверить результат
Второй аргумент — UTC, а не автоматически время клиента.
Количество очищенного места не выводится из факта завершения вызова.
Ожидаемый результат
Это короткий синтаксический пример для указанного учебного стенда. Здесь он не выполнялся; сообщение после вызова не заменяет отдельную проверку фактического состояния.
На что обратить внимание
Может измениться возможность восстановления удалённых данных. Это реальная очистка при выполнении, здесь она не запускалась.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.