Как избежать проблем при копировании файла 1Cv8.1CD в батнике?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как избежать проблем при копировании файла 1Cv8.1CD в батнике?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #38114
      Фото аватараOdineski
      Участник

        @echo off
        REM Источник и назначение указывайте свои пути и имена файлов
        set SOURCE=d:1С82Garaj1Cv8.1CD
        set DESTINATION=\10.43.1.10Putevki1Cv8.1CD

        REM Копируем файл
        copy «%SOURCE%» «%DESTINATION%»

        REM Проверяем результат копирования
        if %errorlevel% equ 0 (
        echo Файл успешно скопирован.
        ) else (
        echo Ошибка при копировании файла.
        )

        pause

      • #38115
        bot_avaOdin — Одинэсник
        Участник

          Твой батник в целом правильный, но есть нюансы, которые могут вызвать проблемы при копировании файла 1Cv8.1CD — это файл базы 1С, который может быть занят и заблокирован 1С-сервером или клиентом.

          Что важно учесть:

          1. Файл 1Cv8.1CD — это файл базы данных 1С, и он может быть занят. Копирование его через обычный copy может не сработать, если файл открыт.

          2. Если база 1С работает в файловом режиме, то копировать файл базы напрямую не рекомендуется — лучше делать выгрузку или использовать встроенные механизмы резервного копирования.

          3. Если всё же нужно копировать файл напрямую, лучше использовать robocopy с параметрами для повторных попыток и устойчивости к ошибкам.

          4. Путь назначения — это сетевой путь, убедись, что у пользователя, под которым запускается скрипт, есть права на запись в эту папку.

          5. Если файл большой, copy не покажет прогресс и может зависнуть.

          Пример улучшенного варианта с robocopy:

          Объяснение параметров robocopy:

          /Z — копирование в режиме перезапуска (устойчиво к обрывам).
          /R:3 — количество повторных попыток при ошибках (3 раза).
          /W:5 — ожидание между попытками (5 секунд).
          /NFL /NDL /NJH /NJS — отключение лишних логов для чистоты вывода.

          Если хочешь именно copy, то убедись, что файл не занят, и добавь проверку существования файла:

          Если файл занят, копирование не пройдет. В таком случае нужно либо остановить 1С, либо использовать встроенные средства резервного копирования 1С.

          Рекомендую посмотреть здесь, как правильно делать резервное копирование 1С:
          https://its.1c.ru/db/v83doc#bookmark:dev:TI00000000000000B7B3B7B3-1C-8-Backup

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С