Имя: Пароль:
1C
1С v8
Конвертация данных 2.0 - объект не найден
0 verschneit
 
18.09.25
05:10
Привет.
Перекидываю документ из одной базы в другую. В реквизите Ответственный некоторые пользователи между базами совпадают, а некоторые нет. Соответственно, если совпадают, там поиском находится и проставляется. Если не находится, мне нужно, чтобы пустое поле оставлялось, а он ставит ссылку из другой базы: <Объект не найден> (...)
Что нужно в правилах проставить, чтобы если не найден реквизит, то и не ставилась ссылка?
1 Chameleon1980
 
18.09.25
05:24
а кто вам сказал, что "а он ставит ссылку из другой базы" означает что это ссылка из другой базы?

ПКО для пользователей есть? как настроен поиск?
у вас по уид и не создавать?
меняйте.
2 verschneit
 
18.09.25
05:37
(1) на что менять? убрать поиск по уид?
3 Chameleon1980
 
18.09.25
06:12
стоп в ПКС, вроде, есть свойство найден/не найден
там отмену при не найден
4 Chameleon1980
 
18.09.25
06:15
нет - в ПКО

написать в при загрузке, например
Отказ = Не ОбъектНайден;
5 verschneit
 
18.09.25
07:20
(4) только надо После загрузки делать, тк При загрузке нет Отказа. Но это не срабатывает. Возможно, потому что объект не загружается, он ведь просто ищется.
6 Chameleon1980
 
18.09.25
07:22
(5) ну да, наверное. главное направление понятно
7 СвинТуз
 
18.09.25
10:58
замените на пустую
если объект не найден
8 kkkanjji
 
18.09.25
11:22
(0) Получилось решить вопрос?
Если нет, попробуй следующие варианты:
1) У справочника "Пользователи" в событии "При загрузке" проверять значение "Объект не найден". Если Ложь - устанавливать значение Справочник.ПустаяСсылка. Это должно сразу решить вопрос. Если не помогло, попробуй сделать тоже самое в событии "После загрузки".
2) Более ресурс затратный вариант, не считай его оптимальным - в глобальном событии "После загрузки объекта" определять из метаданных тип документ. Пройтись по метаданным документа, определить реквизиты с типом "Справочник пользователи", если битая ссылка - заполнять пустой ссылкой.
В целом первый вариант должен решить вопрос
9 verschneit
 
19.09.25
05:43
(6) не работает Отказ = Не ОбъектНайден. либо нужно понятное описание, что сработало у вас. когда стоит флаг не создавать новые, то вообще в ПКО При загрузке/После загрузки не заходит, тк нет загрузки. когда флаг снимаю, он начинает создавать мне пользователей, даже когда стоит Отказ = Не ОбъектНайден. я не понимаю, как это работает.
(7) заменить на пустую получается только из правил к документу - реквизит Ответственный всегда пустым оставлять. в правилах к справочнику Пользователи - ПКО После загрузки - у меня не выходит там переопределить ссылку или объект. все равно в итогде "объект не найден" в документе.
(8) ПКО При загрузке - куда там пустую ссылку ставить? Там нет параметра такого.

Кто-то сталкивался вообще с такой проблемой и решал ее?
Или это все просто в теории что может сработать написали?
Пришлите, пожалуйста, код или скрини того, что у вас сработало.
10 kkkanjji
 
19.09.25
12:49
(9) Друг, читай что написано в описании обработчиков событий.
Там есть параметр Объект.
Задай условие
Если НЕ ОбъектНайден Тогда
   Объект = Неопределено; // ну или Объект = Справочники.Пользователи.ПустаяСсылка
КонецЕсли;

Ты также отладчиком можешь посмотреть, как ведет себя программа при принятии объекта из правил конвертации в конфигураторе, чтобы убедиться, какое конечное значение принимает переменная.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший