Имя: Пароль:
1C
1С v8
Программное назначение типа реквизиту с типом "ДокументСсылка"
,
0 mishula2005
 
30.03.16
15:01
Нужна помощь: имеется реквизит с типом "ДокументСсылка". При программном создании документа записываю в этот реквизит ссылку на документ - в результате не заполняется реквизит.
Понимаю, что это из-за несоответствия типов. Устанавливать составной тип у реквизита мне нельзя.
1 lEvGl
 
гуру
30.03.16
15:14
ДокументСсылка это составной тип с типами всех документов базы
2 mishula2005
 
30.03.16
15:19
Да, но тем не менее не присваивается ссылка на документ в реквизит:

Объект.Документ = Документы.ТребованиеНакладная.НайтиПоНомеру("0000001");
3 mehfk
 
30.03.16
15:21
(2) В отладчике глянь чему равно
Документы.ТребованиеНакладная.НайтиПоНомеру("0000001")
4 mehfk
 
30.03.16
15:21
А потом в СП не заудь заглянуть.
5 Defender aka LINN
 
30.03.16
15:22
(2) Присваивается.
6 mishula2005
 
30.03.16
15:24
(3) я пример образно написала. Под Документы.ТребованиеНакладная.НайтиПоНомеру("0000001") я имела ввиду конкретную ссылку на документ. В отладчике ссылка на имеющийся в базе документ.
7 asady
 
30.03.16
15:24
(6) второй параметр в методе НайтиПоНомеру укажи
8 lEvGl
 
гуру
30.03.16
15:26
(2) присваевается
9 H A D G E H O G s
 
30.03.16
15:27
(0) Зачем вы добавили такой реквизит?
10 lEvGl
 
гуру
30.03.16
15:28
(6) точно то ссылка? не объект ?
11 mishula2005
 
30.03.16
15:32
(9) По постановке задачи в этот реквизит может попасть ссылка на любой документ, имеющийся в базе ( в том числе и на вновь созданные объекты конфигурации - поэтому установила тип "ДокументСсылка", а не "Составной тип" и перечисление ссылок на виды документов).
12 mishula2005
 
30.03.16
15:33
(10) Точно ссылка...
13 MishaD
 
30.03.16
15:34
в 7.7 такая фигня как "назначить тип" была, а здесь хз. Но я верю в гугл
14 Записьдампа
 
30.03.16
15:39
Код по присвоению покажи
15 asady
 
30.03.16
15:43
Для каждого тп из Объект.Метаданные().Реквизиты().Найти("Документ").Тип().Типы() Цикл
    ДокументСсылка = Новый(тп);
    Имя = ДокументСсылка.Метаданные().Имя;
    Синоним = ДокументСсылка.Метаданные().Синоним;
    Сообщить(""+Имя+" / "+Синоним);
КонецЦикла;
16 asady
 
30.03.16
15:43
(11) что выводит у тебя код из (15)?
17 lEvGl
 
гуру
30.03.16
15:47
(15) основательный подход)

"Устанавливать составной тип у реквизита мне нельзя." как бэ не сходится с тем типом что у вас установлен для реквизита
18 hhhh
 
30.03.16
15:49
(16) непонятно, почему вообще там "Объект", если документ создается программно.
19 Defender aka LINN
 
30.03.16
16:33
(6) А можно тогда не образный код, а конкретный?
20 mishula2005
 
31.03.16
07:15
(19) &НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Если  НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда ////этоновый()
        Если Параметры.Свойство("Этап") Тогда
            Объект.СлужбаФилиала = Параметры.СлужбаФилиала;
            Объект.Контрагент = Параметры.Контрагент;
            Объект.Основание = Параметры.ДокументЭтапа;//здесь Объект.Основание - это реквизит с типом "ДокументСсылка", а Параметры.ДокументЭтапа это параметр при открытии формы с типом ДокументСсылка.Договор
КонецЕсли;
КонецЕсли;
КонецПроцедуры
21 Мимохожий Однако
 
31.03.16
07:32
(20)А Объект здесь что?
22 mishula2005
 
31.03.16
07:40
(21) ДокументОбъект, который создается. Я заполняю его реквизиты при создании.
23 Мимохожий Однако
 
31.03.16
07:42
(22)ИМХО, заблуждаешься. Посмотри отладчиком и удивишься.
24 Рэйв
 
31.03.16
07:44
(0)
Ссыль=Документы.ТребованиеНакладная.НайтиПоНомеру("0000001");
Если Ссыль.Пустая() Тогда
    Сообщить("А не нашли!");
Иначе
    Объект.Документ
КонецЕсли;

//-------
и да....
про второй параметр НайтиПоНомеру в СП поинтересуйся.
25 Рэйв
 
31.03.16
07:45
*Объект.Документ=Ссыль;
26 ЧеловекДуши
 
31.03.16
07:55
(0) >>> При программном создании документа записываю

Каком создании??!!!

ПриСозданииНаСервере() - находится в форме.

Запусти наконец отладчик :)
27 hhhh
 
31.03.16
07:58
(24) выяснили же, это было образное выражение, на самом деле нет там вообще НайтиПоНомеру
28 mishula2005
 
31.03.16
08:15
В отладчике выявила что Объект.Основание имеет тип НЕОПРЕДЕЛЕНО (
29 Мимохожий Однако
 
31.03.16
08:16
(28)Т.е. типом документОбъект даже и не пахнет
30 mishula2005
 
31.03.16
08:20
(29) угу(((

а выход какой тогда есть?
31 George Wheels
 
31.03.16
08:36
(30) ОбработкаЗаполнения
32 Мимохожий Однако
 
31.03.16
08:55
(30)Да.
33 mishula2005
 
31.03.16
09:09
Спасибо всем! буду разбираться!