Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

ПолучитьДокумент на основании регистра

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

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


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

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

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

ссылка, это текущий заказПокупателя
   hhhh
 
9 - 17.04.19 - 13:23
(8) наверно так
МояОхренительнаяВыборка = Запрос.Выполнить().Выбрать(); 

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

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

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

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