Имя: Пароль:
1C
1С v8
v8: Помогите разобраться со ссылками
0 Злобная Печенька
 
13.07.12
08:30
делаю внешнюю печатную форму. все вроде бы получилось, но с ссылками проблема.
ЗапросОС=Новый Запрос();
   ЗапросОС.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.СсылкаНаОбъект.Ссылка);
   ЗапросОС.УстановитьПараметр("Событие",     Перечисления.СостоянияОС.ПринятоКУчету);
           ЗапросОС.Текст= "ВЫБРАТЬ РАЗРЕШЕННЫЕ
   |    ОС_ВнутреннееПеремещение.Номер КАК НомерДок,
   |    ОС_ВнутреннееПеремещение.Дата КАК пДата,
   |    ОС_ВнутреннееПеремещение.Учреждение,
   |    ОС_ВнутреннееПеремещение.Учреждение.НаименованиеПолное КАК пНаименованиеОрганизации,
   |    ОС_ВнутреннееПеремещение.Учреждение.КодОКПО КАК пКодОКПО,
   |    ОС_ВнутреннееПеремещение.ЦМООтправитель.Подразделение КАК пПодразделениеОтправитель,
   |    ОС_ВнутреннееПеремещение.ЦМООтправитель.Подразделение.Код КАК пКодКСП,
   |    ОС_ВнутреннееПеремещение.ЦМОПолучатель.Подразделение КАК пПодразделениеПолучатель,
   |    ОС_ВнутреннееПеремещение.ЦМОПолучатель.Сотрудник КАК пМОЛПолучатель,
   |    ОС_ВнутреннееПеремещение.ЦМОПолучатель.Сотрудник.Код КАК ТабНомМОЛ,
   |    ОС_ВнутреннееПеремещение.ЦМООтправитель.Сотрудник КАК пМОЛОтправитель,
   |    ОС_ВнутреннееПеремещение.ЦМООтправитель.Сотрудник.Код КАК ТабНомМОЛсдал,
   |    ОС_ВнутреннееПеремещение.ОсновныеСредства.(
   |        НомерСтроки КАК Ном,
   |        ОС КАК пОС,
   |        ВЫБОР
   |            КОГДА ОС_ВнутреннееПеремещение.ОсновныеСредства.ОС.НаименованиеПолное = """"
   |                ТОГДА ОС_ВнутреннееПеремещение.ОсновныеСредства.ОС.Наименование
   |            ИНАЧЕ ОС_ВнутреннееПеремещение.ОсновныеСредства.ОС.НаименованиеПолное
   |        КОНЕЦ КАК НаимОС,
   |        ИнвНомер КАК ИнвНомер,
   |        Количество КАК КоличествоПеремещения,
   |        Сумма КАК СуммаПеремещения,
   |        Цена КАК Цена,
   |        ОС.ДатаВыпуска КАК ДатаВыпуска
   |    )
   |ИЗ
   |    Документ.ОС_ВнутреннееПеремещение КАК ОС_ВнутреннееПеремещение
   |ГДЕ
   |    ОС_ВнутреннееПеремещение.Ссылка = &ТекущийДокумент
   |
   |УПОРЯДОЧИТЬ ПО
   |    НомерДок,
   |    Ном";


такой код выводит на печать самый первый документ списка, вне зависимости, какой документ был открыт. что может быть не так?
1 andrewks
 
13.07.12
08:33
а нафига так сложно:  ЭтотОбъект.СсылкаНаОбъект.Ссылка?

проверь, что у тебя в СсылкаНаОбъект
2 Trier
 
13.07.12
08:35
ну очевидно проблема а ЭтотОбъект.СсылкаНаОбъект.Ссылка

+ зачем нужно ЗапросОС.УстановитьПараметр("Событие",     Перечисления.СостоянияОС.ПринятоКУчету), если этот параметр нигде не используется?
3 aleks-id
 
13.07.12
08:35
правильно пишется "со ссылками"
4 Злобная Печенька
 
13.07.12
08:36
(3) спсибо, заметила поздно уже
5 Злобная Печенька
 
13.07.12
08:37
(1)ссылка на объект- реквизит внешней обработки- ДокументСсылка.ОС_ВнутреннееПеремещение
6 andrewks
 
13.07.12
08:38
(5) и нафига от ссылки брать ссылку?
7 Злобная Печенька
 
13.07.12
08:41
(6)если писать просто - ЗапросОС.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.СсылкаНаОбъект);
плюется ошибкой "Значение не является значением объектного типа (Выбрать)"
8 izekia
 
13.07.12
08:45
а что никто фотку не просит?
9 izekia
 
13.07.12
08:46
(6) может там поле типа Объект?
10 andrewks
 
13.07.12
08:47
(9) да вот и я ничё понять не могу - в (5) она говорит, что ссылка, а по коду выходит, что объект
11 izekia
 
13.07.12
08:48
(10) а ты ее фотку видел?
12 andrewks
 
13.07.12
08:50
(11) нет, но я видел слёзы в её глазах :)
13 izekia
 
13.07.12
08:51
(12) слезы не настоящие, а нарисованные
14 Злобная Печенька
 
13.07.12
08:54
(10)Заменила тип ссылкаНаОбъект на ДокументОбъект.ОС_ВнутреннееПеремещение теперь ругается на  Ошибка при вызове метода контекста (Выполнить): {(31, 34)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.
ОС_ВнутреннееПеремещение.Ссылка <<?>>= &ТекущийДокумент
15 andrewks
 
13.07.12
08:57
(14) если заменила на объект, тогда надо СсылкаНаОбъект.Ссылка.
16 Злобная Печенька
 
13.07.12
08:57
(15)понятно, пробую. Спасибо
17 Злобная Печенька
 
13.07.12
08:58
(13)фото будет)
18 Злобная Печенька
 
13.07.12
09:00
не получилось((( опять "Значение не является значением объектного типа (Выбрать)"
19 izekia
 
13.07.12
09:01
(18) код последний покажи весь
20 andrewks
 
13.07.12
09:01
где у тебя Выбрать-то?  давай полный код
21 Злобная Печенька
 
13.07.12
09:03
ТабДокумент   = Новый ТабличныйДокумент;
   //ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ВнутреннееПеремещение_ОС2";
   ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
   ЗапросОС=Новый Запрос();
   ЗапросОС.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.СсылкаНаОбъект.ссылка);
   //ЗапросОС.УстановитьПараметр("Событие",     Перечисления.СостоянияОС.ПринятоКУчету);
           ЗапросОС.Текст= "ВЫБРАТЬ РАЗРЕШЕННЫЕ
   |    ОС_ВнутреннееПеремещение.Номер КАК НомерДок,
   |    ОС_ВнутреннееПеремещение.Дата КАК пДата,
   |    ОС_ВнутреннееПеремещение.Учреждение,
   |    ОС_ВнутреннееПеремещение.Учреждение.НаименованиеПолное КАК пНаименованиеОрганизации,
   |    ОС_ВнутреннееПеремещение.Учреждение.КодОКПО КАК пКодОКПО,
   |    ОС_ВнутреннееПеремещение.ЦМООтправитель.Подразделение КАК пПодразделениеОтправитель,
   |    ОС_ВнутреннееПеремещение.ЦМООтправитель.Подразделение.Код КАК пКодКСП,
   |    ОС_ВнутреннееПеремещение.ЦМОПолучатель.Подразделение КАК пПодразделениеПолучатель,
   |    ОС_ВнутреннееПеремещение.ЦМОПолучатель.Сотрудник КАК пМОЛПолучатель,
   |    ОС_ВнутреннееПеремещение.ЦМОПолучатель.Сотрудник.Код КАК ТабНомМОЛ,
   |    ОС_ВнутреннееПеремещение.ЦМООтправитель.Сотрудник КАК пМОЛОтправитель,
   |    ОС_ВнутреннееПеремещение.ЦМООтправитель.Сотрудник.Код КАК ТабНомМОЛсдал,
   |    ОС_ВнутреннееПеремещение.ОсновныеСредства.(
   |        НомерСтроки КАК Ном,
   |        ОС КАК пОС,
   |        ВЫБОР
   |            КОГДА ОС_ВнутреннееПеремещение.ОсновныеСредства.ОС.НаименованиеПолное = """"
   |                ТОГДА ОС_ВнутреннееПеремещение.ОсновныеСредства.ОС.Наименование
   |            ИНАЧЕ ОС_ВнутреннееПеремещение.ОсновныеСредства.ОС.НаименованиеПолное
   |        КОНЕЦ КАК НаимОС,
   |        ИнвНомер КАК ИнвНомер,
   |        Количество КАК КоличествоПеремещения,
   |        Сумма КАК СуммаПеремещения,
   |        Цена КАК Цена,
   |        ОС.ДатаВыпуска КАК ДатаВыпуска
   |    )
   |ИЗ
   |    Документ.ОС_ВнутреннееПеремещение КАК ОС_ВнутреннееПеремещение
   |ГДЕ
   |    ОС_ВнутреннееПеремещение.Ссылка = &ТекущийДокумент
   |
   |УПОРЯДОЧИТЬ ПО
   |    НомерДок,
   |    Ном";

       Выборка = ЗапросОС.Выполнить().Выбрать();
пДата = Выборка.пДата;
   Выборка.Следующий();
 
       Макет = ПолучитьМакет("ОС_2");
22 izekia
 
13.07.12
09:08
на этом коде ругается на выбрать?
23 andrewks
 
13.07.12
09:10
хммм...

Рез = ЗапросОС.Выполнить();
Сообщить(ТипЗнч(Рез));

что выдаёт?
24 Serg_1960
 
13.07.12
09:20
Это что за извращение такое - ситывать данные до позицирования?

Выборка = ЗапросОС.Выполнить().Выбрать();
Выборка.Следующий();
пДата = Выборка.пДата;
25 izekia
 
13.07.12
09:29
(24) ты о чем?
26 izekia
 
13.07.12
09:44
вот так всегда, ни фото ни автора
27 Serg_1960
 
13.07.12
09:44
(25) См.(21) Две предпоследние строки. Порядок.
28 izekia
 
13.07.12
09:54
и что?
строка предпоследняя, кстати, одна всего)
29 Deniskind
 
13.07.12
10:09
(28) в (21) сначала идет пДата = Выборка.пДата; а уже только потом Выборка.Следующий(); А в (24) предложен правильный прядок :)
30 andrewks
 
13.07.12
10:11
(27) а, ну это понятно. просто у неё до туда выполнение даже не доходит
31 izekia
 
13.07.12
10:13
(29) ))) а я на (24) смотрел и понять не мог)
32 Deniskind
 
13.07.12
10:13
Если предположить, что в (18) содержание ошибки указано не точно (Вместо "Значение не является значением объектного типа (Выбрать)" было "Значение не является значением объектного типа (Выборка)"), то очень велика вероятность именно этой ошибки.
33 Злобная Печенька
 
13.07.12
11:19
(32)ошибку копировала...
34 Злобная Печенька
 
13.07.12
11:20
(23) результат - пустая строка
35 Злобная Печенька
 
13.07.12
11:21
+(34) если ссылки убрать вообще- формирует, но только первый документ списка
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.