|
СписокЗначений в результате запроса | ☑ | ||
---|---|---|---|---|
0
Gill
26.05.22
✎
14:42
|
Привет всем!
Erp 2. Имеется простенький запрос к списку реализаций для выгрузки документов в ДиаДок. В документе реализации есть ссылка на несколько заказов покупателей (тип СписокЗначений). Вопрос: как получить этот самый список заказов? ВЫБРАТЬ РеализацияТоваровУслугДополнительныеРеквизиты.Ссылка КАК Ссылка, РеализацияТоваровУслугДополнительныеРеквизиты.НомерСтроки КАК НомерСтроки, РеализацияТоваровУслугДополнительныеРеквизиты.Свойство КАК Свойство, РеализацияТоваровУслугДополнительныеРеквизиты.Значение КАК Значение, РеализацияТоваровУслугДополнительныеРеквизиты.ТекстоваяСтрока КАК ТекстоваяСтрока, РеализацияТоваровУслугДополнительныеРеквизиты.Ссылка.Основание КАК Основание, РеализацияТоваровУслугДополнительныеРеквизиты.Ссылка.ЗаказКлиента КАК ЗаказКлиента ИЗ Документ.РеализацияТоваровУслуг.ДополнительныеРеквизиты КАК РеализацияТоваровУслугДополнительныеРеквизиты ГДЕ РеализацияТоваровУслугДополнительныеРеквизиты.Ссылка = &Ссылка И РеализацияТоваровУслугДополнительныеРеквизиты.Свойство = &Свойство |
|||
1
Ryzeman
26.05.22
✎
14:53
|
Не бывает реквизитов документа с типом СписокЗначений.
1) посмотри как на самом деле формируется эта строчка на форме и откуда берутся данные, оттуда и возьми. 2) ну или не парься и привяжи табличную часть Товары, возьми ЗаказКлиента оттуда, только не забудь правильно сгруппировать что б не получить 100500 одинаковых строк. |
|||
2
Gill
26.05.22
✎
15:23
|
(1) спасибо за наводку...А группировать правильнее по какому полю?
|
|||
3
Gill
26.05.22
✎
15:30
|
(1) все сделал....спасибо большое еще раз)
|
|||
4
Gill
10.06.22
✎
11:08
|
(1) Прошу подскзать, что не так соединяю в запросе, выдает результат только если заполнен ЗначениеДопРеквизитаРТУ в реализации, а мне надо только из заказа ЗначениеДопРеквизитаЗаказ считывать данные (т.е. независимо заполнен ли ЗначениеДопРеквизитаРТУ в документе Реализации)
ВЫБРАТЬ РеализацияТоваровУслугДополнительныеРеквизиты.Ссылка КАК Реализация, РеализацияТоваровУслугТовары.ЗаказКлиента КАК Заказ, ЗаказКлиентаДополнительныеРеквизиты.Значение КАК ЗначениеДопРеквизитаЗаказ, РеализацияТоваровУслугДополнительныеРеквизиты.Значение КАК ЗначениеДопРеквизитаРТУ ИЗ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.ДополнительныеРеквизиты КАК РеализацияТоваровУслугДополнительныеРеквизиты ПО (РеализацияТоваровУслугТовары.Ссылка = РеализацияТоваровУслугДополнительныеРеквизиты.Ссылка) ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента.ДополнительныеРеквизиты КАК ЗаказКлиентаДополнительныеРеквизиты ПО (РеализацияТоваровУслугТовары.ЗаказКлиента = ЗаказКлиентаДополнительныеРеквизиты.Ссылка) ГДЕ РеализацияТоваровУслугДополнительныеРеквизиты.Ссылка = &Ссылка И ЗаказКлиентаДополнительныеРеквизиты.Свойство = &ДопРеквизитИныеСведенияИзЗаказа |
|||
5
vicof
10.06.22
✎
11:16
|
Внутренее соединение делаешь вместо левого
|
|||
6
Gill
10.06.22
✎
11:18
|
(5) поясните, в запросе Левое же...
|
|||
7
vicof
10.06.22
✎
11:21
|
(6) А потом условие на правую таблицу, что превращает левое соединение во внутреннее
|
|||
8
Gill
10.06.22
✎
11:25
|
(7) не врубаюсь
|
|||
9
Gill
10.06.22
✎
11:26
|
что изменить в запросе?
|
|||
10
vicof
10.06.22
✎
11:30
|
(9) Перенести условие на правую таблицу в секцию условий соединения левой таблицы с правой.
|
|||
11
Ryzeman
10.06.22
✎
11:39
|
(8) У тебя
И ЗаказКлиентаДополнительныеРеквизиты.Свойство = &ДопРеквизитИныеСведенияИзЗаказа делает левое соединение внутренним. За основу (таблицу слева) берётся таблица РеализацияТоваровУслугТовары, к ней ты привязываешь ЗаказКлиентаДополнительныеРеквизиты, но поставив условие на весь запрос, ты отсекаешь значения полученных строк, которые не удовлетворяют условиям. То есть ты обрезаешь результат по правой таблице Что бы этого не происходило такие условия надо переносить в соединение. ПО (РеализацияТоваровУслугТовары.ЗаказКлиента = ЗаказКлиентаДополнительныеРеквизиты.Ссылка) И ЗаказКлиентаДополнительныеРеквизиты.Свойство = &ДопРеквизитИныеСведенияИзЗаказа |
|||
12
Gill
10.06.22
✎
11:48
|
Спасибо всем..:
|
|||
13
Gill
10.06.22
✎
13:10
|
(11) Исправил, но результат запроса пустой
ВЫБРАТЬ РеализацияТоваровУслугДополнительныеРеквизиты.Ссылка КАК Реализация, РеализацияТоваровУслугТовары.ЗаказКлиента КАК ссылка, РеализацияТоваровУслугТовары.ЗаказКлиента.Контрагент КАК ЗаказКлиентаКонтрагент, ЗаказКлиентаДополнительныеРеквизиты.Значение КАК Значение ИЗ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента.ДополнительныеРеквизиты КАК ЗаказКлиентаДополнительныеРеквизиты ПО (РеализацияТоваровУслугТовары.ЗаказКлиента = ЗаказКлиентаДополнительныеРеквизиты.Ссылка) И (ЗаказКлиентаДополнительныеРеквизиты.Свойство = &ДопРеквизитИныеСведенияИзЗаказа), Документ.РеализацияТоваровУслуг.ДополнительныеРеквизиты КАК РеализацияТоваровУслугДополнительныеРеквизиты ГДЕ РеализацияТоваровУслугДополнительныеРеквизиты.Ссылка = &Ссылка |
|||
14
Ryzeman
10.06.22
✎
13:12
|
ГДЕ
РеализацияТоваровУслугДополнительныеРеквизиты.Ссылка = &Ссылка а это что такое?) Подумай сам почему это не работает) |
|||
15
Gill
10.06.22
✎
13:13
|
(14) это условие на отбор конкретной реализации
|
|||
16
Ryzeman
10.06.22
✎
13:14
|
прочитай (11) и внимательно посмотри на условие :)
|
|||
17
1Сергей
10.06.22
✎
13:22
|
(13) в таком виде обращение к таблице Документ.РеализацияТоваровУслуг.ДополнительныеРеквизиты бессмысленно
|
|||
18
Мультук
гуру
10.06.22
✎
13:31
|
(13)
Слава богу что пустой, могло быть гораздо хуже Запрос пишется методом научного тыка? |
|||
19
Gill
10.06.22
✎
13:32
|
(18) можно без издевок)
|
|||
20
Ryzeman
10.06.22
✎
13:49
|
(19) Ладно, видимо ты действительно не понимаешь как работают соединения. Почитай.
Исходя из (0) тебе надо это ВЫБРАТЬ РеализацияТоваровУслугДополнительныеРеквизиты.Ссылка КАК Реализация, РеализацияТоваровУслугТовары.ЗаказКлиента КАК ссылка, РеализацияТоваровУслугТовары.ЗаказКлиента.Контрагент КАК ЗаказКлиентаКонтрагент, ЗаказКлиентаДополнительныеРеквизиты.Значение КАК Значение ИЗ Документ.РеализацияТоваровУслуг.ДополнительныеРеквизиты КАК РеализацияТоваровУслугДополнительныеРеквизиты ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары ПО РеализацияТоваровУслугТовары.Ссылка = РеализацияТоваровУслугДополнительныеРеквизиты.Ссылка ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента.ДополнительныеРеквизиты КАК ЗаказКлиентаДополнительныеРеквизиты ПО (РеализацияТоваровУслугТовары.ЗаказКлиента = ЗаказКлиентаДополнительныеРеквизиты.Ссылка) И (ЗаказКлиентаДополнительныеРеквизиты.Свойство = &ДопРеквизитИныеСведенияИзЗаказа), ГДЕ РеализацияТоваровУслугДополнительныеРеквизиты.Ссылка = &Ссылка |
|||
21
Ryzeman
10.06.22
✎
13:50
|
(20) но если в документе несколько строк, то у тебя тут будет адская мешанина из задвоенных данных, которые необходимо группировать.
|
|||
22
Мультук
гуру
10.06.22
✎
14:00
|
(0)
В документе реализации есть ссылка на несколько заказов покупателей (тип СписокЗначений). Вопрос: как получить этот самый список заказов? ВЫБРАТЬ РАЗЛИЧНЫЕ Док.ЗаказКлиента КАК ЗаказКлиента ИЗ Документ.РеализацияТоваровУслуг.Товары КАК док ГДЕ Док.Ссылка = &Ссылка и док.КодСтроки <> 0 P.S. Условие "и док.КодСтроки <> 0 " можно заменить на другую проверку на пустой заказ клиента, но лень лезть в ЕРП P.P.S. Что там хочет Диадок, зачем там доп.реквизиты и т.п. - я не знаю и знать не хочу. |
|||
23
Gill
10.06.22
✎
14:16
|
(20) вновь пустой результат(
|
|||
24
Gill
10.06.22
✎
14:26
|
||||
25
Ryzeman
10.06.22
✎
14:27
|
(23) Значит у тебя у этой реализации нету ни одного дополнительного реквизита. Ты в левой части то что хочешь получить? Базовая таблица какой должна быть?
|
|||
26
Gill
10.06.22
✎
14:33
|
(25) мне вот и нужно, чтобы попадало из допреквизита из заказа, при этом в реализации нет данных по допреквизитам.
В ДиадОк мы изначально берем счет-фактуру (док.основание у нее, реализация, а в реализации сидят несколько заказов с заполненными иными сведениями, которые мы собственно и должны в итоге загрузить в диадок) |
|||
27
Gill
10.06.22
✎
14:36
|
нужны вот такие сведения:
Реализация Заказ ИныеСведенияИзЗаказа Реализация товаров и услуг БЛ00-002225 от 09.06.2022 9:47:29 Заказ клиента БЛ00-001100 от 09.06.2022 0:00:00 Сопров.док-ты по накл.890 Реализация товаров и услуг БЛ00-002225 от 09.06.2022 9:47:29 Заказ клиента БЛ00-001101 от 13.04.2022 11:13:59 Нет данных от поставщика |
|||
28
Ryzeman
10.06.22
✎
14:42
|
ВЫБРАТЬ
РеализацияТоваровУслугТовары.Ссылка КАК Реализация, РеализацияТоваровУслугТовары.ЗаказКлиента КАК ссылка, РеализацияТоваровУслугТовары.ЗаказКлиента.Контрагент КАК ЗаказКлиентаКонтрагент, ЗаказКлиентаДополнительныеРеквизиты.Значение КАК Значение ИЗ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента.ДополнительныеРеквизиты КАК ЗаказКлиентаДополнительныеРеквизиты ПО (РеализацияТоваровУслугТовары.ЗаказКлиента = ЗаказКлиентаДополнительныеРеквизиты.Ссылка) И (ЗаказКлиентаДополнительныеРеквизиты.Свойство = &ДопРеквизитИныеСведенияИзЗаказа), ГДЕ РеализацияТоваровУслугТовары.Ссылка = &Ссылка |
|||
29
Gill
10.06.22
✎
14:44
|
(28)урааа!!! Большое спасибо
Мат.часть изучу.... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |