Скрипт - выгонялка пользователей + резервная копия базы.

Публикация № 175494

Администрирование - Администрирование данных 1С - Архивирование (backup)

В Клиент-серверном режиме работы базы часто возникает необходимость выгонять пользователей чтобы сделать обновление, резервные копии и т.п. Для ленивых, которым неудобно всех выгонять "руками" или ждать окончания рабочего дня, предлагается простой скрипт, который всё сделает за вас.

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

Для работы скрипта необходимо зарегистрировать библиотеку ComCntr.dll (Для инициализации объекта V82.Comconnector). Для Windows server 2008 необходимо зарегистрировать COM+ компоненту на основе этой библиотеки.

Скрипт рекомендуется повесить в рассписание сервера.

Ниже приводится пример скрипта (.VBS) для двух баз - зарплаты и бухгалтерии.

'Скопируйте этот скрипт в текстовый файл txt и поменяйте расширение на VBS

'Скрипт выгодняет принудительно пользователей из базы данных посредством подключения к кластеру серверов
'После того как будут выгнаны все пользователи, делается резервное копирование в папку "D:\1c_backup\"
'Сохраненные файлы датируются текущей датой, неактуальные копии НЕ УДАЛЯЮТСЯ

'Процедура закрытия соединений. Создастся служебные пользователи администратора COM.По завершении процедуры они убьются сами
Sub CloseConnection()
    Dim Connector, Agent, Cluster, WorkProcess, WorkProcessConnection, Base, Connections, i, CurrentConnection
    Dim BaseList

    'Идентификаторы баз в кластере серверов
    BaseName = "zarp"
    BaseNameAcc = "buhg"

    Set Connector = CreateObject("V82.COMConnector")

    'Селект текущего кластера серверов
    Set Agent = Connector.ConnectAgent("127.0.0.1")
    Set Cluster = Agent.GetClusters()(0)


    Agent.Authenticate Cluster, "aleksei", "7344"

    'Получение рабочего процесса кластера
    For Each WorkProcess In Agent.GetWorkingProcesses(Cluster)

            ConnectString = WorkProcess.HostName & ":" & WorkProcess.MainPort

            Set WorkProcessConnection = Connector.ConnectWorkingProcess(ConnectString)

            'Установка аутентификации в базах. В бухгалтерии и зарплате создан логин "Алексей"
            WorkProcessConnection.AddAuthentication "Алексей", "tystik1233"

           'Получение списков баз на сервере    
            BaseList = WorkProcessConnection.GetInfoBases()

            'Отключение пользователей из Зарплаты
            For i = LBound(BaseList) To UBound(BaseList)
                If BaseList(i).Name = BaseName Then
                        Set Base = BaseList(i)

                        'Получение соединений с базой, отрубаем всех ктоме COM-Администраторов, он вырубится когда закончится скрипт        
                        Connections = WorkProcessConnection.GetInfoBaseConnections(Base)

                        For j = LBound(Connections) To UBound(Connections)
                            Set CurrentConnection = Connections(j)
                            If CurrentConnection.AppID <> "COMConsole" Then
                         'MSGBOX "Пользователь зарплаты : " & CurrentConnection.UserName
                         WorkProcessConnection.Disconnect CurrentConnection
                            End If
                        Next

                   End If
 
                'Отключение пользователей из бухгалтерии
                If BaseList(i).Name = BaseNameAcc Then
                        Set Base = BaseList(i)

                    'Получение соединений с базой, отрубаем всех ктоме COM-Администраторов, он вырубится когда закончится скрипт
                        Connections = WorkProcessConnection.GetInfoBaseConnections(Base)

                        For l = LBound(Connections) To UBound(Connections)
                            Set CurrentConnection = Connections(l)
                            If CurrentConnection.AppID <> "COMConsole" Then
                         'MSGBOX "Пользователь бухгалтерии : " & CurrentConnection.UserName
                         WorkProcessConnection.Disconnect CurrentConnection
                            End If
                        Next
                End If
            Next    

    Next
End Sub

