Имя: Пароль:
1C
1С v8
Параметры сеанса и текущая дата
0 Rusf1n
 
16.01.18
09:13
Добрый день! Реализую задачу по ограничениям по правам, так вот суть в чем, надо отслеживать текущую дату. Например, если я использую "параметр сеанса" с текущей датой, пользователь зашел сегодня - наступило завтра, а он из 1С не выходил. Я как понимаю параметр сеанса сам не обновится с изменением даты на компьютере??? Его надо самому как-то обновлять?? Заранее благодарю!
1 Ненавижу 1С
 
гуру
16.01.18
09:16
а зачем параметр сеанса с текущей датой?
2 Волшебник
 
модератор
16.01.18
09:17
Такой параметр сеанса не нужен. Просто вызови ТекущаяДата()
3 Остап Сулейманович
 
16.01.18
09:19
(0) Если так... в лоб - то в модуле сеанса, в УстановкаПараметровСеанса проверять дату сеанса с системной датой. И если они не совпадают - менять.
Например :
Процедура УстановкаПараметровСеанса(ТребуемыеПараметры)
  ...
  Если ТребуемыеПараметры.Найти(ИмяНужного) Тогда
    Если ИмяНужного <> ТекущаяДата() Тогда
      ИмяНужного = ТекущаяДата();
    КонецЕсли;
  КонецЕсли;
КонецПроцедуры

Учесть, что ТекущаяДата() возвращает ДатаВремя. И если нужна только дата сравнение как в примере не годится.
4 DmitrO
 
16.01.18
09:20
Дело наверно в том что ему нужен параметр сеанса как параметр ограничения RLS.

В таком случае об обновлении значения параметра сеанса должен позаботиться сам сеанс, т.е. клиент.
См. ПодключитьОбработчикОжидания
5 Волшебник
 
модератор
16.01.18
09:21
Каждую ночь сервер лучше перезагружать, а то у него бывают утечки памяти.
6 Rusf1n
 
16.01.18
09:52
(4) именно нужно для RLS
7 Timon1405
 
16.01.18
10:00
(5) оО, это где такие рекомендации дают?
8 Волшебник
 
модератор
16.01.18
10:06
(7) Из моего опыта
9 Ненавижу 1С
 
гуру
16.01.18
10:10
абсолютно бредовая идея, но вдруг:

1. создать константу
2. настроить регламентное задание по расписанию раз в сутки изменять ее
3. в RLS использовать обращение к константе

если используется несколько часовых поясов возможно вместо константы использовать РС
10 Serg_1960
 
16.01.18
10:51
Вы, наверно, давно не заглядывали в актуальные конфигурации  новых версий? Если есть возможность, откройте ЗУП 3.1 и посмотрите, например, общие модули с "ДатыЗапретаИзменения..." в начале наименования.

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

Процедура УстановкаПараметровСеанса(ИмяПараметра, УстановленныеПараметры) Экспорт
    
    Если ИмяПараметра = "ДействующиеДатыЗапретаИзменения" Тогда
        Значение = ЗначениеПараметраСеансаДействующиеДатыЗапретаИзменения();
        ПараметрыСеанса.ДействующиеДатыЗапретаИзменения = Значение;
        УстановленныеПараметры.Добавить("ДействующиеДатыЗапретаИзменения");
        ПоследняяПроверка = ДатыЗапретаИзмененияСлужебныйПовтИсп.ПоследняяПроверкаВерсииДействующихДатЗапрета();
        ПоследняяПроверка.Дата = ТекущаяДатаСеанса();
        
    ИначеЕсли ИмяПараметра = "ПропуститьПроверкуЗапретаИзменения" Тогда
        ПараметрыСеанса.ПропуститьПроверкуЗапретаИзменения = Ложь;
        УстановленныеПараметры.Добавить("ПропуститьПроверкуЗапретаИзменения");
        
    ИначеЕсли ИмяПараметра = "ОбновитьВерсиюДатЗапретаИзмененияПослеЗагрузкиДанных" Тогда
        ПараметрыСеанса.ОбновитьВерсиюДатЗапретаИзмененияПослеЗагрузкиДанных = Ложь;
        УстановленныеПараметры.Добавить("ОбновитьВерсиюДатЗапретаИзмененияПослеЗагрузкиДанных");
    КонецЕсли;
    
КонецПроцедуры
11 Мандалай
 
16.01.18
11:54
Только не ТекущаяДата, а ТекущаяДатаСеанса.
12 Мандалай
 
16.01.18
11:55
И перезагружать не каждый день :), а раз в неделю вполне достаточно