Имя: Пароль:
1C
1С v8
ПолучитьДокумент на основании регистра
, ,
0 rapashocker
 
17.04.19
12:53
Привет всем, есть задача в проверку ввести ссылку на документ основания, но вот в чем дело, документ основания ЗаказаПокупателей это заказ EDI, единственно чем они связаны это значением из Регистра сведений, то есть значение подставляется автоматически из обработки и единственное где оно гуляет, это в регистре, как это связать не пойму
Смотрите, ЗаказПокупателя создается на основании заказаEDI обработкой, они никак не связаны, единственное чем связаны это вот этим значением из регистра, так как получить ссылку на текущий заказ покупателя и его заказEDI через это значение регистра.
Значение есть и в ЗаказеПокупателя, как свойство и в EDiЗаказе, в реквизите.

написал код но он ничего не выводит, пытался связать как то данные из регистра с данными и ссылкой заказаEDI
Процедура ПолучитьЗаказEDI(ЗаказEDI)
ЗаказEDI = Документы.ЗаказEDI.ПолучитьСсылку();
Запрос = Новый Запрос();
Запрос.Текст = "ВЫБРАТЬ
|    ЗаказEDI.Ссылка КАК Ссылка,
|    ЗначенияСвойствОбъектов.Объект,
|    ЗначенияСвойствОбъектов.Свойство,
|    ЗначенияСвойствОбъектов.Значение
|ИЗ
|    Документ.ЗаказEDI КАК ЗаказEDI,
|    РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
|ГДЕ
|    ЗаказEDI.Ссылка = &ЗаказEDI
|    И ЗначенияСвойствОбъектов.Свойство = &Свойство
|    И ЗначенияСвойствОбъектов.Значение = &Значение
|    И ЗначенияСвойствОбъектов.Объект = &ТекущийЗаказ";


Запрос.УстановитьПараметр("ЗаказEDI",ЗаказEDI.Ссылка);
Запрос.УстановитьПараметр("Свойство",планывидовхарактеристик.СвойстваОбъектов.НайтиПоНаименованию("НомерЗаказаМетро"));
Запрос.УстановитьПараметр("Значение",СОКРЛП(ЗаказEDI.НомерВСистемеПокупателя));
Запрос.УстановитьПараметр("ТекущийЗаказ",Ссылка);

ЗаказEDI = Запрос.Выполнить().Выбрать();

не подскажите примером как это сделать?
1 catena
 
17.04.19
13:01
В этом коде нет вывода, чтобы он что-то выводил.
Зачем выбирать из документа ссылку запросом, если документ уже есть и на выборку свойств в запросе никак не влияет?
Запрос в консоли проверен?
2 rapashocker
 
17.04.19
13:04
В консоле пустые значения,он ничего не выводит, да и здесь у меня стоит так : Выборка = Запрос.Выполнить().Выбрать();
3 rapashocker
 
17.04.19
13:05
Не понятно как связать это значение из регистра с текущим заказом покупателя и получить еще ссылку заказа EDI,основываясь только на этом значении
4 catena
 
17.04.19
13:12
(2)Выбрать() - это создание выборки. Ее еще перебрать надо.
(3)Возьми ручку и нарисуй, как они связаны, потому что объяснить у тебя пока не получилось.
5 catena
 
17.04.19
13:13
ЗаказEDI.Ссылка - это разве не ссылка заказа EDI?
6 stepan73
 
17.04.19
13:17
(0) Запрос.УстановитьПараметр("ТекущийЗаказ",Ссылка);
Ссылка - это что?
7 rapashocker
 
17.04.19
13:18
нет это не ссылка, он создает не на основании ссылки заказа, а на основании значения реквизита НомерВсистемеПокупателя, который пишется в ргистр и затем пишется в свойства ЗаказаПокупателя
8 rapashocker
 
17.04.19
13:18
(0) Запрос.УстановитьПараметр("ТекущийЗаказ",Ссылка);

ссылка, это текущий заказПокупателя
9 hhhh
 
17.04.19
13:23
(8) наверно так

МояОхренительнаяВыборка = Запрос.Выполнить().Выбрать();

а то слово ЗаказEDI у вас уже занято.
10 catena
 
17.04.19
13:25
(7)Чего? Набор слов.
ЗаказEDI.Ссылка - что это? Какой тип? Какое значение? Если пустое и именно туда хочешь пихнуть, то нафига в запросе: ЗаказEDI.Ссылка = &ЗаказEDI ? Ищем пустой документ?
11 stepan73
 
17.04.19
13:25
(8) думаешь поможет?
(0) у тебя в логике какая-то ошибка, с EDI вообще полная муть написана
12 stepan73
 
17.04.19
13:28
(10) он второй строчкой получает ссылку нового документа EDI, а вот потом таки "набор слов" :)
13 catena
 
17.04.19
13:38
(12)А, ну да. Эту строчку я не заметила. Ну тогда тем более.
14 rapashocker
 
17.04.19
17:10
Да сглупил,вот запрос Запрос = Новый Запрос();
Запрос.Текст = "ВЫБРАТЬ
               |    ЗаказEDI.Ссылка КАК СсылкаНаЗаказEDI,
               |    ЗначенияСвойствОбъектов.Объект,
               |    ЗначенияСвойствОбъектов.Свойство,
               |    ЗначенияСвойствОбъектов.Значение,
               |    ЗаказEDI.НомерВСистемеПокупателя
               |ИЗ
               |    Документ.ЗаказEDI КАК ЗаказEDI,
               |    РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
               |ГДЕ
               |    ЗначенияСвойствОбъектов.Свойство = &Свойство
               |    И ЗначенияСвойствОбъектов.Объект = &ТекущийЗаказ
               |    И ЗначенияСвойствОбъектов.Значение = ЗаказEDI.НомерВСистемеПокупателя";
              

Запрос.УстановитьПараметр("Свойство",планывидовхарактеристик.СвойстваОбъектов.НайтиПоНаименованию("НомерЗаказаМетро"));
Запрос.УстановитьПараметр("ТекущийЗаказ",Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
СсылкаНаЗаказEDI = Выборка.ссылка;
КонецЦикла;
15 1Сергей
 
17.04.19
17:13
(14) кошмар. в выборку попадут все Заказы ЕДИ
16 rapashocker
 
17.04.19
17:16
простите вот так
Запрос = Новый Запрос();
Запрос.Текст = "ВЫБРАТЬ
               |    ЗаказEDI.Ссылка КАК СсылкаНаЗаказEDI,
               |    ЗначенияСвойствОбъектов.Объект,
               |    ЗначенияСвойствОбъектов.Свойство,
               |    ЗначенияСвойствОбъектов.Значение,
               |    ЗаказEDI.НомерВСистемеПокупателя
               |ИЗ
               |    Документ.ЗаказEDI КАК ЗаказEDI,
               |    РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
               |ГДЕ
               |    ЗначенияСвойствОбъектов.Свойство = &Свойство
               |    И ЗначенияСвойствОбъектов.Объект = &ТекущийЗаказ
               |    И ЗначенияСвойствОбъектов.Значение = ЗаказEDI.НомерВСистемеПокупателя";
              

Запрос.УстановитьПараметр("Свойство",планывидовхарактеристик.СвойстваОбъектов.НайтиПоНаименованию("НомерЗаказаМетро"));
Запрос.УстановитьПараметр("ТекущийЗаказ",Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
СсылкаНаEDI = Выборка.СсылкаНаЗаказEDI;
КонецЦикла;
17 rapashocker
 
17.04.19
17:17
не все, только 1
18 rapashocker
 
17.04.19
17:24
Оказывается большая часть параметров и вовсе не нужны, спасибо за помощь))
19 rapashocker
 
17.04.19
17:26
спасибо что раскритиковали мой бестолковый запрос))