Ограничение запуска нескольких сеансов 1С: Предприятие под одним пользователем

11.09.24

Администрирование - Роли и права

Ограничение запуска нескольких сеансов 1С: Предприятие под одним пользователем. Доработка сделана через расширение. Функционал работает в файловом и клиент-серверном варианте работы конфигурации. Данная разработка позволяет завершать работу пользователя двумя способами: 1. Если заходит один пользователь во второй раз, завершается работа входящего. 2. Если заходит один пользователь во второй раз, завершается работа первого сеанса под ним. Данное расширение работает как с толстым клиентом, так и с тонким.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
(только для физ. лиц)
Ограничение запуска 1С без совместимости
.cfe 11,50Kb
33 1 850 руб. Купить
Ограничение запуска 1С с совместимостью 8.3.12
.cfe 11,50Kb
34 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Ограничение запуска 1С: Предприятие нескольких сеансов под одним пользователем. Функционал разработан через расширение, конфигурацию с поддержки снимать НЕ НУЖНО. Функционал работает в файловом и клиент-серверном варианте работы конфигурации.

 

Для внедрения данного функционала в систему необходимо добавить расширения свою систему.

Открываем список расширений в конфигурации

 

 

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

 

 

После добавления расширения снимаем галочку «Безопасный режим»

 

После этого необходимо перезагрузить 1С.

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

 

 

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

Сперва необходимо добавить дополнительные сведения

 

 

 

У элемента «Пользователи» добавляем новое свойство

 

 

Поле «Для разработчиков» должно полностью совпадать с наименованием на скрине

 

 

Реквизит для разработчика "BusinessPartner_ЗапускатьНесколькоСеансов"

После этого заходим в справочник «Пользователи» у необходимого пользователя дополнительное свойство ставим в значение «Да»

 

 

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

 

 

Завершение первого сеанса

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

 

 

Реквизит для разработчика "BusinessPartner_ЗавершаниеПервогоСеанса"

После этого заходим в справочник «Пользователи» у необходимого пользователя дополнительное свойство ставим в значение «Да»

 

 

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

Максимум, что нужно будет доработать в случае не запуска, это изменить совместимость

Конфигурации на которых тестировалось:

Управление торговлей, редакция 11 (11.4.11.100)

Розница, редакция 2.3 (2.3.3.31)

Бухгалтерия предприятия, редакция 3.0 (3.0.91.31) 

Проверено на следующих конфигурациях и релизах:

  • Управление торговлей, редакция 11, релизы 11.5.19.55, 11.5.19.52
  • Бухгалтерия предприятия, редакция 3.0, релизы 3.0.158.23

Вступайте в нашу телеграмм-группу Инфостарт

Блокировка Работы Пользователей УФ Расширение

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

15500 руб.

02.09.2020    199802    1104    410    

1012

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

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

16000 руб.

10.11.2023    16149    70    39    

87

Зарплата Роли и права Системный администратор Бухгалтер 1С v8.3 Бухгалтерский учет Управление правами 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Комплексная автоматизация 2.х Молдова Россия Казахстан Бухгалтерский учет Платные (руб)

Расширение позволяет максимально полно ограничить доступ пользователей к данным по заработной плате, а именно закрывает доступ к документам начисления и выплаты заработной платы, не позволяет просматривать бухгалтерские отчеты по счету учета зарплаты а также убирает зарплатные проводки из журнала проводок. Расширение запрещает просматривать платежные документы на выплату зарплаты, так же не доступны регламентные отчеты в ПФР и ИФНС. Расширение предлагает готовые настроенные профили "Бухгалтер без зарплаты", "Только просмотр без зарплаты".

5940 руб.

27.05.2021    43646    329    106    

259

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 17.06.2025, версия 1.3

19200 руб.

06.12.2023    15078    62    8    

92

Роли и права Системный администратор Программист 1С v8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Бухгалтерия автономного учреждения 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Платные (руб)

Мучаетесь со списком типовых ролей? Не хотите иметь дело с конфигуратором? Не знаете что делают имеющиеся права в базе? Хотите просто и удобно добавлять и настраивать, по одному клику, доступы и поведение при записи/удалении/проведении/открытии списка/фильтрацию данных в списках или формах выбора для пользователя или группы пользователей и для любого объекта? Не хотите переживать, что при обновлении конфигурации все права и роли слетят? (Обновление от 27.03.2023, версия 1.9)

16800 руб.

