![]() |
![]() |
![]() |
|
запрос по двум регистрам | ☑ | ||
---|---|---|---|---|
0
Valera
20.10.04
✎
00:27
|
юди помогите! Не могу понять как работает запрос по двум регистрам. Он вообщем-то работает, но как-то коряво.
ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с ВыбНачПериода по ВыбКонПериода; |Поставщик = Регистр.Расчеты.Контрагент,Регистр.Продажи.Контрагент; |Товар = Регистр.Расчеты.Товар,Регистр.Продажи.Товар; |ОстатокТовара = Регистр.Расчеты.ОстатокТовара; |СуммаДолга = Регистр.Расчеты.СуммаДолга; |СуммаРасчета = Регистр.Расчеты.СуммаРасчета; |ОстатокПродажи = Регистр.Продажи.ОстатокТовара; |ПродСтоимость = Регистр.Продажи.ПродСтоимость; |Функция Продажа = Расход(ПродСтоимость); |Функция Приход = Приход(ОстатокТовара); |Функция ДолгПоставщику = Приход(СуммаДолга); |Функция Остаток = Расход(ОстатокТовара); |Функция Расчет = Расход(СуммаРасчета); |Функция ОстатокП = Расход(ОстатокПродажи); |Условие (Поставщик = ВыбПост); |Группировка Товар Упорядочить по Товар.Наименование, Товар.Размер, Товар.УчетнаяЦена, Товар.Завод, Товар.Артикул; |"//}}ЗАПРОС Если есть движения расхода по регистру Расчеты т.е. Запрос.Остаток, то вышибает Запрос.Приход, короче движения есть, но = 0. Кто чем может помочь? |
|||
1
Морозов Александр
20.10.04
✎
05:53
|
Да вроде все правильно... Единственное 1С не рекомендует называть свои функции зарезервированными словами :|Функция Приход = Приход(ОстатокТовара);
^^^^ ^^^^ |
|||
2
Gorr
20.10.04
✎
11:28
|
Использование нескольких источников в запросе неверно. Чтобы все работало корректно, источник должен быть один. Делай два запроса, используй метод Получить для пересечения.
|
|||
3
AlexMan
20.10.04
✎
11:33
|
(2) А авторы книги "Описалово языка" часть 2 так не считают.....
|
|||
4
Gorr
20.10.04
✎
12:11
|
(3)
1 попробуй!!! 2.такая вещь может и пройдет (в зависимости от контекста): Поставщик = Регистр.Расчеты.Контрагент,Регистр.Продажи.Контрагент; 3.но такая нет: СуммаРасчета = Регистр.Расчеты.СуммаРасчета; ОстатокПродажи = Регистр.Продажи.ОстатокТовара; Ну и для полноты счастья может примеры работающих запросов с несколькими источниками по регистрам приведешь? |
|||
5
AlexMan
20.10.04
✎
12:18
|
(4) Описало языка часть 2 стр 802.
|
|||
6
Gorr
20.10.04
✎
13:10
|
(5) нет у меня этой страницы:)
|
|||
7
AlexMan
20.10.04
✎
13:15
|
(6) Заставь твоего работодателя купить лицензионную прогу тогда будет такая страница.
|
|||
8
AlexP
20.10.04
✎
13:44
|
(6) Синтаксис-Помощник/Встроенный язык/Запрос/Язык запросов/Внутренние переменные запроса.
|
|||
9
Gorr
21.10.04
✎
18:29
|
(8) это где там такое говориться что по нескольким регистрам запрос делать можно?
примерчик запроса в студию!!! все с удовольствуем и посмотрим:)) |
|||
10
Valera
21.10.04
✎
20:47
|
Вобщем-то говориться про объявление внутренней переменной, я то так и делал, как написано, т.е.
Поставщик = Регистр.Расчеты.Контрагент,Регистр.Продажи.Контрагент; Товар = Регистр.Расчеты.Товар,Регистр.Продажи.Товар; Говорится про это. Но это все не то. Коряво все это работает. Кстати про два запроса и использование метода Получить. Напиши примерчик небольшой, а то я не могу врубиться как это написать. |
|||
11
vikking
22.10.04
✎
12:10
|
Вот пример реально работающего запроса по нескольким регистрам (взаиморасчеты)
Запрос = СоздатьОбъект("Запрос"); ТЗ = "//{{ЗАПРОС(Взаиморасчеты) |Период с ДатаНач по ДатаКон; |Контрагент = Регистр.ДолгиПок.Контрагент, Регистр.ДолгиПост.Контрагент; |Валюта = Регистр.ДолгиПок.Валюта, Регистр.ДолгиПост.Валюта; |КредДок = Регистр.ДолгиПок.КредДокумент,Регистр.ДолгиПост.КредДокумент; | |ДолгПост = Регистр.ДолгиПост.Долг; |Функция ДолгПостНачОст = НачОст(ДолгПост); |Функция ДолгПостПриход = Приход(ДолгПост); |Функция ДолгПостРасход = Расход(ДолгПост); |Функция ДолгПостКонОст = КонОст(ДолгПост); | |ДолгПок = Регистр.ДолгиПок.Долг; |Функция ДолгПокНачОст = НачОст(ДолгПок); |Функция ДолгПокПриход = Приход(ДолгПок); |Функция ДолгПокРасход = Расход(ДолгПок); |Функция ДолгПокКонОст = КонОст(ДолгПок); | |Группировка Контрагент без групп; |Группировка Валюта; |Группировка КредДок; | |Условие(Контрагент в ВыбКлиент); |Условие(Вал в Валюта); |"//}}ЗАПРОС ; |
|||
12
Дмитрий
22.10.04
✎
23:14
|
(0)
Думаю, если перед "Группировка Товар" поставить "Группировка Поставщик" все будет ОК. |
|||
13
Дмитрий
22.10.04
✎
23:15
|
(+12) Естественно, при выборке результатов нужно обе эти группировки обходить.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |