Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Процедура модуля сеанса отрабатывает один раз но делает несколько записей в регистр сведений
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
AnryMc
База Клиент-сервер
Модуль сеанса процедура "УстановкаПараметровСеанса" - вызывается общий модуль (сервер, вызов сервера) в нём процедура делает запись в регистр сведений (независимый, периодический - секунда).

В отладчике заход в процедуру - 1 раз. (может я не могу поймать - множественный)

В регистре сведений (у некоторых пользователей) иногда вместо 1 записи РС может сформироваться несколько (максимум видел 10)...... с периодом от 1 до 15 секунд....

т.е.
вместо:
Иванов - 23.01.2025 11:00:00

Может сформироваться:
Иванов - 23.01.2025 11:00:00
Иванов - 23.01.2025 11:00:02
Иванов - 23.01.2025 11:00:12
Иванов - 23.01.2025 11:00:16
Иванов - 23.01.2025 11:00:20
...

Буду благодарен за мысли!!! Почему? Как?
Vofka
Может пользователи запускают несколько сеансов?
Profi_1C77
Vofka @ Сегодня, 14:09 необходимо зарегистрироваться для просмотра ссылки ,
как вариант ставить по типу "глобальные счетчки" и смотреть что многократно вызывается, сама процедура или процедура общего модуля ...
AnryMc
Цитата(Vofka @ 23.01.25, 14:09) необходимо зарегистрироваться для просмотра ссылки
Может пользователи запускают несколько сеансов?


1 сеанс

Перенос вызова процедуры общего модуля из модуля сеанса в модуль приложения - проблема осталась...

В файловом варианте - пока не повторяется

ВОПРОС:

фоновые задания в клиент серверном варианте вызывают модуль сеанса (приложения)?

Profi_1C77 @ Сегодня, 14:23 необходимо зарегистрироваться для просмотра ссылки ,


Не могу перегрузить сервер 1с с ключом "Дебаг" - много работающих пользователей
Profi_1C77

Цитата(AnryMc @ 23.01.25, 14:44) необходимо зарегистрироваться для просмотра ссылки
Не могу перегрузить сервер 1с с ключом "Дебаг" - много работающих пользователей

а оповещение / сообщения выводить ? типа процедура такая количество вызов: - > СчетчикПроцедуры
AnryMc
Profi_1C77 @ Сегодня, 15:15 необходимо зарегистрироваться для просмотра ссылки ,


Спасибо - не сразу понял
Vofka
Цитата(AnryMc @ 23.01.25, 14:44) необходимо зарегистрироваться для просмотра ссылки
фоновые задания в клиент серверном варианте вызывают модуль сеанса (приложения)?

Я на 90% уверен, что да, т.к. они выполняются от имени какого-то пользователя. Но лучше конечно проверить. Создайте рядом пустую базу с заданием и проверьте.
AnryMc
Vofka @ Сегодня, 15:44 необходимо зарегистрироваться для просмотра ссылки ,


Сделал ограничение
    Если ПолучитьТекущийСеансИнформационнойБазы().ПолучитьФоновоеЗадание() = Неопределено Тогда
        Возврат;
    КонецЕсли;


Посмотрим...
fly
AnryMc @ Сегодня, 11:59 необходимо зарегистрироваться для просмотра ссылки ,
Установка параметров сеанса может вызывать несколько раз - первый просто инициализации параметров, потом каждый раз при обращении к неинициализированным параметрам, принудительной установке параметров - по требованию в программе.

(Так в клиент-серверных приложениях при запуске СКД или других варианта запуска, выполняется на сервере, где так же могут инициализироваться параметры но уже другого сеаса на сервере- немного в глубь).

в принипе отладчик всегда ловил обращение к данной процедуре - проверяйте и на клиенте/на сервере... вполне возможно, что несоклько раз инициализуируются разные параметры.
Vofka
AnryMc @ Сегодня, 17:33 необходимо зарегистрироваться для просмотра ссылки ,
А что вы тут делаете? Если это не фоновое задание, то делается Возврат. Возврат откуда?
Я бы сделал запись в журнал регистрации перед или после записи в регистр о том кто это и выполняется ли это в фоновом задании.
AnryMc
Не знаю что помогло:
- перенос из "модуля сеанса" в модуль "приложения"
- код проверки что это не фоновое задание
    Если НЕ ПолучитьТекущийСеансИнформационнойБазы().ПолучитьФоновоеЗадание() = Неопределено Тогда
        Возврат;
    КонецЕсли;


Т.е. локально проблема решена. На уточняющие эксперименты - нет времени (сделать изменение и ждать сутки чтобы убедиться...)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.