Отследить, что элемент записывается через СОМ соединение а не пользователем

1. Гость 18.05.22 15:03
Есть база 1С 8.3, в ней есть справочник., когда пользователь нажимает записать, вызывается подписка на событие "перед записью" и "при записи", в которых есть "определенный функционал" который исполняется.Здесь все ок. Но когда в этот справочник вносятся изменения через СОМ соединение, то "определенный функционал" не выполняется. Как сделать так чтоб выполнялся ?
По теме из базы знаний
Вознаграждение за ответ
Для передачи вознаграждения воспользуйтесь кнопкой "Отдать $m" в сообщении. Для возврата вознаграждения, отдайте его самому себе. Можно вознаграждение разделить между несколькими участниками. Не забывайте нажимать кнопку "Это решение", это повысит вашу репутацию.
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. lmnlmn 69 18.05.22 15:07 Сейчас в теме
(1) Возможно что у модуля с "определенным функционалом" не поставлена галка "Внешнее соединение".
Это решение Отдать $m
Anchoret; +1 Ответить
3. Гость 18.05.22 15:47
(2)есть
Это решение Отдать $m
4. lmnlmn 69 18.05.22 15:48 Сейчас в теме
(3) А "Сервер"?
Это решение Отдать $m
6. Гость 18.05.22 16:23
(4)
Сервер - есть галочка
Это решение Отдать $m
8. lmnlmn 69 18.05.22 16:48 Сейчас в теме
(6) Просто не выходит. Может в модуле с "определенным функционалом" используется что-то неподходящее для внешнего соединения?
Это решение Отдать $m
9. spacecraft 18.05.22 17:08 Сейчас в теме
(1) вариантов не много.
Или для общего модуля, в котором находится процедура обработчика подписки не установлен флаг "Внешнее соединение" или в нем же эта процедура попадает в обрамление препроцессора:
#Если Сервер Тогда
т.е. под ограничение попадает внешнее соединение.
Это решение Отдать $m
triviumfan; rid636674; +2 Ответить
10. ishelper 18.05.22 17:11 Сейчас в теме
(1)
Но когда в этот справочник вносятся изменения через СОМ соединение, то "определенный функционал" не выполняется. Как сделать так чтоб выполнялся ?
Решение перенести "определенный функционал" в код подключающейся базы не предлагать?
Это решение Отдать $m
11. Гость 18.05.22 17:12
(10)
не желательно, та база не моя
Это решение Отдать $m
12. ishelper 18.05.22 17:44 Сейчас в теме
(11)
та база не моя
Ну, тогда другой "костыль" (на случай, если принципиально решить проблему так и не получится): в "своей" базе после подключения или по расписанию обработкой пробегаться по справочнику, проверять для каждого элемента - выполнялся ли нужный функционал и если нет, то выполнять его.
Это решение Отдать $m
15. aleksch21 53 07.06.22 20:35 Сейчас в теме
Вызвать соответствующие процедуры из процедуры, которая производит Запись элемента через COM-соединение (если я правильно понял - база откуда вызывается COM-соединение, в ней можно вносить изменения)
Это решение Отдать $m
5. igor63 18.05.22 16:02 Сейчас в теме
Возможно они и не вызываются при ком соединении, создайте РС, и фоновым заданием отслеживайте записи регистра и делайте свои "определенные функции"
Это решение Отдать $m
7. user686924_shipikVV 18.05.22 16:47 Сейчас в теме
Попробуйте нужный функционал (если он не выполнен) вызвать из модуля объекта.
Там должно сработать.

Но чтобы дважды не выполнялось одно и тоже, прописать #Если ВнешнееСоединение Тогда
Это решение Отдать $m
TerveRus; rid636674; +2 Ответить
13. buragoz 18.05.22 23:34 Сейчас в теме
Проверте может в обработчике подписки есть прерывания (пропуска) "определленого функционала" типа
Если Источник.ОбменДанными.Загрузка = Истина Тогда Возврат;
Попытка Исключение;
#Если Сервер Тогда
Это решение Отдать $m
14. гаврюша 3 19.05.22 18:21 Сейчас в теме
Изменяя справочник через COM-соединение: находясь в своей базе берете запись по соединению, в своей базе находите запись, получаете объект, изменяете и Записать?
Это решение Отдать $m
16. PlatonStepan 38 08.06.22 02:50 Сейчас в теме
вызывается подписка на событие "перед записью" и "при записи"

Если эти функции на форме то вызываться они и не будут.
Надо или переносить их в модуль объекта, либо в место, где выполняется вызов (COM-соединение)
Это решение Отдать $m
17. XAKEP 08.06.22 17:12 Сейчас в теме
придумайте алгоритм передачи сведений другим способом

например если запись в справочник не локально, значит это COM .
Это решение Отдать $m
18. mondordom 09.06.22 16:00 Сейчас в теме
Речь идет о подписках в модуле объекта или в модуле формы?
Это решение Отдать $m
19. soft_wind 09.06.22 16:23 Сейчас в теме
еще как вариант, заходят по ком соединению через какого-то служебного пользователя,
смотреть его Если ПараметрыСеанса.ТекущийПользователь = ВнешнийПользователь Тогда

еще как правило по ком соединению объекты записывают с ОбменДанными.Загрузка = Истина
- в этом случае тоже часть функционала отключается
Это решение Отдать $m
20. x_x 3 09.06.22 19:47 Сейчас в теме
Если в в модуля к подписке стоят галочки "Внешнее соединение" и "Сервер", то скорее все там есть проверка на "ОбменДанными.Загрузка = Истина", как вариант поставить объекту загрузки "ComОбъект.ОбменДанными.Загрузка = Ложь" после он записывается и отработает подписка.
Это решение Отдать $m
Внимание! Не забывайте отмечать решение на ваш вопрос, если оно найдено. Это повысит ваш рейтинг на форуме.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот