Вход | Регистрация

1С:Предприятие ::

Метки:Запросы и построители

Помогите с запросом! Реквизиты табл. части.

Я
   Doni
08.03.04 - 14:23
Проблема такая: Делаю запрос по документу "Докум" у которого есть документ-основание, не получается обратиться к реквизитам документа-основания "Дата","Сумма"(реквизиты табл. части). Доступ к реквизитам
табл. части документа-основания возможен только к
реквизитам типа "Число"(и то, если стоит галка "Итог по колонке"), а если другой тип, то никак.

Как же быть?
 
  Рекламное место пустует
   skunk
 
1 - 08.03.04 - 15:10
ТекстЗапроса = "
|.......
|Док = ЧегоТоТам.Документ;
|.......
|Группировка Док;
|.......
|";

Запрос.Выполнить(ТекстЗапроса);
Пока Запрос.Группировка("Док") = 1 Цикл
  ДокОсн = Запрос.Док.ДокОснование;
 //Дальше с ДокОсн работаешь як с обычным CreateObject("Document");

КонецЦикла;
   Doni
2 - 08.03.04 - 15:20
В таком случае можно обойтись обычным перебором.
   skunk
 
3 - 08.03.04 - 15:25
тогда покажи где и чего у тебя не катиться, а то с утра похмелье... ;-)
   skunk
 
4 - 08.03.04 - 15:26
или вкраце чего дано и что надо получить
   Doni
5 - 08.03.04 - 15:35
В табличной части документа-основания две колонки "Дата оплаты" и "Сумма".
Нужно суммировать только те числа (рекв. "Сумма") у которых дата (рекв. "Дата оплаты") входит в период запроса.
   skunk
 
6 - 08.03.04 - 15:38
энто бухия или торговля
   Doni
7 - 08.03.04 - 15:47
Бухия. А какая разница все равно эти два документа без проводок.
   skunk
 
8 - 08.03.04 - 16:11
млин бухии дома нет абы проверить можно было... на попробуй с этим

ТекстЗапроса = "
|Период с ВыбНачПериода по ВыбКонПериода;
|РеализацияРозница = Документ.РеализацияРозница.ТекущийДокумент;
|ЗаявкаПокупателя = Документ.ЗаявкаПокупателя.ТекущийДокумент;
|ДокОснование = Документ.РеализацияРозница.ДокОснование;
|Номенклатура = Документ.ЗаявкаПокупателя.Номенклатура;
|Сумма = Документ.ЗаявкаПокупателя.Сумма;
|Функция СуммаСумма = Сумма(Сумма);
|Группировка ДокОснование;
|Группировка Номенклатура;
|Условие(ДокОснование в ЗаявкаПокупателя);
|Условие(Номенклатура = ВыбНоменклатура);
|";
   327
9 - 08.03.04 - 18:50
если без проверок на все грабли .... то примерно так

Док.выбратьНужныеДокументы....
пока Док.получитьДокумент ....
    Если Док.ДокОснование.выбран <> 1 тогда продолжить конец
    Если Док.ДокОснование.вид <> НужныйВид тогда продолжить конец
    ДО = Док.ДокОснование;
    Если ДО.количествоСтрок = 0 тогда продолжить.. Конец
    До.выбратьстроки
    пока ДО.Получить строку цикла
        если ДО.ДАТА < НужнаяДатаМин тогда Продолжить ...
        если ДО.ДАТА > НужнаяДатаМах тогда Продолжить ...
        СуммаЧегоНужно=СуммаЧегоНужно + ДО.Сумма
        ....
        ....
        ....
всякие концы еслев
всякие концы циклей


Мля!! Только сейчас сообразил, в чем может быть пинок. проверь - Реквизит табличной части точно имеет наименование ДАТА.... Если это так - попробуй заменить наименование на ДатаХХХ....

Использование в качестве имен служебных идентификаторов иногда приводит к слетанию крыши у интертрепатора .....
   skunk
 
10 - 08.03.04 - 19:12
(9)пинок не в этом, хотят запросом... перебор не катит смотри (2)
 
 


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