Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
14 июн 2024, 02:31

время в которое запустили 1с

Автор Nosferatu112, 05 июн 2024, 14:20

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

Nosferatu112

Добрый день, мне нужно в РС делать запись когда пользователь запускает 1с и когда выключает в какой процедуре прописать этот код, куда 1с попадает когда запускает сеанс?
про журнал регистрации я знаю но он со временем очищается а пользователям нужен отчет который они смогут сформировать за прошлые месяца

antoneus

Модуль приложения - предопределенная процедура ПриНачалеРаботыСистемы.

LexaK

Nosferatu112, сразу куча уточняющих вопросов возникает
1.а если пользователь сразу несколько сеансов запускает?
2.а если при уходе не выходит, не выключает 1С?
что там еще...

если помогло нажмите: Спасибо!

Nosferatu112

LexaK, 1. нужно только время первого запуска за день и время последнего выключения за день
2. все сеансы автоматическизавершаюются в определенное время

Nosferatu112

прописал код всё ок только один вопрос остался
Процедура ЗаписьВРегистр(Цифра) Экспорт
Если Цифра = 1 Тогда

Запись = РегистрыСведений.ок_НачалоКонецРаботыСотрудников.СоздатьМенеджерЗаписи();
Запись.Сотрудник = Пользователи.ТекущийПользователь();
Запись.РабочийДень = НачалоДня(ТекущаяДата());
Если НЕ Запись.Выбран() Тогда
Запись = РегистрыСведений.ок_НачалоКонецРаботыСотрудников.СоздатьНаборЗаписей();
НоваяЗапись = Запись.Добавить();
НоваяЗапись.Сотрудник = Пользователи.ТекущийПользователь();
НоваяЗапись.РабочийДень = НачалоДня(ТекущаяДата());
НоваяЗапись.НачалоРаботы = ТекущаяДата();
Запись.Записать(Ложь);
КонецЕсли;
Иначе
Запись = РегистрыСведений.ок_НачалоКонецРаботыСотрудников.СоздатьМенеджерЗаписи();
Запись.Сотрудник = Пользователи.ТекущийПользователь();
Запись.РабочийДень = НачалоДня(ТекущаяДата());
Если Запись.Выбран() Тогда
Запись.ОкончаниеРаботы = ТекущаяДата();
Запись.Записать(Ложь);
КонецЕсли;
КонецЕсли;
КонецПроцедуры

Процедура ПриНачалеРаботыСистемы()
Цифра = 1;
ВспомогательныйВызовСервера.ЗаписьВРегистр(Цифра);
КонецПроцедуры

Процедура ПередЗавершениемРаботыСистемы(Отказ, ТекстПредупреждения)
Цифра = 0;
ВспомогательныйВызовСервера.ЗаписьВРегистр(Цифра);
КонецПроцедуры

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

Nosferatu112

LexaK,
прописал код всё ок только один вопрос остался
Процедура ЗаписьВРегистр(Цифра) Экспорт
    Если Цифра = 1 Тогда
       
        Запись = РегистрыСведений.ок_НачалоКонецРаботыСотрудников.СоздатьМенеджерЗаписи();
        Запись.Сотрудник = Пользователи.ТекущийПользователь();
        Запись.РабочийДень = НачалоДня(ТекущаяДата());
        Если НЕ Запись.Выбран() Тогда
            Запись = РегистрыСведений.ок_НачалоКонецРаботыСотрудников.СоздатьНаборЗаписей();
            НоваяЗапись = Запись.Добавить();
            НоваяЗапись.Сотрудник = Пользователи.ТекущийПользователь();
            НоваяЗапись.РабочийДень = НачалоДня(ТекущаяДата());
            НоваяЗапись.НачалоРаботы = ТекущаяДата();
            Запись.Записать(Ложь);
        КонецЕсли;
    Иначе
        Запись = РегистрыСведений.ок_НачалоКонецРаботыСотрудников.СоздатьМенеджерЗаписи();
        Запись.Сотрудник = Пользователи.ТекущийПользователь();
        Запись.РабочийДень = НачалоДня(ТекущаяДата());
        Если Запись.Выбран() Тогда
            Запись.ОкончаниеРаботы = ТекущаяДата();
            Запись.Записать(Ложь);
        КонецЕсли;   
    КонецЕсли;
КонецПроцедуры

Процедура ПриНачалеРаботыСистемы()
    Цифра = 1;
    ВспомогательныйВызовСервера.ЗаписьВРегистр(Цифра);
КонецПроцедуры

Процедура ПередЗавершениемРаботыСистемы(Отказ, ТекстПредупреждения)
    Цифра = 0;
    ВспомогательныйВызовСервера.ЗаписьВРегистр(Цифра);
КонецПроцедуры

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

Optiman

Цитата: LexaK от 05 июн 2024, 15:03что там еще..
а если...
3) программа зависла?
4) электричество выключили и надо ПК выключать?
и т.д. и т.п.
 B)

LexaK

Nosferatu112,
ЦитироватьОн кидает ошибку что перед завершением нельзя делать серверный вызов, как сделать запись в регистр
ну что же так без фантазии к делу подходить?
как вы думаете для чего в этой процедуре ПередЗавершениемРаботыСистемы, параметр: Отказ?
и как можно его использовать в своих целях?
(если не придумаете, пишите, вместе пофантазируем)
если помогло нажмите: Спасибо!

Теги:
Рейтинг@Mail.ru

Поиск