21.03.2022    17194    27    54    

50

Логистика, склад и ТМЦ Роли и права Программист Бухгалтер Пользователь 1С v8.3 Бухгалтерский учет Управление правами 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Расширение для 1С:Бухгалтерия 3.0, которое позволяет использовать отдельные роли для доступа к складским документам, для доступа к документам раздела "Производство" и для доступа к документам раздела "Покупки".

4560 руб.

21.05.2019    1697339    582    194    

142

Роли и права Системный администратор Бухгалтер Пользователь 1С v8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение предназначено для Бухгалтерии предприятия (версии ПРОФ и КОРП). Типовая конфигурация остается на поддержке. С помощью расширения менеджер по продажам будет иметь доступ к контрагентам и списку их документов только в случае, если он является для них ответственным. Пользователю с полными правами также доступна обработка «Назначение ответственных» для группового добавления/удаления ответственного в карточке контрагента. Есть версия данного расширения для клиентов Fresh - в магазине расширений (Fresh)

9360 руб.

14.09.2022    6992    11    6    

15
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. slav4ek 24.04.21 09:23 Сейчас в теме
на не полных правах не работает, только после того как добавил, заработало.
&НаСервере 
Функция ПроверитьМойСеансПервый() Экспорт 
	УстановитьПривилегированныйРежим(Истина); //+добавил
        ..................................................................
	УстановитьПривилегированныйРежим(Ложь);  //+добавил

	Возврат Ложь;
	
КонецФункции
Показать
2. darminovpp 24.04.21 19:24 Сейчас в теме
(1) спасибо. Добавлю ваш комментарий в публикацию
3. nwtsk 23.06.21 18:49 Сейчас в теме
WEB- сеансы не ограничивает?
4. iLonmaks 15 02.02.22 11:41 Сейчас в теме
Запрет действует только на тонкий клиент или еще и веб сеанс?
5. zavedeev 27.12.22 22:30 Сейчас в теме
А под веб клиентом будет работать? если нет, то может есть какие соображения
спасибо
6. darminov 112 28.12.22 07:43 Сейчас в теме
(5) на веб клиенте не тестировал.
7. ssn5810 28.08.24 22:12 Сейчас в теме
Почему если через конфигуратор, через точку останова, сеанс первый закрывается, если через запуск типовой 1С сеансы не закрываются
Прикрепленные файлы:
8. ssn5810 28.08.24 23:01 Сейчас в теме
почему не определяет пользователя ? поэтому и сеанс не закрывает (Если АктивныйПользователь.Пользователь = мЮзер Тогда)
Прикрепленные файлы:
9. darminov 112 29.08.24 08:18 Сейчас в теме
(8) добрый день. подскажите у вас какой релиз базы?
10. ssn5810 29.08.24 08:37 Сейчас в теме
(9) РАЗОБРАЛСЯ в ГЛЮКЕ!!! Нельзя запускать на одном компе под одним пользователем несколько сеансов ?
когда один сеанс - пользователь определяется, когда 2 - как получится, иногда срабатывает, но чаще "ПОЛЬЗОВАТЕЛЬ ИБ НЕ ИДЕНТИФИЦИРОВАН. Как потестить ?
11. darminov 112 29.08.24 08:38 Сейчас в теме
(10) можно запускать. у меня такой ошибки не воспроизводилась. поэтому и спрашиваю какая конфигурация у вас стоит и какой релиз?
12. ssn5810 29.08.24 08:41 Сейчас в теме
Штрих ТП7. Я не устанавливал расширение, внедрил модули. Могу по АниДеск подключить, посмотрите?
13. darminov 112 29.08.24 08:42 Сейчас в теме
(12) на штрих не тестировал. нету такой конфигурации в распоряжении. нужно смотреть. что там
14. ssn5810 29.08.24 08:47 Сейчас в теме
Все то же как в УТ11. Бъюсь со вчерашнего дня. Выбрал вашу работу потому что отключает 1й сеанс, других вариантов в инете нет. По АниДеск подключить, посмотрите?
15. ssn5810 29.08.24 09:06 Сейчас в теме
сейчас несколько раз попробовал, вроде работает...
16. darminov 112 29.08.24 09:07 Сейчас в теме
(15) хорошо. если что пишите.
17. user742463 25.10.24 14:04 Сейчас в теме
Добрый день! не работает - из второго сеанса не выкидывает. 1С:Предприятие 8.3 (8.3.25.1394) Бухгалтерия предприятия, редакция 3.0 (3.0.160.22)
Прикрепленные файлы:
18. Kapratoshka86 25.10.24 21:08 Сейчас в теме
1С:Предприятие 8.3 (8.3.25.1445) Розница, редакция 2.3 (2.3.20.38)

BusinessPartner_ЗапретНаЗапускБолееОдногоСеанса: Критичная: Значение контролируемого свойства РежимСовместимости у объекта не совпадает со значением в расширяемой конфигурации

Обновление будет?
19. DiselDen 27.02.25 09:13 Сейчас в теме
Если чуток изменить функции то тогда заработает и в клиент-серверном варианте

Функция ПолучитьСписокАктивныхПользователей() Экспорт
	
	УстановитьПривилегированныйРежим(Истина);
	
	//СписокАктивныхЮзеров	= ПолучитьСоединенияИнформационнойБазы(); 
	СеансыИнформационнойБазы = ПолучитьСеансыИнформационнойБазы();

	
	Запрос = Новый Запрос;
	Запрос.Текст = "ВЫБРАТЬ
	|    ""                                                                   "" КАК Пользователь,
	|    ""                                                                   "" КАК ИмяКомпьютера,
	|    ""                                                                   "" КАК НомерСеанса,
	|    ""                                                                   "" КАК ДатаСеанса";
	
	АктивныеПользователи=Запрос.Выполнить().Выгрузить().СкопироватьКолонки();
	
	//Для Каждого ЭлементМассива из СписокАктивныхЮзеров Цикл
	Для Каждого ЭлементМассива из СеансыИнформационнойБазы Цикл	
		Если НЕ Найти(ЭлементМассива.ИмяПриложения, "1CV8") = 0 тогда
			НоваяСтрока					= АктивныеПользователи.Добавить();
			НоваяСтрока.Пользователь	= ВРег(СокрЛП(ЭлементМассива.Пользователь.ПолноеИмя));
			НоваяСтрока.ИмяКомпьютера	= ВРег(СокрЛП(ЭлементМассива.ИмяКомпьютера));
			НоваяСтрока.ДатаСеанса		= ЭлементМассива.НачалоСеанса;	
			НоваяСтрока.НомерСеанса		= ЭлементМассива.НомерСеанса;
		КонецЕсли;
	КонецЦикла;
	
	ПараметыПрерывания 	= Новый Структура;
	мЮзер 				= BDV_МодульПолныеПрава.ПолучитьимяТекущегоПользователя();
	КолСеанс			= 0; 	
	
	//проверим есть нужно ли завершать первый сеанс 
	ЗавершаемПервыйСеанс = ПолучитьЗавершаниеПервогоСеанса();
	Если ЗавершаемПервыйСеанс Тогда 
		АктивныеПользователи.Сортировать("ДатаСеанса УБЫВ");
	КонецЕсли;
	
	Для каждого АктивныйПользователь Из АктивныеПользователи Цикл
		Если АктивныйПользователь.Пользователь = мЮзер Тогда

			КолСеанс	= КолСеанс + 1;
			Если КолСеанс = 2 Тогда
				ПараметыПрерывания.Вставить("Пользователь"			, Строка(АктивныйПользователь.Пользователь));
				ПараметыПрерывания.Вставить("ИмяКомпьютера"			, АктивныйПользователь.ИмяКомпьютера);
				ПараметыПрерывания.Вставить("НеРазрешатьПодключение", ПолучитьРазрешениеПодключения());
				ПараметыПрерывания.Вставить("ЗавершаемПервыйСеанс"	, ПолучитьЗавершаниеПервогоСеанса());
				ПараметыПрерывания.Вставить("ДатаСеанса"			, АктивныйПользователь.ДатаСеанса);
				ПараметыПрерывания.Вставить("НомерСеанса"			, АктивныйПользователь.НомерСеанса);
				Прервать;
			КонецЕсли;
		КонецЕсли;
	КонецЦикла;
		
	УстановитьПривилегированныйРежим(Ложь);
	
	Возврат ПараметыПрерывания;
	
КонецФункции //ПолучитьСписокАктивныхПользователей()

Функция ПроверитьМойСеансПервый() Экспорт 
    
    УстановитьПривилегированныйРежим(Истина);
    
	ЗавершаемПервыйСеанс = ПолучитьЗавершаниеПервогоСеанса();
	
	Если ЗавершаемПервыйСеанс Тогда
		
		НомерСеансаПользователя = НомерСеансаИнформационнойБазы();
		
		//СписокАктивныхЮзеров	= ПолучитьСоединенияИнформационнойБазы(); 
		СеансыИнформационнойБазы = ПолучитьСеансыИнформационнойБазы();
		
		Запрос = Новый Запрос;
		Запрос.Текст = "ВЫБРАТЬ
		|    ""                                                                   "" КАК Пользователь,
		|    ""                                                                   "" КАК ИмяКомпьютера,
		|    ""                                                                   "" КАК НомерСеанса,
		|    ""                                                                   "" КАК ДатаСеанса";
		
		АктивныеПользователи = Запрос.Выполнить().Выгрузить().СкопироватьКолонки();
		
		//Для Каждого ЭлементМассива из СписокАктивныхЮзеров Цикл
		Для Каждого ЭлементМассива из СеансыИнформационнойБазы Цикл	
			Если НЕ Найти(ЭлементМассива.ИмяПриложения, "1CV8") = 0 Тогда
				НоваяСтрока					= АктивныеПользователи.Добавить();
				НоваяСтрока.Пользователь	= ВРег(СокрЛП(ЭлементМассива.Пользователь.ПолноеИмя));
				НоваяСтрока.ИмяКомпьютера	= ВРег(СокрЛП(ЭлементМассива.ИмяКомпьютера));
				НоваяСтрока.ДатаСеанса		= ЭлементМассива.НачалоСеанса;	
				НоваяСтрока.НомерСеанса		= ЭлементМассива.НомерСеанса;
			КонецЕсли;
		КонецЦикла;
		
		ПараметыПрерывания 	= Новый Структура;
		ПараметыПрерывания.Вставить("НомерСеанса" , "0");
		мЮзер 				= BDV_МодульПолныеПрава.ПолучитьимяТекущегоПользователя();
		КолСеанс			= 0; 	
		
		//проверим есть нужно ли завершать первый сеанс 
		Если ЗавершаемПервыйСеанс Тогда 
			АктивныеПользователи.Сортировать("ДатаСеанса УБЫВ");
		КонецЕсли;
		
		Для каждого АктивныйПользователь Из АктивныеПользователи Цикл
			Если АктивныйПользователь.Пользователь = мЮзер Тогда	
				КолСеанс	= КолСеанс + 1;
				Если КолСеанс = 2 Тогда
					ПараметыПрерывания.Вставить("Пользователь"			, Строка(АктивныйПользователь.Пользователь));
					ПараметыПрерывания.Вставить("ИмяКомпьютера"			, АктивныйПользователь.ИмяКомпьютера);
					ПараметыПрерывания.Вставить("НеРазрешатьПодключение", ПолучитьРазрешениеПодключения());
					ПараметыПрерывания.Вставить("ЗавершаемПервыйСеанс"	, ПолучитьЗавершаниеПервогоСеанса());
					ПараметыПрерывания.Вставить("ДатаСеанса"			, АктивныйПользователь.ДатаСеанса);
					ПараметыПрерывания.Вставить("НомерСеанса"			, АктивныйПользователь.НомерСеанса);
					Прервать;
				КонецЕсли;
			КонецЕсли;
		КонецЦикла;
		
		Если Строка(НомерСеансаПользователя) = ПараметыПрерывания.НомерСеанса Тогда 
			УстановитьПривилегированныйРежим(Ложь);
			Возврат Истина;
		КонецЕсли;
	КонецЕсли;
    
    УстановитьПривилегированныйРежим(Ложь);
    
	Возврат Ложь;
	
КонецФункции // ПроверитьМойСеансПервый()
Показать



Тестировал на 1С:Предприятие 8.3 (8.3.25.1520)
20. DiselDen 06.03.25 16:29 Сейчас в теме
НоваяСтрока.ДатаСеанса = ЭлементМассива.НачалоСеанса;

В таблице активных пользователей ДатаСеанса это строка
Как вы думаете какой из двух сеансов будет закрываться
06.03.2025 12:51:09 или 06.03.2025 9:12:10
При сортировке активных пользователей
АктивныеПользователи.Сортировать("ДатаСеанса УБЫВ")
06.03.2025 9:12:10 - окажется первым сеансом
06.03.2025 12:51:09 - закроется хотя является вторым запущенным.
VyacheslavShilov; +1 Ответить
Оставьте свое сообщение