Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
01 Дек 2020, 08:01
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: временное блокировку  (Прочитано 168 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Nika Vibliani

  • *
  • Сообщений: 6
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2020-10-28
  • Сайт: 
привет всем, а можна чтоб поставить временное блокировку на текушим сеансе, когда нечего не происходит за некоторое время?


Оффлайн MuI_I_Ika

  • Гончаров Михаил
  • Администратор
  • *****
  • Сообщений: 7137
  • РЕПУТАЦИЯ: 845
  • КПД: 12%
  • Регистрация: 2012-08-15
    • Skype: MuI_I_Ika
  • Сайт: 
  • Профессия: Программист 1С
Речь о программной блокировке или вы спрашиваете как это сделать в режиме пользователя?

Оффлайн Nika Vibliani

  • *
  • Сообщений: 6
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2020-10-28
  • Сайт: 
MuI_I_Ika,

Для входа в режим временной блокировки нужно выбрать пункт «Сервис – Временная блокировка»  и мне интересно как это сделать автоматически когда нечего не происходит, условно Через 20 минут


Оффлайн MuI_I_Ika

  • Гончаров Михаил
  • Администратор
  • *****
  • Сообщений: 7137
  • РЕПУТАЦИЯ: 845
  • КПД: 12%
  • Регистрация: 2012-08-15
    • Skype: MuI_I_Ika
  • Сайт: 
  • Профессия: Программист 1С
Для блокировки есть метод ЗаблокироватьРаботуПользователя().

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

Оффлайн Nika Vibliani

  • *
  • Сообщений: 6
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2020-10-28
  • Сайт: 
MuI_I_Ika,

а как можно мне ето сделать? в смисле с конфигураций ето надо сделать, приамо с программи или с внешной оброботки?

Оффлайн MuI_I_Ika

  • Гончаров Михаил
  • Администратор
  • *****
  • Сообщений: 7137
  • РЕПУТАЦИЯ: 845
  • КПД: 12%
  • Регистрация: 2012-08-15
    • Skype: MuI_I_Ika
  • Сайт: 
  • Профессия: Программист 1С
Глобальный обработчик ожидания не получится внешней обработкой подключить. По крайней мере я пока не видел конфигураций, где встроен вызов подключенной внешней обработки в штатный обработчик ожидания. Так что придется пару строчек кода внести в саму конфигурацию или расширение сделать. Там уже можно прописать вызов внешней обработки.

Оффлайн Nika Vibliani

  • *
  • Сообщений: 6
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2020-10-28
  • Сайт: 
MuI_I_Ika,

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

спосибо заранее

Оффлайн MuI_I_Ika

  • Гончаров Михаил
  • Администратор
  • *****
  • Сообщений: 7137
  • РЕПУТАЦИЯ: 845
  • КПД: 12%
  • Регистрация: 2012-08-15
    • Skype: MuI_I_Ika
  • Сайт: 
  • Профессия: Программист 1С
Стандартно это Модуль приложения Процедура ПриНачалеРаботыСистемы()

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

Например, у меня эта процедура выглядит следующим образом:

Процедура ПриНачалеРаботыСистемы()

// СтандартныеПодсистемы
СтандартныеПодсистемыКлиент.ПриНачалеРаботыСистемы();
// Конец СтандартныеПодсистемы

// ПодключаемоеОборудование
МенеджерОборудованияКлиент.ПриНачалеРаботыСистемы();
// Конец ПодключаемоеОборудование

КонецПроцедуры


Я перехожу в процедуру СтандартныеПодсистемыКлиент.ПриНачалеРаботыСистемы();

И смотрю что там.

Процедура ПриНачалеРаботыСистемы(Знач ОповещениеЗавершения = Неопределено, НепрерывноеВыполнение = Истина) Экспорт

Если ВыполняетсяИнтерактивнаяОбработкаПередНачаломРаботыСистемы() Тогда
Возврат;
КонецЕсли;

Если ОтключенаЛогикаНачалаРаботыСистемы() Тогда
Возврат;
КонецЕсли;

Если ОповещениеЗавершения <> Неопределено Тогда
ОбщегоНазначенияКлиентСервер.ПроверитьПараметр("СтандартныеПодсистемыКлиент.ПриНачалеРаботыСистемы",
"ОповещениеЗавершения", ОповещениеЗавершения, Тип("ОписаниеОповещения"));
КонецЕсли;
ОбщегоНазначенияКлиентСервер.ПроверитьПараметр("СтандартныеПодсистемыКлиент.ПриНачалеРаботыСистемы",
"НепрерывноеВыполнение", НепрерывноеВыполнение, Тип("Булево"));

Параметры = ПараметрыОбработкиПриНачалеРаботыСистемы();

// Внешние параметры описания результата.
Параметры.Вставить("Отказ", Ложь);
Параметры.Вставить("Перезапустить", Ложь);
Параметры.Вставить("ДополнительныеПараметрыКоманднойСтроки", "");

// Внешние параметры управления выполнением.
Параметры.Вставить("ИнтерактивнаяОбработка", Неопределено); // ОписаниеОповещения.
Параметры.Вставить("ОбработкаПродолжения",   Неопределено); // ОписаниеОповещения.
Параметры.Вставить("НепрерывноеВыполнение", НепрерывноеВыполнение);

// Внутренние параметры.
Параметры.Вставить("ОповещениеЗавершения", ОповещениеЗавершения);
Параметры.Вставить("ОбработкаЗавершения", Новый ОписаниеОповещения(
"ДействияПриНачалеРаботыСистемыОбработкаЗавершения", ЭтотОбъект));

// Подготовка перехода к следующей процедуре.
Параметры.Вставить("ОбработкаПродолжения", Новый ОписаниеОповещения(
"ДействияПриНачалеРаботыСистемыВИнтеграционнойПроцедуре", ЭтотОбъект));

Попытка
УстановитьРасширенныйЗаголовокПриложения(Истина); // Для главного окна.

Если НЕ ОбработатьПараметрыЗапуска() Тогда
Параметры.Отказ = Истина;
ВыполнитьОбработкуОповещения(Параметры.ОбработкаЗавершения);
Возврат;
КонецЕсли;
Исключение
ОбработатьОшибкуПриНачалеРаботыСистемы(Параметры, ИнформацияОбОшибке(), Истина);
КонецПопытки;
Если ИнтерактивнаяОбработкаПриНачалеРаботыСистемы(Параметры) Тогда
Возврат;
КонецЕсли;

ВыполнитьОбработкуОповещения(Параметры.ОбработкаПродолжения);

КонецПроцедуры

Среди всех параметров в этой процедуре замечаем параметр ДействияПриНачалеРаботыСистемыВИнтеграционнойПроцедуре

Он приводит нас в модуль СтандартныеПодсистемыКЛиент к этой самой процедуре.

Там есть другой параметр ДействияПриНачалеРаботыСистемыВМодуляхИнтеграционнойПроцедуры

Это процедура того же модуля

Еще несколько таких же скачков и мы приходим к выводу что в итоге идет вызов процедуры ПриНачалеРаботыСистемы() из модуля ОбщегоНазначенияКлиентПереопределяемый

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

Если в название модуля добавлено "Переопределяемый", то это значит что разработчик конфигурации предусмотрел его специально для изменения на нашем уровне. И соответственно при обновлении, предполагается, что разработчики конфигурации не будут вносить изменения туда. Вот туда и вставляем наш код.

Код может быть таким. Если у нас конфигурация на бсп, то все просто

ВнешнийОтчетОбработкаСсылка = ОбщийМодульСлужебный.ПолучитьСсылкуНаВнешнийОтчетОбработкуПоИмениНаСервере("Имя обработки контроля работы пользователя");

ИмяОбработкиСлужебное = ДополнительныеОтчетыИОбработкиВызовСервера.ПодключитьВнешнююОбработку(ВнешнийОтчетОбработкаСсылка );

ОбработкаОбъект = ВнешниеОбработки.Создать(ИмяОбработкиСлужебное );
ОбработкаОбъект.ВыполнитьОбработку();



Оффлайн Nika Vibliani

  • *
  • Сообщений: 6
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2020-10-28
  • Сайт: 
MuI_I_Ika,

Не со мной процедуру "СтандартныеПодсистемыКлиент.ПриНачалеРаботыСистемы();"

есть только это:

Процедура ПриНачалеРаботыСистемы()

ГлЗащищеннаяОбработка = Обработки.ГлЗащищеннаяОбработка.Создать();
БИ = Обработки.БухгалтерскиеИтоги.Создать();

ОпределитьФактИспользованияРИБ();

// Определим параметры сеанса, необходимые для ограничения прав доступа.
ПараметрыСеанса.ОбластьДанныхБухгалтера  = Перечисления.НаборПравПользователей.Бухгалтер;
ПараметрыСеанса.ОбластьДанныхГлавногоБухгалтера = Перечисления.НаборПравПользователей.ГлавныйБухгалтер;
ПараметрыСеанса.ПустаяОрганизация = Справочники.Организации.ПустаяСсылка();

ОписаниеОшибкиОпределенияПользователя = "";
Если НЕ УправлениеПользователями.ОпределитьТекущегоПользователя(глТекущийПользователь, ОписаниеОшибкиОпределенияПользователя) Тогда

Предупреждение(ОписаниеОшибкиОпределенияПользователя);
ЗавершитьРаботуСистемы(Ложь);
Возврат;

КонецЕсли;

УстановитьПараметрыСеанса(глТекущийПользователь);

ЗаголовокСистемы = Константы.ЗаголовокСистемы.Получить();
Если НЕ Пустаястрока(ЗаголовокСистемы) Тогда
УстановитьЗаголовокСистемы(ЗаголовокСистемы);
КонецЕсли;

// Завершение обновления конфигурации
Обработки.ОбновлениеКонфигурации.Создать().ЗавершитьОбновлениеКонфигурации();

глУчетнаяПолитикаПоБухгалтерскомуУчету = СоздатьКЭШУчетнойПолитики("БухгалтерскийУчет");
ПараметрыСеанса.УчетнаяПолитикаПоБухгалтерскомуУчету = Новый ХранилищеЗначения(глУчетнаяПолитикаПоБухгалтерскомуУчету,
Новый СжатиеДанных(0));

глУчетнаяПолитикаПоНалоговомуУчету = СоздатьКЭШУчетнойПолитики("НалоговыйУчет");
ПараметрыСеанса.УчетнаяПолитикаПоНалоговомуУчету = Новый ХранилищеЗначения(глУчетнаяПолитикаПоНалоговомуУчету,
Новый СжатиеДанных(0));

ОсновнаяОрганизация  = ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, "ОсновнаяОрганизация");

УчетПоВсемОрганизациям = ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, "УчетПоВсемОрганизациям");

// Открытие Панели функций
//ОткрытьПанельФункций = ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, "ОткрыватьПриЗапускеПанельФункций");
//Если ОткрытьПанельФункций Тогда
// Обработки.ПанельФункцийНовый.ПолучитьФорму().Открыть();
//КонецЕсли;

ПервыйЗапуск = (Константы.НомерВерсииКонфигурации.Получить()="");

ВыполнитьОбновлениеИнформационнойБазы();

// отработка режима завершения работы системы

Если ОМЗавершениеРаботыПользователей.ОбработатьПараметрЗапуска() Тогда
Возврат;
КонецЕсли;

ОМЗавершениеРаботыПользователей.УстановитьКонтрольРежимаЗавершенияРаботыПользователей();

ЗаполнениеУчетнойПолитикиПоПерсоналуОрганизации();

ОпределитьНеобходимостьПерестановкиГраницыИтогов(ПервыйЗапуск);

ПроверитьНаличиеОбновлений();

ПодключитьТорговоеОборудование();

глОбработкаАвтоОбменДанными = ОМОбменДанными.ВыполнитьИнициализациюАвтообменаПриНачалеРаботы();
// автообмен данными
Если глОбработкаАвтоОбменДанными <> Неопределено Тогда

// подключим обработчик обменов данными
ПодключитьОбработчикОжидания("ПроверкаОбменаДанными", глКоличествоСекундОпросаОбмена);

КонецЕсли;

// Открытие Быстрого освоения
ПоказыватьБыстроеОсвоение = ПолучитьЗначениеПоУмолчанию(глТекущийПользователь, "ПоказыватьБыстроеОсвоениеПриНачалеРаботыСистемы");
Если ПоказыватьБыстроеОсвоение Тогда
Обработки.БыстроеОсвоение.ПолучитьФорму().Открыть();
КонецЕсли;

АвтоЗапускПрограми();

ПроверитьНапоминанияКалендарьБухгалтераСобытия();

КонецПроцедуры // ПриНачалеРаботыСистемы()

Последний раз редактировалось: MuI_I_Ika; 19 Ноя 2020, 09:46


Теги:
 

Выплаты лицам, получившим в России временное убежище, и беженцам, облагаются страховыми взносами во внебюджетные фонды

Автор newsРаздел Новости

Ответов: 0
Просмотров: 3921
Последний ответ 13 Фев 2015, 13:56
от news
Денежные средства, поступившие в компанию на временное пользование, не являются доходами компании

Автор newsРаздел Новости

Ответов: 0
Просмотров: 1105
Последний ответ 10 Окт 2014, 11:32
от news
Помещение, взятое предприятием во временное пользование, не является налогооблагаемым доходом

Автор newsРаздел Новости

Ответов: 0
Просмотров: 516
Последний ответ 03 Апр 2015, 09:54
от news
Приказ поможет не допустить блокировку расчетного счета

Автор newsРаздел Новости

Ответов: 0
Просмотров: 773
Последний ответ 16 Дек 2014, 14:57
от news
как в написанной с 0 конфигурации реализовать блокировку редактирования документов

Автор Св ЧРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 517
Последний ответ 02 Авг 2017, 15:26
от oleg-x

* Живое общение

Не устроил ответ?

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


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

DmitriyF DmitriyF
31 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
28 Сообщений
alexandr_ll
20 Сообщений
MuI_I_Ika MuI_I_Ika
17 Сообщений
antoneus antoneus
10 Сообщений
LexaK
10 Сообщений
Yamuna
9 Сообщений
Дидар Оразалы Дидар Оразалы
9 Сообщений
gribok
9 Сообщений
Каримдат Каримдат
7 Сообщений

* Кто онлайн

  • Точка Гостей: 245
  • Точка Скрытых: 0
  • Точка Пользователей: 3
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal