Как завершить работу 1с

Обновлено: 29.06.2024

Давно закончил, только сейчас дошли руки написать, может кому понадобится)
Вообщем решил задачу путем получения ComОбъекта на Сервере и поместил ComОбъект во временное хранилище
После открываю диалоговое окно, и спрашиваю закрыть базу или нет
Если "Закрыть" тогда достаем ComОбъект из временного хранилища и закрываем Базу клиента и ComОбъект

(1) Такой способ без доработок мне неизвестен, но есть вариант попроще, можно завершить сеанс принудительно через консоль администрирования. Так же с ней возможно программная работа. консоль администрирования. Так же с ней возможно программная работа

То что нужно) подскажи пожалуйста где посмотреть?
как программно можно закрыть другую конфигурацию предприятия 1с?

(4) Посмотрите любую современную БСП, там есть обработка "активные пользователи" она умеет завершать сеанс пользователей в текущей базе. Думаю не составит труда разобраться и переписать код под другую базу.

(6) Спасибо!
Возможно это помогло бы если мы работали на своем сереве(. Базы находятся на Рарусе, у них доступ везде обрезан, попытался сделать обработку, выдает ошибку прав доступа

Может есть другие решения?
Или как еще можно связать базы, что бы первая база понимала в какой момент закрылась вторая база?

Или как еще можно связать базы, что бы первая база понимала в какой момент закрылась вторая база?
А что значит "закрылась вторая база" ? Как у вас база "закрывается" ?
Или вам надо проверить что в базе не осталось активных сеансов? (8) "закрылась вторая база" имею ввиду что бы открытая ранее база под определенным пользователем был закрыт сеанс (9) обмена нет
только открытие одной базы предприятия 1с и ее нужно закрыть по кнопке или как то получить от открытой базы информацию о завершении сеанса (7) У вас доступ к самой консоли администрирования 1С есть?
И вообще как устроена архитектура баз, один кластер или несколько разных? (10) доступа к консоли администрирования 1С нету
архитектура баз: один кластер Вводные задачи:
Есть база УНФ 1.6 в ней есть возможность открытия других баз по кнопке, допустим "открыть Бухгалтерию 3.0" (сервер)
Реализована это кнопка через COMОбъект:

Моя задача:
Сделать так что бы при нажатие на кнопку "открыть Бухгалтерию 3.0", все окна в УНФ блокировалась до окончании работы в открывшейся базе Бухгалтерию 3.0

Мои попытки решить задачу:
1. через диалоговое окно:
вопрос:Завершил работу в Бухгалтерии 3.0 ?
Да Нет
Если да тогда завершаем задачу через "ПодключениеКИнформационнойБазе"

но не могу сохранить "ПодключениеКИнформационнойБазе" в переменную
Может есть по этому решению предложения?

2. думал можно как то соединиться с уже существующим соединением (Найти его), но что то не получается найти как это сделать

3. при открытии передавать какое то значение что бы он его возвращал при закрытии сеанса


Надоело делать резервную копию 1с вручную? Сейчас расскажем, как можно делать резервную копию автоматически – по расписанию.

Вариант для серверной базы данных.

1. Создаем файл с расширением bat приблизительно следующего содержания:

Расшифровка кода операторов командной строки:

set kat=C:Program Files (x86)1cv88.3.9.2170 – устанавливаем путь к исполняемым файлам 1с

set serv=192.168.0.1 – указываем ip или имя сервера 1с

set base=Base – указываем имя базы данных на сервере

set user=Администратор – логин Администратора 1с

set pass=Пароль – Пароль Администратора

set passblok=КодРазрешения – пароль для снятия блокировки работы пользователей в 1с. По умолчанию равен = КодРазрешения

Этот пароль можно посмотреть(и/или) поменять в консоле Администрирования баз данных 1с



set pathexport=“f:Backup1c82_%date%.dt” – указываем путь куда будет выгружаться резервная копия (имя файла будет иметь вид 1с82_01.01.2001.dt на текущую дату)

“%kat%in1cv8.exe” ENTERPRISE /S %serv%\%base% /N %user% /P %pass% /DisableStartupMessages /C ЗавершитьРаботуПользователей

-завершение работы пользователей (через 1 минуту) и установка блокировки на вход новых пользователей

“%kat%in1cv8.exe” CONFIG /S %serv%\%base% /DisableStartupMessages /DumpIB %pathexport% /N %user% /P %pass% -NoTruncate /UC %passblok%

-непосредственно выгрузка резервной копии

“%kat%in1cv8.exe” ENTERPRISE /S %serv%\%base% /N %user% /P %pass% /DisableStartupMessages /C РазрешитьРаботуПользователей /UC %passblok%

-снятие блокировки на вход пользователей

2. Запуск этого bat файла по расписанию через планировщик заданий Windows

Планировщик заданий находится: Панель управления Windows- Администрирование-Планировщик заданий


  • Переходим на вкладку триггеры – создаем новый триггер с расписанием


  • Переходим на вкладку действия и создаем новое действие “Запуск программы”, указав путь к bat файлу. Жмем ОК – все выгрузка БД 1с по расписанию настроена

P.S. Если выгрузка занимает длительное время целесообразно создать несколько задач отличных по времени к примеру

  1. Заблокировать базу в 02:50
  2. Выполнить выгрузку базы 1с в 03:00
  3. Разблокировать базу в 05:00

Похожие записи

Резервное копирование баз 1с через командную строку : 2 комментария

Блокировка не работает =(

Что конкретно не работает? Не завершается работа пользователей или новые могут входить? База какая серверная или файловая?

Отключение или Завершение работы пользователей:

Разрешить работу пользователей:

Для успешного выполнения резервного копирования в информационной базе не должно быть активных сеансов пользователей. Чтобы автоматически завершить работу пользователей, перед выполнением бэкапа, в Effector Saver предусмотрен соответствующий механизм.

Для настройки завершения работы пользователей 1С:Предприятия перейдите на вкладку «Отключение пользователей».


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

Установите флаг «Завершить работу пользователей 1С:Предприятия». Из выпадающего меню выберете один из вариантов:

  • «Завершить сеансы на сервере 1С:Предприятие»;
  • «Вызвать штатное завершение работы пользователей».

В случае выбора «Завершить сеансы на сервере 1С:Предприятие» — отключение пользователей происходит путем принудительного завершения сеансов на сервере 1С:Предприятия. Этот вариант подходит только для клиент-серверных баз 1С:Предприятия.

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

Если в кластере 1С:Предприятия создан пользователь «Администратор кластера», установите флаг «Кластер требует авторизации». Заполните поля: «Имя администратора кластера:» и «Пароль администратора кластера:».


Важно: не путайте данного пользователя с пользователем базы 1С:Предприятия и пользователем «Администратор центрального сервера».

В консоли администрирования сервера 1С:Предприятия администраторы кластера расположены по пути:
«Console Root» — «1C:Enterprise 8.3 Central Servers» — «(*)имя компьютера» — «Кластеры» — «Локальный кластер» — «Администраторы».


Если порт подключения к агенту сервера отличный от стандартного, установите флаг «Используется нестандартный порт агента сервера». Заполните поле «Порт агента сервера:», по умолчанию — 1540.


Для определения порта агента сервера зайдите в консоль администрирования сервера 1С. При клике правой кнопкой мыши на имя компьютера из выпадающего меню выберете «Свойства» — «Параметры центрального сервера 1С:Предприятия» — «IP порт:».


Второй вариант, откройте «Службы». Выберите «Агент сервера 1С:Предприятия…» и откройте окно «Свойства», строка «Исполняемый файл:».


В случае выбора «Вызвать штатное завершение работы пользователей» — отключение пользователей происходит путем вызова встроенного в типовые конфигурации механизма завершения работы пользователей. Данный механизм основан на использовании процедуры «Блокировка установки соединений с информационной базой».

Начиная с версии 8.3.8 фирма 1С изменила подход к завершению работы и закрытию приложения. Новомодные веяния – ли, ошибки при работе с WEB интерфейсом – ли, но теперь со всех обработчиков событий, используемых нами при закрытии – «ПередЗавершениемРаботыСистемы» и «ПриЗавершенииРаботыСистемы», сервер не доступен. Рассмотрим, как теперь работают данные обработчики.

Обработчик: ПередЗавершениемРаботыСистемы(Отказ, ТекстПредупреждения)

Как мы помним возникает перед завершением программы, до закрытия главного окна. Если «Отказ» равен «Ложь», то программа просто закрывается, не выдавая никаких вопросов. В нем можно сделать всяческие проверки, все функции должны быть только клиентские (В процессе завершения работы приложения запрещены серверные вызовы и открытие окон.) и может быть установлен отказ от выхода из программы. И вот тут появляется первый подвох. Установление «Отказ» в Истина не отменяет выход из системы, а только указывает, что нужно выдать платформенный диалог, в котором будет предложено выйти или остаться с текстом из параметра «ТекстПредупреждения»:

Диалог завершения программы

И если пользователь нажмет «Завершить работу», все ваши проверки идут лесом. Платформа просто закрывает приложение не зависимо ни от чего. Отловить этот момент в коде нельзя, это все происходит на уровне платформы.

Если же пользователь нажмет на «Продолжить работу», то возможны два варианта событий:

    Если вы внутри вызова функций из данной процедуры подключали обработчик ожидания

Ответ на первый глобальный русский вопрос «кто виноват?» понятен. Я постараюсь ответить на второй «что делать?». Если нам надо что то зафиксировать в базе, например информацию о работе пользователей в системе. Кто когда заходил, кто когда вышел.

Решение однако лежит вообще в другой плоскости, а именно, в регламентном задании которое периодически будет опрашивать систему на активных пользователей, и фиксировать что такой то пользователь уже отсутствует в списке активных.

Для опроса системы у нас есть функция ПолучитьСеансыИнформационнойБазы(), которая возвращает массив сеансов. А для фиксации, что пользователя в сеансах уже нет нужно создавать новый регистр. Я предлагаю периодический (в пределах секунды) РС с двумя измерениями «Пользователь» и «НомерСеанса», в ресурсах же должно быть как минимум поле «ЗавершениеСеанса» по которому мы будем понимать что пользователь нами не обработан или обработан но активен.

Структура регистра

Обработчик: ПриЗавершенииРаботыСистемы()

Привожу полный текст справки:

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

В данной процедуре не допускаются:

  • открытие форм и других окон,
  • использование серверных вызовов,
  • использование асинхронных вызовов.

Вот честно, не понимаю вообще какие действия можно осуществить в данной процедуре? Да мы можем написать кучу кода, что-то сделать с файлами, но ничего сообщить пользователю, что то сделать с базой – мы уже не можем.

Резюме

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

Для правильной работы необходима своевременная установка обновлений, которые отражают изменения законодательства, содержат новую функциональность, исправления возможных ошибок. Обновление производится по команде Администрирование – Обслуживание – Обновление программы – Установка обновлений .

Помощник установки обновлений позволяет провести обновление из файла обновления в локальном, сетевом каталоге (например, с диска 1С:ИТС) или выполнить автоматический поиск обновления в Интернете.


По гиперссылке Поиск и установка обновлений производится поиск обновлений в указанном месте, и если такое обновление найдено, то выводится информация об обновлении: номер версии, размер файла (Мб) и ссылка на описание нового в этой версии.


Если обновление найдено, для начала процедуры обновления необходимо выполнить команду Далее .

Прежде чем продолжить обновление конфигурации, необходимо выполнить следующие действия:

После завершения обновления конфигурации программа будет запущена заново. При первом запуске обновленной конфигурации будет выполнено обновление информационной базы в соответствии с изменившейся версией конфигурации.

9.2. Резервное копирование информационной базы

С целью уменьшения риска потери данных администратору системы необходимо регулярно выполнять резервное копирование ИБ. Частота создания резервных копий зависит от интенсивности ввода новых данных в ИБ.

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

Использование данного функционала предусмотрено только для файлового варианта работы. В случае клиент-серверного варианта для создания резервных копий рекомендуется использовать средства СУБД.

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


В форме Создание резервной копии указывается каталог хранения архивов и выполняется команда Сохранить резервную копию .

9.2.1. Настройка автоматического резервного копирования

Помощник Настройка резервного копирования информационной базы открывается командой Настройка резервного копирования в разделе Администрирование – Обслуживание – Резервное копирование и восстановление .


На странице настройки резервного копирования можно задать способ резервного копирования: по расписанию или при завершении работы системы.

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


Если выбран пункт Выполнять резервное копирование при завершении работы , то при каждом выходе из системы администратору будет предлагаться выполнить резервное копирование ИБ. Если в ИБ одновременно работают два и более администратора с ролью Полные права , то предложение о резервном копировании будет выдано последнему администратору, который выходит из системы.

На этой же странице помощника необходимо указать каталог, куда будут сохраняться резервные копии ИБ. Для того чтобы со временем не возникало переполнения дискового пространства из-за большого количества старых резервных копий, в помощнике можно установить флажок Хранить ограниченное количество резервных копий и задать либо число резервных копий, либо период, за который они будут храниться (например, за последний месяц).

9.2.2. Процедура резервного копирования

При наступлении времени выполнения резервного копирования система установит блокировку ИБ и завершит работу всех пользователей. При этом будет открыта форма, в которой по гиперссылке Активные пользователи можно открыть список подключений к ИБ. Более подробную информацию о блокировке ИБ, завершении работы пользователей и о списке Активные пользователи можно найти в разделе «Завершение работы пользователей».


Если система не сможет завершить работу всех пользователей, то примерно через 5 минут она предложит выполнить резервное копирование при подключенных к ИБ пользователях. С предложением системы можно согласиться, если администратор уверен в том, что подключенные пользователи не вводят данные в ИБ (например, если пользователи в конце рабочего дня забыли выйти из системы). В противном случае необходимо завершить сеансы пользователей на их рабочих местах.

После завершения работы всех пользователей система выполнит резервное копирование.


Для того чтобы войти в информационную базу, если резервное копирование не выполнилось, необходимо запустить «1С:Предприятие» с параметрами:

ENTERPRISE /F <путь к информационной базе> /CРазрешитьРаботуПользователей /UC РезервноеКопирование.

9.2.4. Восстановление данных из резервной копии

В любой момент времени можно восстановить данные ИБ из созданной ранее резервной копии. Все данные в восстановленной ИБ будут актуальны на момент создания копии. Данные, введенные в ИБ после создания резервной копии, будут отсутствовать в восстановленной ИБ.

Для восстановления данных из резервной копии используется помощник Восстановление данных информационной базы из резервной копии .


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

После восстановления система будет перезапущена, поэтому если у администратора для авторизации в системе задан пароль, то на последней странице помощника необходимо его указать. Нажав на кнопку Готово , можно завершить работу помощника. После этого система установит блокировку ИБ и завершит работу всех пользователей, выполнит резервное копирование (если это задано пользователем) и восстановит данные ИБ из указанной резервной копии.

9.3. Тестирование и исправление информационной базы

В процессе работы системы «1С:Предприятие 8» могут возникать различные нештатные ситуации: отключение питания компьютера, «зависание» операционной системы, сбои оборудования и прочее. Такие ситуации, возникшие в процессе записи изменений в информационную базу системы «1С:Предприятие 8», могут привести к ее некорректному состоянию. Внешние проявления некорректного состояния информационной базы могут быть различными, вплоть до невозможности открыть информационную базу в режиме 1С:Предприятие .

Для диагностики и устранения ошибочных состояний информационных баз предназначена процедура Тестирование и исправление информационных баз , которая запускается в режиме Конфигуратор выбором главного меню Администрирование – Тестирование и исправление .

9.4. Автономное исправление информационной базы

В комплект поставки входит утилита восстановления файлового варианта базы данных chdbfl.exe . Утилита предназначена для автономной проверки и исправления файла информационной базы 1Cv8.1CD (то есть без запуска программы «1С:Клиент ЭДО 8»).

Перед использованием утилиты рекомендуется сделать резервную копию информационной базы. Необходимо закрыть программу «1С:Клиент ЭДО 8».


На экран будет выведено окно утилиты.

1. В окне утилиты в поле Имя файла БД нужно указать путь к файлу информационной базы.

2. Чтобы обнаруженные при проверке ошибки сразу исправлялись, установить флажок Исправлять обнаруженные ошибки .

3. Нажать кнопку Выполнить .


9.5. Завершение работы пользователей

Для администратора в программе предусмотрена возможность завершать работу пользователей и блокировать вход в программу на определенный период времени. Такая возможность востребована для проведения профилактических или срочных работ в программе. Обычно такие работы проводят в ночные часы, для того чтобы не затруднять работу в программе других пользователей. Однако бывают различные внеплановые ситуации. Например, необходимость провести обновление версии программы, восстановление после сбоя электроснабжения, резервное копирование информационной базы. Большинство этих работ не могут быть проведены, если пользователи продолжают работать в программе.

Также имеется возможность просмотра списка активных пользователей и перехода к записям журнала регистрации по интересующему пользователю. При работе в клиент-серверном варианте возможно отключение пользовательских сеансов непосредственно из списка активных пользователей, а также блокировка работы регламентных заданий.

9.5.1. Блокировка работы пользователей

В разделе Администрирование – Обслуживание необходимо перейти по ссылке Блокировка работы пользователей .

Заполнить необходимые для блокировки параметры:

Для включения возможности управления блокировкой регламентных заданий необходимо перейти по одноименной ссылке.

В открывшемся окне Управление блокировкой регламентных заданий ввести:

После ввода параметров администрирования ИБ нажать кнопку OK для возврата в окно Блокировка работы пользователей .

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

Открывается окно Блокировка работы пользователей . Нажав на кнопку Остановить , администратор может отменить блокировку.

При наступлении времени блокировки будет автоматически предпринята попытка завершить сеансы работы всех пользователей. Перед блокировкой программа выдает запросы о необходимости сохранения данных и завершения работы. Войти в программу с этого момента будет невозможно, блокировка будет продолжаться до указанного администратором времени. При этом будут выполнены стандартные действия при завершении работы – запрос на завершение (если пользователь настроил себе подтверждение закрытия).

Нужно иметь в виду, что к моменту начала блокировки в программе могут существовать «зависшие» сеансы (например, если пользователи в конце рабочего дня забыли выйти из программы, программа зависла или был запущен сложный отчет). Посмотреть данные о текущих сеансах работы с программой можно в списке Активные пользователи (подробнее см. раздел «Список активных пользователей»). Гарантированное завершение всех пользовательских сеансов возможно только в клиент-серверном варианте программы. В файловом варианте программы требуется завершить «зависшие» сеансы пользователей на их рабочих местах, а также, если необходимо, завершить другие программы, которые подключены к базе по внешнему соединению (COM) или с помощью веб-сервисов.

При попытке войти в программу в период действия блокировки появится предупреждение с инструкцией для администратора. Для того чтобы разрешить работу пользователей, администратору предлагается произвести запуск программы с параметрами. Подробнее см. раздел «Снятие блокировки работы пользователей».

Нужно нажать кнопку Выполнить запуск , чтобы попытаться еще раз запустить программу, или кнопку Отмена , для того чтобы прекратить попытки и закрыть программу.

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

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

Снять блокировку сеансов досрочно можно следующим способом: не завершая работу в программе, после окончания запланированных работ перейти по ссылке Блокировка работы пользователей в разделе Администрирование – Обслуживание , нажать кнопку Снять блокировку .

9.5.3. Список активных пользователей

С помощью ссылки Активные пользователи раздела Администрирование – Поддержка и обслуживание можно перейти к списку пользователей, которые в настоящий момент времени работают в программе. В списке также отображаются внешние пользователи, сеансы, установленные в других режимах подключения (например, соединения, которые производились из других программ через внешние соединения (СОМ) или веб-сервисы). Режим подключения можно увидеть в колонке Приложение . Кроме этого в списке указаны сетевое имя компьютера, с которого выполнен вход в программу, время начала работы и номер сеанса, а также разделение данных.

В клиент-серверном варианте работы имеется возможность Завершить сеанс любого выбранного пользователя (кроме текущего) с помощью кнопки панели навигации или команды меню Еще .

С помощью команд меню Еще можно выполнить сортировку пользователей в списке (по возрастанию и убыванию), а также обновить список.

Для анализа работы выбранного пользователя в списке Активные пользователи необходимо нажать кнопку Журнал регистрации .

Читайте также: