Простые радости жизни администратора в 1С: блокировка информационной базы.




В типовую обработку «Блокировка соединений с информационной базой» внесены интерфейсные изменения, призванные сделать работу в ней более удобной. Также обработка сделана максимально универсальной и может быть использована в любой, полностью не типовой базе.

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

 


Версия обработки 8.3 от
28.10.2024:
+ Обработка адаптирована для работы под 8.3 в конфигурациях, 
   где запрещено использование модальных методов.
   Если в свойствах конфигурации модальные методы запрещены,
   то используются их асинхронные аналоги.
+ Совместимость с типовым функционалом БСП редакции 2.2:
   — Открытие типовой формы параметров администрирования серверной ИБ;
   — Совместимость структуры параметроа авторизации на сервере 1С;
+ Модули обработки адаптированы для стандартных средств локализации конфигуратора
   (тексты в сообщениях, предупреждениях и меню формируются с помощью функции НСтр()).
Ограничения обратной совместимости:
   — Под платформой 8.2 обработка этой версии будет нормально работать в толстом и тонком клиентах.
   — При открытии обработки в Web-клиенте под 8.2 будет ошибка компиляции модуля формы
     из-за «открытого» использования глобальных асинхронных методов
     ПоказатьПредупреждение() и ПоказатьВопрос().
     Проблема решается закомментариванием строк с вызовом этих методов на стороне Web-клиенте,
     специально выделенных для этого инструкциями препроцессора.

Версии обработки 8.1(3+) / 8.2(3+) от 14.03.2014:
+ Сервис управления выполнением регламентных заданий для клиент-серверной ИБ
(
приостановка выполнения «в ручную» и при установке блокировки соединений) (Рис.8) ;
+ Запуск альтернативного разрыве соединений в клиент-серверной ИБ
из меню «Сервис» без установки самой блокировки соединений (Рис.7) ;
+ Флаг использования альтернативного разрыве соединений в клиент-серверной ИБ
(для отмены альтернативного разрыве без изменения «Режима разрыва»);

Версия обработки 8.2++ от 22.03.2014:
Учтено замечание (64) den17:
обеспечен разрыв соединений с Web-клиентами
при альтернативном разрыве соединений в клиент-серверной ИБ.

Версии обработки 8.2++ / 8.1++ от 14.12.2013:
Выполнено пожелание (29) mymyka:
Добавлен сервис «Альтернативного разрыва соединений» (Рис.4 и Рис.5) и связанный с ним
диалог «Авторизация на сервере 1С» (Рис.6). Подробности кратко описаны ниже в публикации.
Более подробно смотрите в справочном описании обработки.


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

Для этого в типовую обработку блокировки базы были внесены следующие
интерфейсные дополнения:

  1. Меню выбора начала периода блокировки. Выводится при нажатии кнопки очистки поля ввода.
    Позволяет выбрать из списка желаемое время начала блокировки (через MM минут с текущего времени).

    Меню выбора начала блокировки

  2. Меню выбора окончания периода блокировки. Выводится при нажатии на кнопку выбора периода блокировки.
    Позволяет выбрать из списка желаемое время окончания блокировки (через NN минут со времени начала блокировки).

    Меню выбора окончания блокировки

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

    Шаблон сообщения пользователям

Примечания:

  1. При выборе времени блокировки из меню и при его изменении кнопками регулирования значение времени
    выравнивается на начало минуты. При этом также контролируется корректность значений времени начала и окончания.
    Пустое значение времени заменяется на начало текущей минуты.
    Если время окончания меньше времени начала, оно заменяется на время начала плюс одна минута.
  2. Сообщение пользователям заполняется по шаблону, если заданы все три значения:
    текст шаблона, время начала и время окончания блокировки.
  3. При изменении параметров блокировки форма модифицируется.
    После записи параметров блокировки флаг модификации формы сбрасывается.
    Перед закрытием модифицированной формы у пользователя запрашивается подтверждение.
  4. В версии для 8.2 параметры обработки сохраняются в стандарном хранилище настроек под именем пользователя «SA»
    и едины для всех пользователей имеющих доступ к обработке.
    В версии для 8.1 настройки сохраняются по старому (в профиле пользователя)
    и поэтому для каждого пользователя свои.
  5. Если используется альтернативный разрыв соединений с серверной базой (Рис.5), то перед установкой блокировки базы
    обработка проверяет параметры администрирования ИБ.
    При необходимости (если не указано имя Администратора ИБ или при ошибках предыдущих авторизаций на сервере 1С)
    пользователю предлагается уточнить эти параметры в диалоге «Авторизация на сервере 1С» (Рис.6).
    Этот диалог может также использоваться как альтернатива типовой общей формы «Параметры администрирования ИБ»,
    позволяя сохранить настройки администрирования в константе «Параметры администрирования ИБ» или (при ее отсутствии)
    в стандартном хранилище настроек в настройках обработки — только для версии обработки 8.2++.

Дополнительные запоминаемые опции обработки:

  1. Флаг «Открывать модально» — если установлен, обработка всегда открывается модально
    (на Web-клиенте опция игнорируется).
  2. Флаг «Открывать в УФ» — действует только для встоеной обработке в толстом клиенте (обычное приложение).
    Позволяет выбрать в какой форме (обычной или управляемой) открыть обработку.
  3. Поскольку при снятии флага блокировки соединений значение кода разрешения невозможно восстановить из
    параметров блокировки обработка запоминает при закрытии последнее непустое его значение
    и при необходимости восстанавливает его при открытии.
  4. Режим разрыва соединений — одно из значений показанных на (Рис.4), определяет каким способом будут
    принудительно разрываться соединения с информационной базой (в клиент-серверном варианте):

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

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

  5. Флаг «Без конфигуратора» — если установлен, то:
    При альтернативном разрыве соединений с серверной базой соединение с конфигуратором не закрывается,
    а в файловом варианте — при проверке возможности установить блокировку конфигуратор исключается
    из списка соединений, которые «нельзя закрыть».


Обработка универсализирована:

Может работать в полностью не типовой или даже «пустой» конфигурации.
Версия обработки для платформы 8.2 имеет как управляемую, так и обычную формы.

Обычная форма взята в своей основе из УПП-1.2, а управляемая из УПП-1.3.
По замечанию dedicated (17) для соместимости со справочником «Внешние обработки» в обычном режиме
в качестве основной формы обработки выбрана обычная форма, а в качестве дополнительной — управляемая.

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

Использование:

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

Актуальные версии обработки:

Актуальные версии обработки находятся в следующих файлах поставки:

  1. БлокировкаИБ83.epf
  2. БлокировкаИБ81(3+).epf

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

98 Comments

  1. yuraos

    Говорят, что счастья много не бывает.



    Но часто это счастье выражается в малом.

    Reply
  2. yuraos

    Всем доброго времени суток!!!



    В обычной форме обработки обнаружена ошибочка,

    связанная с типами реквизитов формы:

    Для строковых реквизитов

    КлючОбработки и ПутьКФормамОбработки

    нужно установить длину строки равной 0.



    Приношу свои извинения за оплошность,

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

    Reply
  3. AlX0id

    Зачетное название для публикации %)

    Reply
  4. dock

    Замечательная обработочка!

    Лень — двигатель прогресса!

    Reply
  5. yuraos

    Доброго времени суток!

    Спасибо всем, кто оценил мои скромные труды!!!

    Reply
  6. yuraos

    (2)

    Обновлены файлы поставки.

    Устранена отмеченная выше (2) ошибка.



    Для тех, кто уже скачал файлы с датой изменения 10.11.2013

    скачивать обработку снова НЕ НАДО.

    Достаточно открыть в конфигураторе список реквизитов обычной формы

    («Форма_О» для 8.2 и «Форма» — для 8.1)

    и для строковых реквизитов

    КлючОбработки и ПутьКФормамОбработки

    установить длину строки равной 0.

    Reply
  7. Rad90210

    Такие вещи нужно чтобы были в типовой. Оформляй письмо в 1С. Очень симпатишненько.

    Reply
  8. yuraos

    (7) Rad90210,

    да в типовых

    много чего не хватает и

    много что должно быть

    🙂



    думаю,

    что разработчики БСП захаживают на ИНФОСТАРТ и

    надеюсь заметят эту скромную статейку.

    Если включат обработку в состав библиотеки — я возражать не буду.

    Reply
  9. megaster

    Респект!

    Reply
  10. megaster

    Косячок небольшой нашел 🙂

    при выборе пунктов «Заблокировать на 30 минут» в тексте сообщения при завершении работы пользователей выводится текст «c 00:00 до 00:30 на 1 час. 30 мин.» , т.е. не «на 30 мин«, а «на 1 час 30 мин«

    Reply
  11. megaster

    Тоже самое если выбирать «на 40 минут» и «на 50 минут»

    Reply
  12. yuraos

    (10) megaster,

    спасибо, гляну — поправлю.

    Reply
  13. yuraos

    (11)(12)

    Всем доброго времени суток!



    Обновлены файлы поставки.

    Исправлена ошибка указанная megasterв постах (9), (10).

    За что ему еще раз отдельная признательность!

    Reply
  14. yuraos

    (13)

    Для тех, кто уже скачал файлы с датами изменения

    10.11.2013

    12.11.2013

    выкладываю текстовые файлы с исходниками подправленного модуля объекта

    обработки версий для 8.1 и для 8.2 (они чуть-чуть отличаются)



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

    на содержимое текстового файла.

    Reply
  15. yuraos

    (14)

    в файле БлокировкаИБ81_МодульОбъекта.txt

    так же имеется экспортная функция

    Функция ШаблонСообщенияПоУмолчанию() Экспорт
    

    которая по ходу дела куда заныкалась при обновлениях…

    Reply
  16. DAnry

    Красиво и со вкусом. Жирный плюс

    Reply
  17. dedicated

    Спасибо за обработку!

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

    Тестил на Предприятие 8.2 УПП.

    Reply
  18. yuraos

    (17) dedicated, спасибо за замечание.

    Мутная эта тема с основной и вспомогательной формой объекта.

    Но попробую что-нибудь подхимичить.



    Для уточнения: работаете в толстом клиенте и не стоит галка

    «Использовать управляемые формы в обычном приложении»

    в свойствах корня конфигурации?

    Reply
  19. yuraos

    Всем доброго времени суток!



    обновлены файлы поставки

    Текущие изменения — чисто технические:

    1. Учтены замечания и пожелания dedicated(17).

    Для обработки версии для 8.2

    в качестве основной формы обработки выбрана обычная форма «Форма_О»

    в качестве дополнительной — управляемая форма.

    Хотя тут всем не угодишь



    но при таком выборе в остальных режимах вроде работает нормально.

    2. В версии обработки для 8.2 в обычной форме сообщение

    «Доступен типовой функционал для управляемой формы обработки.»

    выводится только когда установлен флаг «Модально».

    Чтобы не мозолило глаза — можно снять флаг.

    3. Для Web-клиента флаг модально игнорируется при открытии.

    Хотя слабо могу представить кому может понадобиться открывать обработку в web-клиенте.

    4. Несколько модифицирована функция контролирующая «полный доступ» к базе.

    Reply
  20. yuraos

    (19)

    Также выкладываю текстовый файл с подправленным вариантом процедуры

    Процедура СправочникСписокВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
    

    из модуля формы списка справочника «Внешние обработки«.

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

    по метаданным объекта отчета или обработки ищется «основная обычная форма«.

    И если такая форма находится — она используется для открытия.

    Reply
  21. yuraos

    еще раз подправил обработку для 8.2:

    (спасибо разработчикам сайта — это сейчас можно делать без модерации)

    ——-

    А. В обычную форму добавлены типовые сервисные команды

    (аналогичные тем, что в управляемой форме):

    — «Активные пользователи»

    — «Параметры администрирования ИБ»

    Б. Замечание в посте (19)


    2. В версии обработки для 8.2 в обычной форме сообщение

    «Доступен типовой функционал для управляемой формы обработки.»

    выводится только когда установлен флаг «Модально».

    Чтобы не мозолило глаза — можно снять флаг.

    более не актуально:

    — для внешней обработки теперьпереадресация открытия на управляемую форму не делается вообще,

    так как она похоже в принципе невозможна.

    — для встроенной обработки она всегда успешно выполняется

    Reply
  22. mymyka

    (21)Обработка выглядит шикарно. Но появлися 1 вопрос, она не умеет кикать пользователей? У меня просто окно появляется «Завершение работы», жмешь ОК и ничего не происходит.

    Reply
  23. yuraos

    (22) mymyka,

    можно поподробней в какой базе ее пытаетесь использовать

    и скриншотиков как выглядит, если не затруднит.



    обработка по сути является типовой.

    ее универсализация заключается только в том, что

    запустить ее и установить блокировку соединений можно в любой базе.

    😉

    но юзеров она сама по себе не «кикает»

    завершают работу пользователей в типовом функционале

    стандартные глобальные обработчики ожидания

    «ЗавершитьРаботуПользователей»

    «КонтрольРежимаЗавершенияРаботыПользователей«

    Reply
  24. yuraos

    (23)

    В принципе юзеров умеет «кикать»

    типовая обработка «Активные пользователи» из состава БСП



    Думаю будет не очень сложно воткнуть ее функционал в эту обработку

    и сделать ее более «универсальной»



    И если будут такие пожелания, то я, пожалуй, готов поразмять мозги в этом направлении.

    🙂

    Reply
  25. yuraos

    (24)

    увы кикать можно только в скульных базах.

    🙁

    Reply
  26. yuraos

    Всем доброго времени суток!



    Обновлены файлы поставки.

    Текущие изменения (и думаю финальные):

    1) Оптимизация сохранения-восстановления параметров.

    Теперь для 8.2 и для обычной формы параметры сохраняются в хранилище настроек.

    В версии для 8.1 — по старому, настройки сохраняются в профиле.

    2) Исправлена работа обработки для 8.2 в режиме Web-клиента (если кому интересно).

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

    «ЗавершитьРаботуПользователей»

    «КонтрольРежимаЗавершенияРаботыПользователей»

    не настраивались нужным образом из-за того,

    что оператор Выполнить на Web-клиенте

    «даже вида не делает» без вызова исключения.

    3) В версии для 8.2 упорядочена так называемая «переадресация открытия на управляемую форму«.

    Теперь это запоминаемая опция обработки, устанавливаемая в форме флажком «УФ«.

    По умолчанию опция равна свойству конфигурации «Использовать управляемые формы в обычном приложении«.

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

    4) Код разрешения, как оказалось, не восстанавливается из параметров блокировки базы,

    если флаг блокировки снят. Это не сильно удобно.

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

    и при необходимости восстанавливает его при открытии
    .

    Reply
  27. dedicated

    (19) Спасибо за поддержание и доработку вашей обработки!

    Reply
  28. yuraos

    (27) dedicated,

    люблю доводить все до совершенства



    и это частенько мне мешает по нынешней жызни.

    🙂

    Reply
  29. mymyka

    (23)Как-то упустил ваши ответы, простите.

    База скульная, УПП 1.3, на 8.2.

    После этого сообщения никаких телодвижений.

    А не, вру, 1С потом через некоторый период регулярно, но не особо настойчиво предлагает завершить работу. Лучше бы конечно просто рвать соединения для всех кроме конфигуратора и сеанса в котором блокировка была установление(опционально).

    Reply
  30. yuraos

    (29) mymyka,

    В типовом функционале для блокировки базы предусмотрен ритуал:

    Reply
  31. yuraos

    (31)

    1) В обработчике «КонтрольРежимаЗавершенияРаботыПользователей»

    (который крутится во всех сеансах кроме выполняющего блокировку):

    — за пять минут до начала блокировки юзверам выдается предупреждение

    «Работа системы будет завершена в %1.»

    — в первую минуту после начала блокировки юзверям выдается предупреждение

    «Работа системы завершается.» после чего работа сеанса завершается

    с запросом сохранения редактируемых данных.

    — во вторую минуту после начала блокировки юзверям выдается предупреждение

    «Работа системы завершается.» после чего работа сеанса завершается

    без запроса сохранения редактируемых данных.

    — в третью минуту и далее работа сеанса завершается без предупреждения

    и сохранения редактируемых данных.

    Reply
  32. yuraos

    (31)

    2) В обработчике «ЗавершитьРаботуПользователей»

    (который крутится в том сеансе, который выполняет блокировку):

    — В течении 5 минут с минутным интервалом администратору выдается сообщение

    «Активных сеансов: %1.

    Следующая проверка сеансов будет выполнена через минуту.
    »

    — И только по истечении 5 минут текущий сеанс пытается «кикнуть» активные сеансы,

    (кроме себя) которые не успели отвалиться.

    — Затем (если всех убил — один остался) — текущий сеанс кикает себя

    (к стати — в модальном режиме судя по документации —

    себя кикнуть не сможет
    )

    Reply
  33. yuraos

    (29) mymyka,

    правильно я понимаю, что ты не хочешь ждать эти 5 минут

    и хочешь ускорить этот процесс?



    хоть минутку дашь подышать перед смертью?



    опционально 🙂

    Reply
  34. yuraos

    (30) mcher,

    всегда приятно угодить девушке!

    😉

    Reply
  35. NazarovV

    вот чего я не понимаю и никогда наверное не пойму — это «псевдоавтоматизация»…

    Reply
  36. yuraos

    (36) NazarovV, уважаемый,

    разверни свою глубокую мысль далее.



    вроде бы целью работы была не какая-то «автоматизация»

    а скорее «эргономизация».

    Reply
  37. TrinitronOTV

    Объясните начинающему работать с версией 8.2: включили блокировку этой обработкой, а дальше что делать? ведь это обработка сама работает в режиме 1с:Предприятие. А потом как снова всем разрешить работу с программой? Или хотя бы подскажите, где можно почитать про такую работу с данной обработкой…

    Reply
  38. Bukaska

    (38) TrinitronOTV, Закрываете обработку, входите как админ.. вводите код разрешения,и снимаете блокировку

    Reply
  39. yuraos

    (38) TrinitronOTV,

    один из способов:

    нужно запустить 1с-ку с ключом разрешения для подключения к заблокированной базе.

    строка запуска примерно следующая:

    «C:Program Files1cv82common1cestart.exe» /UC123

    где /UC — это ключ разрешения, следующие за ним символы ‘123’

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

    — главное этот код не забыть (особенно для файловой базы)

    — а то станет неловко.

    после входа в 1С открываете обработку,

    снимаете флаг блокировки,

    жмете «Записать параметры блокировки»

    и будет щастье юзерам.

    Reply
  40. yuraos

    (40)

    вообще-то в справочной информации к обработке все детально разжевано, что к чему

    🙂

    там например для 8.2 описан другой способ разблокирования базы:


    Либо запустить систему с параметром

    /CРазрешитьРаботуПользователей (для версии платформы 1С >= 8.2);

    я правда этот вариант не проверял,

    поскольку в основном работать приходится под 8.1

    Reply
  41. yuraos

    (41)

    маленькое уточнение:

    параметр запуска /CРазрешитьРаботуПользователей

    используется совместно с параметром /UC<КодДоступа>

    позволяет в рамках типового функционала для 1с-8.2

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

    (при открытии 1с с таким параметром блокировка будет снята автоматически

    при этом пользователь должен иметь административные права).

    Reply
  42. yuraos

    ВСЕМ ДОБРОГО ВРЕМЕНИ СУТОК!



    Опубликованы новые версии обработки:

    — БлокировкаИБ82++.epf

    — БлокировкаИБ81++.epf

    Новое в новых версиях:

    по просьбе mymyka (29) реализованы

    + Сервис «Альтернативный разрыв соединений»

    + Диалог авторизации на сервере 1С

    Reply
  43. yuraos

    (43)

    указанные изменения имеют значение только

    при работе в серверных информационных базах.

    Reply
  44. yuraos

    (40)

    а что делать,

    если забыли код разрешения для входа в заблокированную базу ???

    Ничего страшного!

    1. Для серверной базы — просто открываем оснастку «Администрирование серверов 1С Предприятия»

    и снимаем там в свойствах базы флаг блокировки и смотрим установленные параметры блокировки

    (в том числе код разрешения).

    2. Для файловой базы — открываем каталог базы, ищем там файл 1Cv8.cdn

    и удаляем (или переименовываем) его.

    Открыв этот файл в блокноте можно также узнать установленные параметры блокировки.

    пример файла смотрите во вложении

    Reply
  45. didkovskij

    Подскажите, можно ли скачать обработки в одном файле, например в архиве?

    Reply
  46. dock

    (46) unior, но тогда ведь это будет стоить только один мани 🙂

    Reply
  47. yuraos

    (46) unior,

    я специально, что бы не было недоразумений, в конце статьи написал:


    Актуальные версии обработки находятся в следующих файлах поставки:

    БлокировкаИБ82++.epf

    БлокировкаИБ81++.epf

    Остальные файлы оставлены для сохранения статистики загрузок и

    не рекомендуются для скачивания.

    если вы в 8.1 не работаете,

    то вам достаточно скачать только БлокировкаИБ82++.epf

    Reply
  48. yuraos

    (46)(47)(48) unior,

    если же вам версия для 8.1 нужна позарез

    и вам не хватает стартмани — пишите в личку, что-нибудь придумаем.

    🙂

    Reply
  49. 3762515

    Хорошая штука!

    Reply
  50. link_l

    Хотел спросить есть ли такая штука «Активные пользователи» как в обработке из УПП 1.3, в которой показывается список активных пользователей и из этого списка можно «убить» пользователя 🙂 как на скрине

    Reply
  51. yuraos

    (51) link_l,

    Да есть, спрятано в меню «Сервис», как показано на скриншоте.

    Правда команда открывает типовую обработку «АктивныеПользователи»

    из состава библиотеки «Стандартные подсистемы» (только управляемые формы).

    Эта библиотека включена в большинство типовых решений, в том числе УПП-1.3 и УТ-11

    Альтернативные формы с функционалом списка активных пользователей

    я решил не городить (по крайней мере пока).

    Обработка «АктивныеПользователи» цепляет еще функционал

    обработки «ЖурналРегистрации» (тоже из состава БСП).

    А там куча форм (и все естественно только управляемые).

    Из исповедуемой в работе идеологии придется разрабатывать

    еще и аналогичные обычные формы.

    Так-что объем работы получается весьма приличным.

    Reply
  52. Ele1234567

    Соглашусь с yuraos

    Reply
  53. yuraos

    Публикую статистику загрузки файлов к статье.

    Она довольно любопытна.

    На момент добавления этого поста:

    1. всего скачено файлов — 132 раза.

    2. в т.ч. версии для 1С-8.1 — 14 раз

    отсюда следует, что

    чуть больше 10% (10.6%) народа все еще работают под 1С-8.1



    включая вашего покорного слугу.

    Reply
  54. Bukaska

    (54) А то! Сколько работают на 7.7 — не сосчитал?)))

    Reply
  55. yuraos

    (55) Bukaska, неа!

    Там нет блокировки базы!



    Разве что опрос устроить на форуме.

    🙂

    Reply
  56. magolubev

    Давно хотел допилить стандартную обработку, да все руки не доходили. Огромный плюс!!!

    Reply
  57. yuraos

    (57) magolubev,

    когда Бог создал время … его было много.

    Reply
  58. StaticUnsafe

    Спасибо

    Reply
  59. squall84

    Спасибо. на 8.3 отлично заработало.

    Reply
  60. 3762515

    Отличная и полезная вещь!

    Reply
  61. yuraos

    (60) squall84, как интересно! а можно подробности:

    — в какой конфигурации

    — для какой базы (файловой или серверной)

    — в каком режиме совместимости платформы

    — в каком режиме совместимости интерфейса ???

    Reply
  62. den17

    Завершает-ли обработка сеанс с Web-клиентом?

    Reply
  63. den17

    (54) запускал в 1С:Документооборот (Управляемые формы). Обработка Выгнала из базы всех, кроме Web-клиента:

    (Мб с Web-клиентом по-другому разрываются сеансы и я делаю не так что-то..)

    Reply
  64. yuraos

    (64) den17, ты меня озадачил

    :)))

    честно говоря не проверял, как убивалка рвет с соединения с Web-клиентами.

    поковыряюсь на досуге.

    ***

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

    (с небольшими изменениями).

    в связи с этим пара вопросов:

    1. типовая обработка разрывает соединения с Web-клиентами по истечении 5 минут ?

    2. в кластере серверов 1 рабочий процесс или несколько ??

    Reply
  65. yuraos

    Всем доброго времени суток!!!

    Изменены файлы поставки:

    1. Версия обработки 8.2++ от 22.03.2014:

    Учтено замечание (64) den17:

    обеспечен разрыв соединений с Web-клиентами

    при альтернативном разрыве соединений в клиент-серверной ИБ.

    2. Версия обработки 8.1++:

    Незначительные стилистические правки кода, не влияющие на функционал обработки

    Reply
  66. Zhilyakovdr

    (60) squall84, В 8.3, в частности в бухгалтерии 3.0, имеется встроенная обработка блокировки, нет смысла использовать стороннюю.

    Reply
  67. yuraos

    (67) Zhilyakovdr,

    а кто говорит что ее нет. она везде в общем-то есть

    (за исключением каких-нибудь диких отраслевых конфигураций вроде РАРУС:АМБУЛАТОРИЯ)

    ***

    если считаешь, что типовая удобна — используй ее.

    (не знаю может в БП-8.3 она сделана удобней)

    если надоест — можешь попробовать эту

    ;))).

    Reply
  68. den17

    (66) доработанная версия Обработки от 22.03.2014 г., в Конфигурации 1С:Документооборот 8 (1.0.8.1 [Управляемые формы])/1С:Предприятие 8.2 (8.2.19.76) разрывает сеансы всех видов (и WEB-клиентов). Спасибо 🙂

    Reply
  69. Ёпрст

    Чей то в 8.1 не взлетела:

    {ВнешняяОбработка.БлокировкаСоединенийСИнформационнойБазой(492)}: Ошибка при вызове метода контекста (ConnectAgent): Произошла исключительная ситуация (V81.COMConnector.1): server_addr=tcp://1c81: descr=Ошибка сетевого доступа к серверу

    (Windows Sockets — 10060(0x0000274C). Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера. ) line=569 file=.srcDataExchangeTcpClientImpl.cpp

    АгентСервера = COMСоединитель.ConnectAgent(ИдентификаторАгентаСервера);

    по причине:

    Произошла исключительная ситуация (V81.COMConnector.1): server_addr=tcp://1c81: descr=Ошибка сетевого доступа к серверу

    (Windows Sockets — 10060(0x0000274C). Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера. ) line=569 file=.srcDataExchangeTcpClientImpl.cpp

    ——————————————

    Ошибки при разрыве соединений с базой !!!

    Reply
  70. yuraos

    (70) Ёпрст,

    надо полагать порты у сервера 1C нестандартные…

    ;)))

    В общем в версии обработки для 8.1 в форме авторизации на сервере 1С

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

    В версии для 8.2 все должно быть в порядке

    Косячек подправлен, файл поставки БлокировкаИБ81++.epf обновлен.

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

    (вложение в этом посте будет доступно для загрузки в течении недели с момента публикации).

    Reply
  71. yuraos

    (69) den17, пожалуста!

    Это для меня, так сказать, дело профессиональной чести!

    🙂

    Reply
  72. victory1985

    Огромное спасибо за труд! Это волшебный инструмент 🙂

    Reply
  73. yuraos

    Всем доброго времени суток!!!

    Обновлены файлы поставки.

    Изменения в последних версиях обработки:

    1. Добавлена возможность приостанавливать выполнение регламентных заданий

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

    ( подобно тому, как это сделано в обработке «Блокировка работы пользователей»

    из последних версий БСП).

    Кроме этого в обработке можно запустить/остановить выполнение заданий «в ручную»

    из контекстного меню, выводимого при нажатии на гиперссылку надписи

    с состоянием выполнения заданий:

    Reply
  74. yuraos

    2. Альтернативный разрыв соединений с клиент-серверной базой теперь можно запустить

    без установки блокировки базы из меню «Сервис» командной панели формы

    Reply
  75. yuraos

    3. Добавлен флаг использования альтернативного разрыва соединений при блокировке.

    По умолчанию флаг установлен, если альтернативный разрыв используется.

    Запущенный сервис альтернативного разрыва соединений

    блокирует закрытие окна обработки (поскольку использует обработчик ожидания формы),

    что не всегда бывает удобно.

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

    без отмены сервиса (изменения «Режима разрыва»).

    Reply
  76. yuraos

    4. Исправлена некритическая ошибка при подключению к кластеру серверов 1С,

    связанная с проблемами обратной совместимости платформы 1С-8.3.

    Reply
  77. yuraos

    5. Сделано более прозрачным поведение диалога авторизации на сервере 1С

    при сохранении параметров администрирования базы (

    при установке флага «Запоминать»).

    Reply
  78. timeforlive

    Для доступа только одному пользователю нужно писать это (в доп. настройках)?

    ENTERPRISE /F «<путь к папке с файлом 1Cv8.1CD>» /CРазрешитьРаботуПользователей /UC<установленный пароль>

    У другого пользователя (с другого удаленного рабочего стола), если прописать, то у него заходит в режиме Предприятие, но потом вылетает. Версия платформы — 8.3

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

    Вопрос: как сделать доступ только одномудвум пользователям?

    Обработка: БлокировкаИБ82(3+).epf

    Reply
  79. jobkostya1c8

    (79) timeforlive, только пароль не забудьте указать после параметра

    UC<установленный пароль>

    т.к. в базу потом не зайдете 🙂 Эт еще и в обработке блокировки сеансов пользователя что идет со стандартными конфигурациями 🙂 Потом только дату «откручивать» на ПК или еще более варварским методом заходить, типа файлы *.fl, *.tmp, *.cl стирать

    Reply
  80. timeforlive

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

    Верно ли я заметил, други! Если в доп. настройках прописать (79), то любой пользователь может зайти в базу?

    Что посоветуете для «выкидывания» пользователя (кроме ctrl+alt+del)? Иногда удобно поставить блокировку с 18:20 на часик и если никто из пользователей не позвонит по телефону, что, якобы, не закончил работу, то можно смело выбрасывать всех не-закрывших 1Ску.

    Reply
  81. yuraos

    (81) timeforlive,

    если база клиент-серверная,

    то используя эту обработку можно установить блокировку «немедленно» (чтобы текущее время уже попадало в интервал)

    ну а после всех юзверей можно кикнуть из меню «Сервис» как показано ниже

    Reply
  82. yuraos

    Доброго времени суток!

    Опубликована версия обработки 8.3 от 28.10.2015:

    + Обработка адаптирована для работы под 8.3 в конфигурациях,

    где запрещено использование модальных методов.

    Если в свойствах конфигурации модальные методы запрещены,

    то используются их асинхронные аналоги.

    + Совместимость с типовым функционалом БСП редакции 2.2:

    — Открытие типовой формы параметров администрирования серверной ИБ;

    — Совместимость структуры параметроа авторизации на сервере 1С;

    Ограничения обратной совместимости:

    — Под платформой 8.2 обработка этой версии будет нормально работать в толстом и тонком клиентах.

    — При открытии обработки в Web-клиенте под 8.2 будет ошибка компиляции модуля формы

    из-за «открытого» использования глобальных асинхронных методов

    ПоказатьПредупреждение() и ПоказатьВопрос().

    Проблема решается закомментариванием строк с вызовом этих методов на стороне Web-клиенте,

    специально выделенных для этого инструкциями препроцессора.

    Reply
  83. yuraos

    Доброго времени суток!

    Обновлен файл поставки БлокировкаИБ83.epf.

    Текущие изменения носят косметический характер:

    1. Подправлено оформление управляемой формы — чтобы не так страшно выглядела под интерфейсом «Такси».

    2. Обеспечено «модальное» открытие формы обработки

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

    В этом случае вместо модального режима используется

    открытие формы с блокировкой интерфейса всего приложения.

    Reply
  84. artemns

    Спасибо. Отличная обработка.

    Reply
  85. AndrewVVS

    yuraos, добавить Флаг «Кроме меня» (себя)- рассматривали? Чтобы обработка сама себя не выгоняла :).

    Если НЕ КромеМеня Тогда

    ПодключитьОбработчикОжидания(«ЗавершитьРаботуПользователей», 60); КонецЕсли;

    Reply
  86. yuraos

    (86) AndrewVVS,

    Да как-то в голову не приходило.Если блокировать базу — то всех вон!

    Но мысль вполне здравая.

    Как руки дойдут — воткну такую дополнительную галку.

    Reply
  87. dock

    Когда обработка формирует сообщение пользователю, к сообщению добавляется текст «Для администратора….»

    как нибудь можно избавиться от этого текста ?

    Reply
  88. yuraos

    (88) dock,

    Исходное сообщение пользователям о блокировке базы

    видоизменяется в типовым функционалом БСП, который поддерживается этой обработкой:

    ***

    процедура в модуле объекта обработки

    
    // Установить или снять блокировку информационной базы,
    // исходя из значений реквизитов обработки.
    //
    Процедура ВыполнитьУстановку() Экспорт
    Перем Блокировка;
    
    Попытка
    СообщениеСтрока = Вычислить(«СоединенияИБ.СформироватьСообщениеБлокировки(Сообщение, КодРазрешения)»);
    Исключение
    СообщениеСтрока = Сообщение;
    КонецПопытки;
    
    Попытка
    Выполнить(«Блокировка = Новый БлокировкаСеансов;»);
    Исключение
    Попытка
    Выполнить(«Блокировка = Новый БлокировкаУстановкиСоединений;»);
    Исключение
    // если уж совсем все плохо
    Возврат;
    КонецПопытки;
    КонецПопытки;
    
    //  установка параметров блокировки
    Блокировка.Начало           = НачалоБлокировки;
    Блокировка.Конец            = ОкончаниеБлокировки;
    Блокировка.Сообщение        = СообщениеСтрока;
    Блокировка.Установлена      = УстановитьБлокировкуСоединений;
    Блокировка.КодРазрешения    = КодРазрешения;
    
    // установка блокировки соединений
    Попытка
    Выполнить(«УстановитьБлокировкуСеансов(Блокировка);»);
    Исключение
    Выполнить(«УстановитьБлокировкуУстановкиСоединений(Блокировка);»);
    КонецПопытки;
    КонецПроцедуры
    
    

    Показать

    Reply
  89. yuraos

    (89)(88)

    если сильно не нравится эта типовая вставка в сообщении,

    можно подправить в конфигураторе указанную выше процедуру

    следующим образом:

    
    // Установить или снять блокировку информационной базы,
    // исходя из значений реквизитов обработки.
    //
    Процедура ВыполнитьУстановку() Экспорт
    Перем Блокировка;
    
    //Попытка
    // СообщениеСтрока = Вычислить(«СоединенияИБ.СформироватьСообщениеБлокировки(Сообщение, КодРазрешения)»);
    //Исключение
    // СообщениеСтрока = Сообщение;
    //КонецПопытки;
    СообщениеСтрока = Сообщение;
    
    Попытка
    Выполнить(«Блокировка = Новый БлокировкаСеансов;»);
    Исключение
    Попытка
    Выполнить(«Блокировка = Новый БлокировкаУстановкиСоединений;»);
    Исключение
    // если уж совсем все плохо
    Возврат;
    КонецПопытки;
    КонецПопытки;
    
    //  установка параметров блокировки
    Блокировка.Начало           = НачалоБлокировки;
    Блокировка.Конец            = ОкончаниеБлокировки;
    Блокировка.Сообщение        = СообщениеСтрока;
    Блокировка.Установлена      = УстановитьБлокировкуСоединений;
    Блокировка.КодРазрешения    = КодРазрешения;
    
    // установка блокировки соединений
    Попытка
    Выполнить(«УстановитьБлокировкуСеансов(Блокировка);»);
    Исключение
    Выполнить(«УстановитьБлокировкуУстановкиСоединений(Блокировка);»);
    КонецПопытки;
    КонецПроцедуры
    
    

    Показать

    Reply
  90. Templ

    Что означает разрыв соединений стандартно?

    Reply
  91. yuraos

    (91) Templ,

    Стандартно — это средствами типового функционала (типовым функционалом БСП).

    В типовых конфигурациях в клиентских сессиях крутятся глобальные обработчики ожидания

    «КонтрольРежимаЗавершенияРаботыПользователей» и «ЗавершитьРаботуПользователей»

    которые проверяют параметры блокировки соединений с базой.

    Если блокировка есть —

    — эти обработчики завершают работу с системой по определенному типовому сценарию.(31)(32)(33)

    Reply
  92. yuraos

    (92) «Альтернативно» — это возможность предусмотренная этой обработкой в случае клиент-серверной базы.

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

    За указанное время до наступления момента блокировки соединения разрываются

    с помощью объекта V8[1,2,3].COMConnector

    Отменить же стандартный механизм завершения работы пользователей во всех соединениях

    НЕЛЬЗЯ, если не разламывать типовой функционал.

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

    Reply
  93. movis08

    Любопытно опробовать))

    Хотел сам написать, а тут такое

    Reply
  94. makfromkz

    а у меня обработка не выгнала меня из тонкого клиента 🙁

    Reply
  95. yuraos

    (95) makfromkz,

    альтернативный разрыв соединений в этой обработке не трогает текущее соединение, инициирующее блокировку базы.

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

    обработка при закрытии формы предлагает сделать завершить работу системы.

    Так сделано по ряду причин:

    1. Иногда требуется заблокировать базу потом «всех убить, одному остаться» для того, чтобы творить единолично в базе свои темные дела.

    2. Сам альтернативный разрыв соединений с серверной базой выполняется в обработчике ожидания формы обработки.

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

    3. Суцид считается грехом во всех традиционных мировых религиях. 😉 .

    Reply
  96. Evil Beaver

    А еще, чтобы не обновлять и не выгонять руками, есть деплойка )

    https://github.com/oscript-library/deployka

    Reply
  97. ybatiaev

    Всем добрый день!

    Поясните почему используется Вычислить(). Без этого тоже работает.

    Вычислить(«СоединенияИБ.СформироватьСообщениеБлокировки(Сообщение, КодРазрешения)»);

    Reply
  98. yuraos

    (98) Привет!

    Сделано ч/з оператор Вычислить в блоке попытки-исключения для универсальности.

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

    Попытка
    СообщениеСтрока = Вычислить(«СоединенияИБ.СформироватьСообщениеБлокировки(Сообщение, КодРазрешения)»);
    Исключение
    СообщениеСтрока = Сообщение;
    КонецПопытки;
    
    
    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *