Вход | Регистрация

1С:Предприятие ::

Метки: 

КД2: Установить ссылку на предопределенный элемент

Я
   mistеr
 
04.01.18 - 21:51
Как при заполнении реквизита объекта передать ссылку на предопределенное (в приемнике) значение?

С перечислениями все просто: передаешь строку с именем значения и готово. А со справочниками и другими ссылочными типами как? Сейчас использую Выражение, но чувствую, должен быть способ поизящнее.
 
 
   Cyberhawk
 
1 - 04.01.18 - 22:04
Ссылки передаются единообразно что на предопределенный, что на непредопределенный элемент
   mistеr
 
2 - 04.01.18 - 22:58
(1) Я наверное плохо объяснил суть проблемы.

На примере. Есть РС КонтактнаяИнформация. Нужно записать туда телефон контрагента (к примеру). Там есть измерения Объект, Тип и Вид. В объект пихаем ссылку на контрагента. Тип — это перечисление ТипыКонтактнойИнформации, нужно записать туда значение Телефон. Передаем строку "Телефон", и при загрузке там корректно проставится ссылка на это значение. Теперь Вид, это справочник ВидыКонтактнойИнформации. Нужно записать туда ссылку на предопределенный элемент ТелефонКонтрагента. Как это сделать, какие есть варианты?
   tesseract
 
3 - 05.01.18 - 00:52
(2) А чем стандартный способ - Справочники.ВидКонтактнойИнформации.ТелефонКонтрагента не подходит? В общем-то предопределенные элементы как раз и нужны, чтобы их в коде использовать можно.
   mistеr
 
4 - 05.01.18 - 10:27
Апну.

(3) Отлично, как его использовать *в источнике*?

Источник 7.7, если что.
   Mikhail Volkov
 
5 - 05.01.18 - 10:43
(0) Предопределенные элементы указываются на вкладке "Конвертация значений".
   vde69
 
6 - 05.01.18 - 10:49
>>>>Источник 7.7, если что.

зечем их там использовать? просто в обработчике поиска укажи

Если ...... Тогда

НайденныйОбъект = Справочники.ВидКонтактнойИнформации.ТелефонКонтрагента
   MadJhey
 
7 - 05.01.18 - 10:51
просто ТелефонКонтрагента
   MadJhey
 
8 - 05.01.18 - 10:52
Значение = "ТелефонКонтрагента"
   mistеr
 
9 - 05.01.18 - 12:25
(7) (8) Работает! Супер, спасибо.

Правда, работает для всего, кроме РС КонтактнаяИнформация. Там у измерения Вид составной тип: Строка и СправочникСсылка.ВидыКонтактнойИнформации. Есди передать строку, то и запишется строка, а не ссылка на справочник.

как тут быть?
   Mikhail Volkov
 
10 - 05.01.18 - 17:42
(9) 2 ПКО: для строки и справочника.
 
 
   user-ok
 
11 - 05.01.18 - 18:05
Значение = "ТелефонКонтрагента"; 
ТипПриемника = "СправочникСсылка.ВидыКонтактнойИнформации";
   user-ok
 
12 - 05.01.18 - 18:11
ТипПриемника - Строка. Тип свойства приемника. Для свойств не составных типов - всегда определен. Для свойств составных типов - определяется либо правилом конвертации, либо разработчиком конвертации
   mistеr
 
13 - 05.01.18 - 20:26
(11) (12) Спасибо. Долой выражения! :)
   Mikhail Volkov
 
14 - 06.01.18 - 09:46
ПКС для "Вид" из Альфа-Авто в УПП:
Структура = Новый Структура("ОбъектКИ", Источник.Объект);
ИсходящиеДанные = Структура;

Значение = ""; ИмяПКО = "";
Если ТипЗнч(Источник.Вид) = "Строка" Тогда
    Значение = СокрЛП(Источник.Вид);
ИначеЕсли Источник.Вид = Справочники.ВидыКонтактнойИнформации.ПрочаяИнформация Тогда 
    Значение = "Прочая информация";
ИначеЕсли Источник.Вид = Справочники.ВидыКонтактнойИнформации.ВебСтраницаОрганизации Тогда 
    Значение = "Веб-страница организации";
ИначеЕсли Источник.Вид = Справочники.ВидыКонтактнойИнформации.ВебСтраницаФизЛица Тогда 
    Значение = "Домашняя веб-страница";
ИначеЕсли Источник.Вид = Справочники.ВидыКонтактнойИнформации.НомерICQ Тогда 
    Значение = "Номер ICQ";
ИначеЕсли Источник.Вид.Предопределенный Тогда
    Если ТипЗнч(Источник.Объект) = Тип("СправочникСсылка.Контрагенты") Тогда
        ИМяПКО = "ВидыКонтактнойИнформацииКонтрагенты";
    ИначеЕсли ТипЗнч(Источник.Объект) = Тип("СправочникСсылка.КонтактныеЛица") Тогда
        ИмяПКО = "ВидыКонтактнойИнформацииКонтактныеЛица";
    ИначеЕсли ТипЗнч(Источник.Объект) = Тип("СправочникСсылка.Организации") Тогда
        ИмяПКО = "ВидыКонтактнойИнформацииОрганизации";
    ИначеЕсли ТипЗнч(Источник.Объект) = Тип("СправочникСсылка.Сотрудники") Тогда
        Если Источник.Вид = Справочники.ВидыКонтактнойИнформации.АдресЭлектроннойПочтыРабочий Тогда
            ИМяПКО = "ВидыКонтактнойИнформацииПользователи";
        Иначе
            ИмяПКО = "ВидыКонтактнойИнформацииФизЛица";
        КонецЕсли;
    Иначе    
        ИмяПКО = "ВидыКонтактнойИнформации";
    КонецЕсли;
Иначе    
    ИмяПКО = "ВидыКонтактнойИнформации";
КонецЕсли;


Список тем форума
Рекламное место пустует   Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует