Отследить, что элемент записывается через СОМ соединение а не пользователем
1.
Гость
18.05.22 15:03
Есть база 1С 8.3, в ней есть справочник., когда пользователь нажимает записать, вызывается подписка на событие "перед записью" и "при записи", в которых есть "определенный функционал" который исполняется.Здесь все ок. Но когда в этот справочник вносятся изменения через СОМ соединение, то "определенный функционал" не выполняется. Как сделать так чтоб выполнялся ?
Отдать $m
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) вариантов не много.
Или для общего модуля, в котором находится процедура обработчика подписки не установлен флаг "Внешнее соединение" или в нем же эта процедура попадает в обрамление препроцессора:
#Если Сервер Тогда
т.е. под ограничение попадает внешнее соединение.
Или для общего модуля, в котором находится процедура обработчика подписки не установлен флаг "Внешнее соединение" или в нем же эта процедура попадает в обрамление препроцессора:
#Если Сервер Тогда
т.е. под ограничение попадает внешнее соединение.
(1)
Но когда в этот справочник вносятся изменения через СОМ соединение, то "определенный функционал" не выполняется. Как сделать так чтоб выполнялся ?
Решение перенести "определенный функционал" в код подключающейся базы не предлагать?
(11)
та база не моя
Ну, тогда другой "костыль" (на случай, если принципиально решить проблему так и не получится): в "своей" базе после подключения или по расписанию обработкой пробегаться по справочнику, проверять для каждого элемента - выполнялся ли нужный функционал и если нет, то выполнять его.
Возможно они и не вызываются при ком соединении, создайте РС, и фоновым заданием отслеживайте записи регистра и делайте свои "определенные функции"
Попробуйте нужный функционал (если он не выполнен) вызвать из модуля объекта.
Там должно сработать.
Но чтобы дважды не выполнялось одно и тоже, прописать #Если ВнешнееСоединение Тогда
Там должно сработать.
Но чтобы дважды не выполнялось одно и тоже, прописать #Если ВнешнееСоединение Тогда
Проверте может в обработчике подписки есть прерывания (пропуска) "определленого функционала" типа
Если Источник.ОбменДанными.Загрузка = Истина Тогда Возврат;
Попытка Исключение;
#Если Сервер Тогда
Если Источник.ОбменДанными.Загрузка = Истина Тогда Возврат;
Попытка Исключение;
#Если Сервер Тогда
Изменяя справочник через COM-соединение: находясь в своей базе берете запись по соединению, в своей базе находите запись, получаете объект, изменяете и Записать?
вызывается подписка на событие "перед записью" и "при записи"
Если эти функции на форме то вызываться они и не будут.
Надо или переносить их в модуль объекта, либо в место, где выполняется вызов (COM-соединение)
придумайте алгоритм передачи сведений другим способом
например если запись в справочник не локально, значит это COM .
например если запись в справочник не локально, значит это COM .
еще как вариант, заходят по ком соединению через какого-то служебного пользователя,
смотреть его Если ПараметрыСеанса.ТекущийПользователь = ВнешнийПользователь Тогда
еще как правило по ком соединению объекты записывают с ОбменДанными.Загрузка = Истина
- в этом случае тоже часть функционала отключается
смотреть его Если ПараметрыСеанса.ТекущийПользователь = ВнешнийПользователь Тогда
еще как правило по ком соединению объекты записывают с ОбменДанными.Загрузка = Истина
- в этом случае тоже часть функционала отключается
Внимание! Не забывайте отмечать решение на ваш вопрос, если оно найдено. Это повысит ваш рейтинг на форуме.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот
