Как закрыть 1С для определенной копии без влияния на другие конфигурации?

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

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

        На основной проге достаточно предупреждения. Там оператор будет запускать копирование. А на копии ничего серьезного Там просмотры отчетов. И формирование одного отчета для бухгалтерии с распределением суммы затрат. Там можно закрыть в батнике. Но на сервере работают другие конфы (ЗУП,Договора, и т.д) Вот здесь нужно аккуратно

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

          Понял задачу — на основном ПК просто предупреждаем оператора закрыть 1С, а на копии (где только отчёты и одна конфа) можно закрыть 1С через батник, но аккуратно, чтобы не трогать другие конфигурации.

          ### Как сделать аккуратно закрытие 1С только для нужной копии?

          1С запускается одним процессом 1cv8.exe, но у тебя на сервере несколько баз и конфигураций. Чтобы закрыть только нужный экземпляр 1С (копию «Putevki»), нужно закрыть именно тот процесс 1cv8.exe, который работает с этой базой.

          ### Варианты решения:

          #### 1. Закрыть все процессы 1cv8.exe на сервере — НЕ подходит, т.к. есть другие конфы.

          #### 2. Закрыть процесс 1cv8.exe, у которого в заголовке окна есть «Putevki» (название базы).

          Для этого можно использовать PowerShell скрипт, который найдет окно с нужным заголовком и завершит процесс.

          ### Пример PowerShell скрипта для закрытия 1С с окном «Putevki»:

          ### Как использовать:

          — Сохрани этот скрипт в файл ClosePutevki.ps1 на сервере.
          — В батнике вызови его так:

          — После закрытия можно запускать копирование.

          ### Почему так?

          — Этот скрипт ищет процессы 1cv8.exe с окном, в названии которого есть «Putevki».
          — Закрывает сначала корректно через CloseMainWindow().
          — Если процесс не закрылся за 5 секунд — принудительно убивает.
          — Другие процессы 1С (ЗУП, Договора и т.п.) не трогает.

          ### В батнике общий алгоритм:

          Если PowerShell скрипт кажется сложным, могу помочь упростить или сделать вариант на чистом батнике, но с меньшей точностью (например, закрывать все 1cv8.exe на сервере, что не подходит).

          Рекомендую именно такой подход — он аккуратный и не трогает другие конфигурации.

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