'Резервная копия, создается файл *.dt по формату ПрефиксБазы_+ТекущаяДата.dt
Sub BackUp()

    'Папка архив
    Dim Folder
    Dim FileNameSalary
    Dim FileNameAcc
    Dim WSShell
    
    Folder = """D:\1c_backup\"

    'Создание шела для выполнения команд windows
    Set WshShell = Wscript.CreateObject("Wscript.Shell")

    'Копирование зарплаты
    FileNAmeSalary = Folder & "salary\Salary_" & Date() & ".dt"""
    CmdLine = """C:\Program Files (x86)\1cv82\8.2.17.143\bin\1cv8.exe"" DESIGNER /S ""127.0.0.1\zarp"" /N ""Алексей"" /P ""tystik1233"" /DUMPIB " & FileNameSalary
    WshShell.Run CmdLine, 1, True    
    'MSgBox CmdLine
    
    'копирование бухгалтерии
    FileNameAcc = Folder & "acc\Acc_" & Date() & ".dt"""
    
    CmdLine = """C:\Program Files (x86)\1cv82\8.2.17.143\bin\1cv8.exe"" DESIGNER /S ""127.0.0.1\buhg"" /N ""Алексей"" /P ""tystik1233"" /DuMPIB " & FileNameAcc
    WshShell.Run CmdLine, 1, True    
    'MsgBox CmdLine

End Sub

'# Основной модуль работы программы, сначала выгоняются юзеры, потом делаются бэкапы
CloseConnection
BackUp

 

 

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. bforce 439 26.02.13 11:33 Сейчас в теме
Предлагаю разукрасить код, а то грустно смотрится 8-)
http://s-c.me/scme.aspx
2. Borometr 35 27.02.13 06:05 Сейчас в теме
Много раз слышал фразу, что "выгружать клиент-серверную базу нужно средствами СУБД". Честно говоря не понимал почему. Недавно выгрузил клиент-серверную ЗБУ через конфигуратор, загрузил её во вновь созданную базу уже файловую. Смотрю, а объекты то не все в базе и есть некие отличия от оригинала базы. Почему так получилось, ума не приложу.
3. OrsoBear 27.02.13 08:22 Сейчас в теме
Еще бы готовый комплект с инструкцией.. а то в теории не сразу все понятно. Пришлось еще описания искать.
Но все равно спасибо.
4. rus128 2 27.02.13 13:09 Сейчас в теме
огромное количество ошибок.
читается с трудом.
5. Al-X 27.02.13 14:12 Сейчас в теме
Да, хотелось бы готовый скрипт. А то простое копирование, как-то не совсем работает.
6. gala2009 19 28.02.13 19:48 Сейчас в теме
не проверяла, но скрипт нужный
7. 1cmax 151 03.03.13 20:41 Сейчас в теме
куча всякого добра на эту тему давно написано
8. DERL 25.03.13 14:54 Сейчас в теме
Спасибо! Выгонялка очень понадобилась. До этого всегда пользовался Egida Backup, но она очень часто говорит что не нашла бэкап файл во временной директории, а другие архиваторщики не умеют выгонять пользователей или делают это не за бесплатно )).
Подкорректировал ваш скрипт и все работает.
9. 1_C 25.04.13 11:53 Сейчас в теме
Не выгоняет пользователей под тонким клиентом ,как решить эту проблему??
10. DERL 11.09.13 11:42 Сейчас в теме
(9) я для этого использую метод TerminateSession агента
вот пример:

Dim objFSO
Dim objFile
Dim LogFileName
Dim Result

Sub CloseConnection()
Dim Connector, Agent, Cluster, WorkProcess, WorkProcessConnection, Base, Connections, i, CurrentConnection
Dim BaseList


'Идентификаторы баз в кластере серверов
BaseName = "Base8"

Set Connector = CreateObject("V82.COMConnector")

'Селект текущего кластера серверов
Set Agent = Connector.ConnectAgent("MyServer")
Set Cluster = Agent.GetClusters()(0)


Agent.Authenticate Cluster, "Admin", "pass1"

MassBase = Agent.GetInfoBases(Cluster)

For i = LBound(MassBase) To UBound(MassBase)
Set Base = MassBase(i)
'MsgBox Base.Name
If Base.Name = "Base1CV8" Then

Sessions = Agent.GetInfoBaseSessions(Cluster, Base)
For k = LBound(Sessions) To UBound(Sessions)

Set ThisSession = Sessions(k)

If ThisSession.AppID <> "COMConsole" Then
Agent.TerminateSession Cluster, ThisSession
'MsgBox "User: " & ThisSession.UserName & " App ID: " + ThisSession.AppID

End If
Next

Exit For
End If
Next

End Sub
adapter; smirnovserg.s@gmail.com; +2 Ответить
Оставьте свое сообщение

См. также

Тонкая настройка ежедневного резервного копирования базы данных 1С средствами SQL ver. 2014 (SP3) - 12.0.6024.0 (X64)

Статья Системный администратор Программист Нет файла v8 Россия MS SQL Бесплатно (free) Архивирование (backup)

Хочу вам предложить небольшой пример, как можно реализовать резервное копирование 1С-ых баз данных средствами SQL. Данный материал не претендует на пулитцеровскую премию. Но возможно кому-то будет интересно узнать, что-то новенькое. Данный материал для резервного копирования только одной базы данных. А именно, если у вас 20-ть баз, то вам придется создавать 20-ть планов обслуживания для каждой базы индивидуально. (Слава разработчикам SQL, они разрешили копировать блоки из одного плана в другой, вам остается только произвести небольшую настройку для каждого скопированного блока - некоторые настройки блоков сбрасываются и выставляются значением по умолчанию и остаются неактивными)

07.10.2019    6359    DrZombi    49       

Управление ИТ-проектами. Модуль 2: продвинутый онлайн-курс по классическим методам управления проектами. Вебинары проходят с 12 марта по 11 июня 2020 года. Промо

Продвинутый онлайн-курс по классическому управлению ИТ-проектами позволит слушателям освоить инструменты из PMBoK® и 1С:Технологии корпоративного внедрения и научиться их применять для проектов любого масштаба. Курс включает в себя 12 вебинаров и 12 видеолекции, разбор кейсов и рекомендации экспертов по проектам слушателей. Ведущая курса - Мария Темчина.

от 13000 рублей

Настройка резервного копирования (резервирования) баз данных 1С: Предприятие на MS SQL Server

Статья Системный администратор Нет файла v8 1cv8.cf Россия Windows Бесплатно (free) Архивирование (backup)

Настройка резервного копирования (резервирования) баз данных на "бюджетной" версии 1С Предприятие под MS SQL Server. Используется пример MS SQL Server 2008 R2 под Windows. Для малых и средних предприятий, исключая производственные и торговые, так как тестирование на них не проводилось.

30.10.2018    10011    unclevad    16       

1C:Предприятие для программистов: Расчетные задачи (зарплата). Онлайн-интенсив с 01 по 17 июня 2020 г. Промо

Данный онлайн-курс предусматривает изучение механизмов платформы “1С:Предприятие”, которые предназначены для автоматизации периодических расчетов, а именно - для расчета зарплаты. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”, а также для опытных пользователей прикладного решения “1С:Зарплата и управление персоналом” и прочих прикладных решений, в которых реализован функционал расчета зарплаты.

4900 рублей

Резервное копирование "онлайн" клиент-серверных баз в dt (не отключая пользователей)

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) Архивирование (backup)

Как реализовать резервное копирование клиент-серверных баз 1с в формат dt, не отключая пользователей. Рассматривается способ, делающий резервирование наименее заметным для пользователей и серверного оборудования.

03.10.2017    21562    konstanta_online    80       

Базовый курс по обмену данными в системе 1С:Предприятие. Онлайн-интенсив с 12 по 28 мая 2020 г. Промо

Данный онлайн-курс предусматривает изучение механизмов платформы “1С:Предприятие”, обеспечивающих обмен данными между различными прикладными 1С-решениями и взаимодействие с другими информационными системами. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”.

5500 рублей

Рекомендации по организации резервного копирования для систем с Windows Server / Windows SQL Server

Статья Системный администратор Нет файла v8 Windows Бесплатно (free) Архивирование (backup)

В данной статье мы рассмотрим работу с резервными копиями базы данных 1С, а также некоторые приемы, оптимизирующие работу с резервными копиями.

10.10.2016    16953    Zebar    12       

1C:Предприятие для программистов: Запросы и отчеты. Второй поток. Онлайн-интенсив с 17 марта по 16 апреля 2020 г. Промо

Данный онлайн-курс предусматривает углубленное изучение языка запросов и возможностей системы компоновки данных, которые понадобятся при разработке отчетов, работающих на платформе “1С:Предприятие” в рамках различных прикладных решений. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”, а также для опытных пользователей различных прикладных решений, которые используют в своей работе отчеты разного назначения.

6500 рублей

Как я восстанавливал разрушенную базу

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Архивирование (backup) Распределенная БД (УРИБ, УРБД) Тестирование и исправление

УТ10.3 на Платформе 8.2 на базе MSSQL была разрушена после попытки её восстановить после неудачного динамического обновления. Таблица Config целевой базы была заменена на содержимое таблицы Config от другой рабочей базы. Но на самом деле конфигурации у них существенно отличались, поэтому после таких действий целевая база рухнула окончательно. Что же делать?

21.08.2015    26602    METAL    25       

Сдача регламентированной отчетности из программ 1С Промо

Сдача регламентированной отчетности из программ "1С" во все контролирующие органы без выгрузок и загрузок в другие программы. Для групп компаний действуют специальные предложения.

от 1500 руб.

Просто и сердито. Архивирование (backup) типовых конфигураций 1С 8.2, 8.3

Статья Системный администратор Нет файла v8 1cv8.cf Windows Бесплатно (free) Архивирование (backup)

После эксплуатации различных "бесплатных" обработок и скриптов решил написать свой cmd-файл для ежедневного архивирования баз 1С. Работает на конфигурациях, где есть процедуры "ЗавершитьРаботуПользователей" и "РазрешитьРаботуПользователей" (т.е. во всех типовых, в нетиповые данные модули можно скопировать из типовых). Сохраняет файлы как локально так и на удаленном файловом сервере. Автоматически удаляет старые архивы и копирует на удалённый сервер отсутствующие. Расписание задается установкой соответствующего задания (запуска cmd-файла по времени) в планировщике задач Windows. Для борьбы с зависшими сеансами, рекомендуется настроить в режиме конфигуратора параметры информационной базы: "Время засыпания пассивного сеанса" и "Время завершения спящего сеанса".

18.06.2015    16230    Prelude    14       

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

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Архивирование (backup) Администрирование данных 1С

В 1С:Предприятии 8.2 есть ограничение на выгрузку базы в формате DT. Выгрузить базу можно, только если в ней нет активных пользователей. В этой статье поделюсь способом, как обойти это ограничение и сделать невозможное.

16.09.2013    45346    yurega    54       

​​​​​​​CorelDRAW Graphics Suite 2019 Промо

CorelDRAW – пакет профессиональных инструментов для редактирования фотографий, разработки дизайна, создания макетов страниц и векторных иллюстраций

Восстановление SQL базы 1С 8.2. после неудачного сохранения конфигурации

Статья Системный администратор Программист Нет файла v8 Россия Windows Бесплатно (free) Архивирование (backup) Администрирование данных 1С

При динамическом обновлении, в процессе сохранения конфигурации, вылетела база 1С и отказалась заходить в режим Конфигуратора, выдавая сообщение "Внимание!!! При обновлении данных, после последней реструктуризации, произошла ошибка. Повторить обновление?", если ответить утвердительно, то появлялось сообщение "Обнаружена незавершенная операция сохранения конфигурации. Для продолжения работы необходимо завершить операцию.", после чего Конфигуратор закрывался.

18.07.2013    34247    lord_soth    45       

Резервное копирование 1С средствами MS SQL.

Статья Системный администратор Нет файла v8 1cv8.cf Windows Бесплатно (free) Архивирование (backup)

В этой статье описано самое обычное резервное копирование ИБ 1С при помощи инструментов MS SQL Server 2008 R2, объяснено почему следует делать именно так, а не иначе, и развеяно несколько мифов.

17.02.2013    238658    speshuric    79       

INFOSTART MEETUP Kazan. 13 марта 2020 г. Промо

Инфостарт продолжает путешествие по России. Следующая остановка - Казань. Тема мероприятия - управление и технологии автоматизации учета на платформе "1С: Предприятие". Ждем всех: докладчиков и участников! Стоимость участия - 5 500 рублей. Цена действительна до 30.01.2020

5 500

Хранение удаленных документов в отдельной базе. Часть 1.

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Архивирование (backup) Администрирование данных 1С

Резервное хранение данных. Пример работы с внешними источниками данных. Работа с файлами. Подписка на событие. Работа с XML файлами. Сериализатор XDTO.

12.12.2012    14719    egorovntn    10       

Восстановление файловой версии базы данных *.1CD после ошибки динамического обновления.

Статья Системный администратор Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Сервисные утилиты Архивирование (backup) Администрирование данных 1С Тестирование и исправление

Восстановление работоспособности файл-серверной базы данных (файл *.1CD) после критической ошибки, возникшей в результате динамического обновления с последующим предупреждением "Внимание!!! При обновлении данных, после последней реструктуризации, произошла ошибка. Повторить обновление?".

02.10.2012    48737    djserega    74       

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Автоматическое регулярное разворачивание оперативных бэкапов (совсем просто) в MS SQL 2008

Статья Системный администратор Нет файла v7.7 v8 1cv8.cf 1cv7.md Россия Windows Бесплатно (free) Архивирование (backup)

В работе регулярно возникает необходимость протестировать поведение программы на копии рабочей базы с актуальными данными

10.08.2012    16830    sergiobargio1    6       

Регулярные оперативные копии рабочих баз 1С с помощью MS SQL 2008

Статья Системный администратор Нет файла v8 1cv8.cf Россия Windows Бесплатно (free) Архивирование (backup) Администрирование данных 1С

В течение дня необходимо производить отладку "допилов" на свежих копия рабочих баз. Также необходимы актуальные копии и для экспериментов, в том числе и пользователям. На этом замечательном ресурсе есть много полезных публикаций с различными вариантами, как это сделать. В одном из них предлагается использовать инструмент мгновенных снимков баз, которые возможно выполнить только в версии Express Edition. В этом посте очень простой вариант, не требующий дорогостоящей версии MS SQL

01.08.2012    17877    sergiobargio1    8       

Онлайн-курс "Подготовка к экзамену 1С:Эксперт и 1С:Профессионал по технологическим вопросам" с 7 по 24 апреля 2020 г. Промо

На курсе вы получите практические навыки решения задач производительности 1С, в том числе характерных для высоконагруженных информационных систем (более 1000 пользователей). Подготовка к экзамену – только одна из составляющих курса. 70% слушателей приходят за знаниями, которые позволят расти и зарабатывать, делать сложные задачи на крупных проектах.

16450 рублей

Автоматизация создания резервных копий в MS SQL Express Server

Статья Системный администратор Нет файла v8 1cv8.cf Россия Windows Бесплатно (free) Архивирование (backup)

В версии Microsoft SQL Server 2005/2008/2008R2 Express Edition серверах нет стандартных средств создания резервных копий баз данных по расписанию. Восполнить этот пробел поможет простое решение

18.06.2012    28383    LexSeIch    4       

Голосование за доклады на INFOSTART MEETUP Kazan - до 25 февраля. Промо

Выбирайте и голосуйте за самые интересные доклады! Лучшие из лучших попадут в окончательную программу казанского митапа. Оставить свой голос можно до 25 февраля 2020 года.

Восстановление SQL базы 1С 8.2. рухнувшей во время сохранения конфигурации.

Статья Системный администратор Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Тестирование и исправление Архивирование (backup)

При обновлении конфигурации вылетела 1С. После чего наотрез отказалась входить в базу. При этом в конфигураторе выдавалось сообщение "Внимание!!! При обновлении данных, после последней реструктуризации, произошла критическая ошибка. Повторить обновление?" Потом выходило сообщение "Обнаружена незавершённая операция сохранения конфигурации. Для продолжения необходимо завершить операцию". Горела кнопка Ок - на этом работоспособность конфигуратора и базы заканчивалась.

08.02.2012    124241    VanDiesel1    134       

Бэкап 1С:Предприятие 8.х

Статья Системный администратор Нет файла v8 1cv8.cf Россия Бесплатно (free) Архивирование (backup)

Рекомендации по резервному копированию. Бесплатные программы для бэкапа Egida Backup, Effector saver 3, xStarter.

09.11.2011    24792    sinjevla    10       

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

Резервное копирование чеков во внешние файлы и их восстановление

Статья Системный администратор Нет файла v8 Розница Россия Бесплатно (free) Архивирование (backup)

Решение проблемы восстановления потерянных кассовых чеков после восстановления поврежденной базы розницы.

21.10.2011    10068    elizarovs    3       

Архивное копирование 1С8 автоматически и ежедневно

Статья Системный администратор Нет файла v8 1cv8.cf Россия Windows Бесплатно (free) Архивирование (backup)

Выложил ввиду "молодости и горячести" ХД и критики со стороны, дабы не спотыкаться в дальнейшем =)

19.04.2011    6599    AActor    15       

Подборка решений для взаимодействия со ФГИС «Меркурий» Промо

С 1 июля 2019 года все компании, участвующие в обороте товаров животного происхождения, должны перейти на электронную ветеринарную сертификацию (ЭВС) через ФГИС «Меркурий». Инфостарт предлагает подборку программ, связанных с этим изменением.

Скрипт удобного восстановления базы MSSQL при дифференциальном резервировании

Статья Системный администратор Нет файла v7.7 v8 1cv8.cf 1cv7.md Россия Windows Бесплатно (free) Архивирование (backup)

Если у Вас база на MSSQL и Вы пользуетесь разностными бекапами, то, скорее всего, столкнулись с тем, что поднять базу/копию базы из имеющихся резервных файлов не столь удобно, как того хотелось бы. В этой статье приведен скрипт по теме.

20.01.2011    28682    Ivon    12       

1С и Postgres: Бэкап

Статья Системный администратор Нет файла v8 1cv8.cf Россия Бесплатно (free) Архивирование (backup)

Для начала пару слов о том, зачем и когда он нужен. Ни для кого не секрет, что сервер это не просто компьютер, а надежный компьютер! Поэтому, если он не сломался в первую неделю после запуска, то не сломается еще очень долго. И поэтому у вас всегда есть возможность какое-то время оставаться вовсе без резервной копии

17.12.2010    21561    alexcid    5