Как избегать методов ПоискПоКоду и ПоискПоНаименованию в КД 2.1?

1. D_e_X_T_e_R 575 22.10.18 14:40 Сейчас в теме
Доброго времени. Написал правила обмена, все отлично работает, но у заказчика требования: "Нельзя использовать методы НайтиПоКоду() и НайтиПоНаименованию(), а у меня в нескольких местах данные методы присутствуют, например, при выгрузке статей расходов:

Если ОбъектКоллекции.СтатьяРасходов <> Неопределено Тогда
	Если ОбъектКоллекции.СтатьяРасходов.ВидДеятельностиРасходов = Перечисления.ВидыДеятельностиРасходов.ПрочаяДеятельность Тогда
		Выражение = "Справочники.СтатьиЗатрат.НайтиПоКоду(""000000003"")";
	Иначе
		Значение = ОбъектКоллекции.СтатьяРасходов;
	КонецЕсли;
КонецЕсли;	


Вопрос, как можно реализовать подобное без этого метода?
Все это нужно реализовать в КД 2.
Найденные решения
3. VmvLer 22.10.18 14:54 Сейчас в теме
1. посмотреть в отладчике УИД элемента
2. в своей поделке объявлять его переменой типа УИД

УидЗначение = ....

дальше поиск типа так
НайденнаяСсылка = ОбщегоНазначения.МенеджерОбъектаПоСсылке(тПустаяСсылкаТипа).ПолучитьСсылку(Новый УникальныйИдентификатор(УидЗначение));

3. Сказать заказчику - никакой халтуры, поиск по УИДУ и хоть 100500 раз меняйте код - все будет чики-пуки.
D_e_X_T_e_R; Boneman; +2 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. alex-l19041 8 22.10.18 14:49 Сейчас в теме
(1)
.НайтиПоКоду(""000000003"")"
- тогда надо создавать новые константы, заполнять, и потом получать значения этих констант.

так будет защита от того, что кто-то изменит коды...
D_e_X_T_e_R; +1 Ответить
5. D_e_X_T_e_R 575 22.10.18 15:05 Сейчас в теме
(2)А если такой объект не один, а скажем штук 30, все в константы как то неудобно.
4. Boneman 302 22.10.18 14:55 Сейчас в теме
(1) еще по уиду можно получать объекты ))) и формально результат будет соответсвовать требованиям заказчика.

А по сути..как не плюнь, если необходимо получить и использовать непредопределенный объект из пользовательских данных,
то все равно его каким то образом нужно искать. Либо делать механизм по его сохранению.
D_e_X_T_e_R; +1 Ответить
3. VmvLer 22.10.18 14:54 Сейчас в теме
1. посмотреть в отладчике УИД элемента
2. в своей поделке объявлять его переменой типа УИД

УидЗначение = ....

дальше поиск типа так
НайденнаяСсылка = ОбщегоНазначения.МенеджерОбъектаПоСсылке(тПустаяСсылкаТипа).ПолучитьСсылку(Новый УникальныйИдентификатор(УидЗначение));

3. Сказать заказчику - никакой халтуры, поиск по УИДУ и хоть 100500 раз меняйте код - все будет чики-пуки.
D_e_X_T_e_R; Boneman; +2 Ответить
6. D_e_X_T_e_R 575 22.10.18 15:06 Сейчас в теме
(3)Интересно...очень интересно, даже не думал с этой стороны. Спасибо.
8. maks_20 169 22.10.18 15:20 Сейчас в теме
(6) еще как вариант, завести у объектов на стороне загрузки доп свойства, и в них записать параметры по умолчанию. После загрузки объекта получать доп свойства и дозаполнять объект.
D_e_X_T_e_R; +1 Ответить
7. vadim1011985 103 22.10.18 15:16 Сейчас в теме
(3) А если перенос в несколько разных баз ? УИД универсален для одной базы.

А вообще в этих случаях можно

Договорится какое значение может подставляться и передавать его через параметр или вообще записывать пустую ссылку , а там дальше пусть они разбираю что подставлять
D_e_X_T_e_R; +1 Ответить
Оставьте свое сообщение

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