Закрыть все соединения 1с
Возьмем для примера веб-сервер на базе MS IIS с публикациями баз 1С. Бывают случаи, когда сеансы пользователей зависают. Например, при использовании веб/тонкого клиента 1С.
Одно дело — клиент-серверный вариант, с применением СУБД. С ним проще. Открываете административную консоль и через список закрываете эти зависшие сеансы.
В случае файловой базы все не так тривиально. В Конфигураторе вы можете видеть эти якобы активные сеансы, но отдельной команды в интерфейсе на закрытие — попросту нет.
Стандартная рекомендация — перезапуск веб-сервера. В принципе, она должна помочь, и зависшие сеансы на файловых базах очистятся.
Но, на практике выполнить сложнее, т. к. баз бывает несколько и ведется активная работа других пользователей. Могут быть ошибки и потери связи. Плюс недовольства сотрудников, что их работу прервали.
Какое может быть решение? Один из выходов — более тонкая настройка IIS.
Сделать так, чтобы каждая опубликованная база (приложение) выполнялась в отдельном пуле приложений. По умолчанию все публикации «привязываются» к DefaultAppPool.
Выберите время и настройте IIS, чтобы каждой информационной базе был сопоставлен отдельный пул.
Или сгруппируйте базы так, как вам удобно, чтобы сократить количество пулов. Выходит, что базы будут не в одной «куче», а по отдельности.
- Откройте консоль «Диспетчер служб IIS».
- В левой части выберите «Пулы приложений», а справа по команде «Добавить пул приложений…» зарегистрируйте новый пул с настройками, аналогичными пулу по умолчанию. Добавьте понятное имя, например, по названию публикации ИБ.
- Перейдите в список опубликованных баз.
- Выберите ИБ, через «Основные настройки…» укажите новый пул из ранее созданного в п. 2.
- Повторите шаги 1-4 для других информационных баз при необходимости.
Теперь, когда появляется задача по закрытию зависших сеансов в 1С — вы перезапускаете соответствующий пул, а не веб-сервер. Таким образом не мешаете своим коллегам работать с базами.
Проблема следующая: не возможно сделать штатный бекап. Т.е. выгрузка ИБ начинается и продолжается вечно. Проблема, видимо, кроется в том, что сеансов нет, а соединения и блокировки есть. И как эти соединения закрыть/удалить совершенно не понятно. Если заблокировать базу то через 20-30 минут они пропадают сами.
(1) Win98, Обычно обновление БД и/или архивирование выполняется так:
1. Выполнить блокировку.
2. Подождать от 1 до 5 минут (пока отработает стандартное отключение пользователей).
3. Войти в консоль и удалить оставшиеся подключения.
Сеансов нет, а блокировки и соединения остались и живут, ориентировочно, до 30 минут.
Сеансы удалить могу, а блокировки и соединения нет - нет такой функции/кнопки/поля меню. :(
(3) Win98, Обычно с сеансами соединения удаляются.
Значит какие-то длительные операции (под этими пользователями) запущены. К примеру удаление помеченных объектов.
(4) dj_serega, нет, ничего не запущено. есть подозрение что как-то связано с "время засыпания пассивного сеанса" и с "время завершения спящего сеанса" .
PS. У нас тонкий и веб-клиент.
(6) dj_serega, 20 минут и 1 час, до этого было больше (по умолчанию) оставались повисшие Сеансы, сократили, стало явно лучше, может еще сократить?
У меня такая же проблема проявляется (Платформа 8.3.5.1248). До установки данной платформы такой проблемы не было. Проявляется проблема в том, что выгрузка в dt зависает, при этом возможно войти в режиме 1С: Предприятие. Единственное решение, которое нашёл (причину так и не нашёл) - с помощью диспетчера задач завершить сеанс работы конфигуратора, после этого используя консоль администрирования удалить зависший сеанс конфигуратора и ещё раз начать выгрузку в архив (только задать другое имя архива) - тогда проходит всё быстро.
(9) Ted1982, в консоли сервера посмотри, плиз, наверняка в это время есть блокировки и соединения, а пока "убиваешь" конфигуратор и подцепляешься по новой они уже отмирают.
(10) Win98, Возможно. как буду следующий раз обновлять базы - обязательно посмотрю.
Но вопрос остаётся открытым по причинам такого поведения 1С.
(10) Win98, начал обновлять базы - проблема осталась, однако никаких дополнительных блокировок/соединений кроме самого конфигуратора нет. Видимо проблема в чём-то другом. В ближайшее время системные администраторы обновят на серверах платформу - посмотрю, может быть что-то и изменится
(9) Ted1982, У меня клиент-серверный вариант. Выгрузку делаем через sql. Поэтому и все хорошо по данному вопросу.
1С, в принципе, не рекомендует активно пользоваться выгрузками через dt.
(12) dj_serega, у нас в компании средствами sql делаются ночные архивы. А dt используем перед обновлением конфигурации в течение рабочего дня, чтобы сохранить на всякий случай то, что пользователи наработали за день.
sql конечно лучше, но подразделения, отвечающие за 1С и за SQL, отдельные - так что при обновлении каждой базы быстрее получается средствами 1С, оперативнее.
(15) Ted1982, а почему не делать sql'ьные каждый час в рабочее время? dt - хорошо, но не безопасно :(
У нас каждый час + ежедневные. И такую практику встречал во многих компаниях.
У кого не файловая то про dt вообще забыли (читать забили :) ).
(16) dj_serega, Эээээ. имея на одном сервере порядка 100 продуктивных баз, в которых постоянно работают, делать ежечасные архивы никаких мощностей не хватит.
(17) Ted1982, скуль сделает, он такой :)
У нас так же, ночью полный, каждый час инкрементный, и юзеров 500+, и объемы гигабайтные. но dt наше все :)
(17) Ted1982, Ну так а что мешает сделать sql-выгрузку а не dt? Почему именно dt?
Имхо, если есть возможность sql то только он. DT это привилегии файловой базы. Хотя и там лучше скопировать 1cd.
Вообщем мы друг друга поняли :)
При использовании для доступа к данным 1С:Предприятия 8.0 COM -соединения имеются следующие преимущества по сравнению с использованием Automation сервера:
- Более быстрая установка соединения, так как не требуется создания отдельного процесса операционной системы, а все действия производятся в рамках вызывающего процесса;
- Более быстрое обращение к свойствам и методам объектов 1C:Предприятия, так как для организации обращения не требуется организации межпроцессной коммуникации;
- Меньший расход ресурсов операционной системы.
В общем и целом работа с 1С:Предприятием 8.0 через COM -соединение подобна работе с 1С:Предприятием в режиме Automation сервера. Основные отличия заключаются в следующем:
- В случае Automation сервера запускается полноценное приложение 1С:Предпприятия 8.0, а в случае COM -соединения запускается относительно небольшой внутрипроцессный COM -сервер.
- При работе через COM -соединение недоступны функциональные возможности так или иначе связанные с организацией пользовательского интерфейса 1С:Предприятия 8.0;
- При работе COM -соединения не используется модуль приложения конфигурации 1С:Предприятия 8.0. Его роль при работе с COM -соединением играет модуль внешнего соединения.
1.1 Порядок установки COM-соединения
Для организации доступа к данным 1С:Предприятия 8.0 через COM -соединение, выполняется следующая последовательность действий:
Важно! В связи с отсутствием пользовательского интерфейса в COM-соеденении не все объекты, а также свойства и методы можно использовать в COM -соединении.
Объекты 1С:Предприятия, доступные извне через COM -соединение:
- Экспортируемые переменные и процедуры/функции модуля внешнего соединения
- Экспортируемые переменные и процедуры/функции общих модулей
- Включение и исключение модулей целиком с помощью установки свойств общих модулей
- Включение и исключение фрагментов общих модулей с помощью препроцессора
- Глобальный контекст 1С:Предприятия 8.0, за исключением объектов, жестко связанных с клиентским приложением (ТекстовыйДокумент, ТабличныйДокумент, . )
1.2 Модуль внешнего соединения
Как уже отмечалось обязанности модуля приложения при работе через COM -соединение, выполняет модуль внешнего соединения. Данный модуль может иметь процедуры-обработчики событий ПриНачалеРаботыСистемы() и ПриЗавершенииРаботыСистемы(), в которых могут быть размещены действия, выполняемые при инициализации и завершении соединения, соответственно.
Процедуры, функции и глобальные переменные, определенные в модуле внешнего соединения с ключевым словом Экспорт становятся, как и в случае модуля приложения, частью глобального контекста.
1.3 Общие модули
Для общих модулей введены свойства "Клиент", "Сервер" и "ВнешнееСоединение". Они предназначены для определения в конфигурации использования модулей в клиент - серверном варианте и в режиме COM -соединения.
1.4 Объект "V8.COMConnector"
Строка соединения с ИБ представляет собой цепочку фрагментов вида Параметр=Значение. Фрагменты отделяются друг от друга символами ';'. Если значение содержит пробельные символы, то оно должно быть заключено в двойные кавычки (").
Usr - имя пользователя;
Pwd - пароль.
Для файлового варианта определен параметр:
File - каталог информационной базы.
Для клиент-серверного варианта определены параметры:
Srvr - имя сервера 1С:Предприятия;
Ref - имя информационной базы на сервере.
Метод Connect возвращает ссылку на созданный объект COM -соединения.
Метод Connect устанавливает COM -соединение с информационной базой 1С:Предприятия 8.0 и возвращает ссылку на объект COM -соединение.
// Создается объект-коннектор
V8 = Новый COMObject ("V8.COMConnector");
// создается объект COM -соединение
Соединение = V8.Connect ("File=""c:\InfoBases\Trade""; Usr =""Director"";")
Авторизация доступа через COM -соединение возможна как с помощью параметров строки соединения «Usr» и «Pwd», так и через пользователя Windows, в любом случае должно быть право на «Внешнее соединение».
1.5 Объект "COM-соединение"
COM -соединение с информационной базой 1С:Предприятия предоставляет полный доступ к своему глобальному контексту (см. «Контекст выполнения программного модуля»). Поэтому COM -соединение в качестве своих методов может иметь: системные константы, значения заданных в конфигураторе объектов, доступ к которым осуществляется с помощью менеджеров (например, константы, перечисления, справочники, документы, журналы документов, отчеты, обработки, планы видов характеристик, планы счетов, планы видов расчета, регистры), а также переменные, объявленные в модуле внешнего соединения с ключевым словом Экспорт.
Кроме того, COM -соединение имеет дополнительный метод NewObject, с помощью которого можно создавать значения определенных типов.
тз = Соединение. NewObject ("ТаблицаЗначений");
Метод String Позволяет получать строковые представления значений 1С:Предприятия.
1.6. Особенности работы с COM -соединением
В Automation и в COM -соединении TRUE и FALSE имеют соответственно значения: -1 (минус единица) и 0.
Имеется возможность организации пула COM-соединений. При этом на принимающей на сервере 1С:Предприятия ЗАРАНЕЕ создаются несколько объектов COM-соединения и на установку соединения требуется еще меньше времени, поскольку не нужно создавать новый объект.
Реализован новый объект ПостроительЗапроса, предназначенный для генерации текстов запросов на основании указанных настроек. Данный объект поддерживает функциональность построителя отчета, не относящуюся к выводу отчета в табличный документ и другим задачам, связанным с пользовательским интерфейсом. Данный объект может использоваться на сервере 1С:Предприятия и в COM -соединении.
Доступно использование COM -объектов при работе встроенного языка на сервере 1С:Предприятия.
На практике часто возникает необходимость выгнать всех пользователей из 1С или завершить сеансы принудительно с последующей настройкой блокировки начала новых сеансов. Для чего это нужно? Для того чтобы разработчик мог спокойно применить все изменеия в конфигурации базы данных и пользователи не помешали ему в этом.
Включаем блокировку соединений с информационной базой 1C
Подключаемся на свой сервер 1С, открываем консоль кластеров, находи свою базу данных, прожимаем правой кнопкой мыши по базе и заходим в свойства нашей базы данных 1С.
Тут мы отмечаем чекбокс напротив Блокировка начала сеансов включена. Ниже мы можем настроить начало и конец блокировки сеансов установив необходимую нам дату в формате yyy-mm-dd hh:mm:ss. А при необходимости доступа к базе 1С мы можем установить Код разрешения для монопольного доступа в базу. Теперь все попытки пользователей ломиться в базу будут обречены, так что они будут ломиться в IT отдел 😁.
Внимание: Также на время блокировки рекомендую останавливать все фоновые задания, отметив чекбоксом пункт Блокировка регламентных заданий включена.
Завершаем зависшие сеансы из консоли кластера серверов 1С
Но 1С была бы не 1С, если бы она работала нормально и никогда не глючила. К чему это я? Есть такие фантомные 👽 обитатели на кластерах 1С как зависшие сеаны. Их то нам как раз и необходимо схлопнуть! В консоли выбираем нашу базу, в раскрышемся списке переходим по пункту Сеансы и в окне справа будут все активные сеансы (в том числе и наши зависшие). Выбираем все сеансы и Правая кнопка мыши/Удалить
Внимание: Во избежание всемирного коллапса и хаоса, так как пользователи могут проработать весь день и ни разу не сохранить введёные или данные в документ, обязательно уведомлите их заранее и перед завершением сеанса сообщите дополнительно о вашем намерении и необходимости завершении их сеансов.
Получаем монополный доступ к информационной базе с кодом разрешения
Всё, блокировку настроили, сеансы подчистили. Как теперь попасть в информационную базу 1С? Запускаем 1С предприятие, выбираем нашу базу, нажимаем Изменить/Далее и в поле Дополнительные параметры запуска вводим нашь код разрешения через пробел от ключа /uc вначале параметра. Готово, Можно стартовать!
Для этого можно воспользоваться возможностью программного доступа к серверу 1С:Предприятия 8. Нужно создать COM-коннектор и выполнить метод ConnectWorkingProcess(), который позволяет подключиться к указанному серверу.
Затем следует аутентифицироваться с правами администратора в выбранной информационной базе, получить все клиентские соединения этой базы и разорвать их.
Завершение работы пользователей
Код 1C v 8.х
Похожие FAQ
10060 (0x0000274C): Попытка установить соединение была безуспешной 19
Установили новый терминальный сервер, на нем подняли 1С, терминальные пользователе неописуемо довольны, все просто летает :) И вот же надо было такому случиться, главному бухгалтеру не понравилось работать через терминал, а еще у нее свой ноутбук и 17 правил для составления оптимального ЗАПРОСа к данным базы 1С 44
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C и Google Maps 21
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш 1C медленно работает по сети с базой на SQL Server 20
Данное обстоятельство может быть обусловлено многими причинами. Одна из них - неоптимальная настройка MS SQL . Перечислим неоптимальности в настройке: 1) Неправильно указанный сетевой протокол, используемый для взаимодействия 1С с SQL Server. П 1C: Enterprise Development Tools 50
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем Посмотреть все результаты поиска похожих
Еще в этой же категории
Ограничение доступа на уровне записей RLS 6
Когда требуется более тонкая настройка доступа, на помощь приходит механизм RLS - Record Level Security. Конфигурации системы «1С:Предприятие» 8 изначально позиционировалась как программа для многофирменного учета, и один из первых возникающих воп Право на изменение и право на редактирование - в чем отличие? 6
В чем собственно отличие? Кратко: Изменение - определяет возможность/невозможность вообще изменить объект. Редактирование - несет интерактивный смысл. Подробнее: Интерактивные и основные права Все права, поддерживаемые системой 1С:Предпри Отключение Пользователей встроенными в платформу функциями 5
Нужно создать ярлыки(в любой папке щелкните правой клавишей мыши - Создать - Ярлык) с командами: Отключение или Завершение работы пользователей: Для Файлового варианта: " C: Program Files 1cv81 bin 1cv8.exe" ENTERPRISE /F путь к базе /N и Сравнение ролей доступа 5
Порядок простых действий для казалось бы сложной операции по сравнению ролей в 1С 8. 1) Открываете Роль1 в ее панели выбираете подменю Действия - Вывести список- сохраняете в Новый1.mxl 2) Открываете Роль2 в ее панели выбираете подменю Действия - В Как программно создать нового пользователя или скопировать настройки существующего? 5
Часто встречаю вопросы касаемые программного создания и настройки прав пользователей. В этот статье я приведу примеры для Обычного и Управляемого приложений, которые программно создают пользователя в конфигураторе и в режиме Предприятие (справочн Посмотреть все в категории Пользователь, роль доступа, интерфейс
Читайте также: