Имя: Пароль:
1C
1C 7.7
v7: Запрос по документу и его реквизиту
0 Бамагите
 
26.04.16
12:20
Всем привет, имеется вот такой запрос

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

он работает, но не так как хотелось бы.
1. Дело в том что Заявка покупателя - это реквизит документа Расходная накладная и в запросе хочется работать именно с реквизитом, а не оперировать всеми заявками. Если работать через РасходняНакладная. Заявка то неправильно считаются суммы заявок в группировках.
2. Если первый пункт никак, то помогите добавить в запрос условие типа ПустоеЗначение( ТекДок.Заявка ) = 0, чтобы накладные без заявок не обрабатывались. При такой конструкции ПустоеЗначение( ТекДок.Заявка ) я получаю ошибку что поле агрегатное объекта Заявка не обнаружено.
1 Slypower
 
27.04.16
16:07
Чет я не аонял. Ели Заявка - это реквизит, то почему не работать:
Документ.РасходнаяНакладная.ЗаявкаПокупателя.ТекущийДокумент;
или
Документ.РасходнаяНакладная.ЗаявкаПокупателя.Всего;
Только вот точнее бы инфу
2 Масянька
 
27.04.16
16:11
(0) Заявка случайно не документ-основание?
3 Slypower
 
27.04.16
16:17
(2) Так же подумал, но он говорит Заявка - реквизит
4 Бамагите
 
28.04.16
03:36
(1)
|Фирма                 = Документ.РасходнаяНакладная.Фирма, Документ.РасходнаяНакладная.Заявка.Фирма;
    |Контрагент           = Документ.РасходнаяНакладная.Контрагент, Документ.РасходнаяНакладная.Заявка.Контрагент;
    |Представитель        = Документ.РасходнаяНакладная.Представитель, Документ.РасходнаяНакладная.Заявка.Представитель;
    |Подразделение        = Документ.РасходнаяНакладная.Отдел, Документ.РасходнаяНакладная.Заявка.Отдел;
    |Адрес                = Документ.РасходнаяНакладная.Адрес, Документ.РасходнаяНакладная.Заявка.Адрес;
    |Номенклатура         = Документ.РасходнаяНакладная.Номенклатура, Документ.РасходнаяНакладная.Заявка.Номенклатура;
    |Родитель               = Документ.РасходнаяНакладная.Номенклатура.Родитель, Документ.РасходнаяНакладная.Заявка.Номенклатура.Родитель;
    |СумЗаявлено          = Документ.РасходнаяНакладная.Заявка.Всего;
    |СумОтгружено         = Документ.РасходнаяНакладная.Всего;
    |ТекДок               = Документ.РасходнаяНакладная.ТекущийДокумент;
    |Заявка                  = Документ.РасходнаяНакладная.Заявка;
    |
    |Функция ВсегоЗаявлено  = Сумма( СумЗаявлено );
    |Функция ВсегоОтгружено = Сумма( СумОтгружено );
    |Функция Недогруз       = Сумма( СумЗаявлено - СумОтгружено );

в таком случае запрос в ВсегоЗаявлено пихает всю сумму заявки, а у меня ведь группировки по товарам, на это запрос не смотрит почемуто...

(2)(3) Заявка это реквизит, но Расходная при этом вводится на основании Заявки

|Фирма                 = Документ.РасходнаяНакладная.Фирма, Документ.ЗаявкаПокупателя.Фирма;
    |Контрагент           = Документ.РасходнаяНакладная.Контрагент, Документ.ЗаявкаПокупателя.Контрагент;
    |Представитель        = Документ.РасходнаяНакладная.Представитель, Документ.ЗаявкаПокупателя.Представитель;
    |Подразделение        = Документ.РасходнаяНакладная.Отдел, Документ.ЗаявкаПокупателя.Отдел;
    |Адрес                = Документ.РасходнаяНакладная.Адрес, Документ.ЗаявкаПокупателя.Адрес;
    |Номенклатура         = Документ.РасходнаяНакладная.Номенклатура, Документ.ЗаявкаПокупателя.Номенклатура;
    |Родитель               = Документ.РасходнаяНакладная.Номенклатура.Родитель, Документ.ЗаявкаПокупателя.Номенклатура.Родитель;
    |Сум                  = Документ.РасходнаяНакладная.Всего, Документ.ЗаявкаПокупателя.Всего;
    |ТекДок               = Документ.РасходнаяНакладная.ТекущийДокумент, Документ.ЗаявкаПокупателя.ТекущийДокумент;
    |
    |Функция ВсегоЗаявлено  = Сумма( Сум ) Когда ( ТекДок.Вид() = ""ЗаявкаПокупателя"" );
    |Функция ВсегоОтгружено = Сумма( Сум ) Когда ( ТекДок.Вид() = ""РасходнаяНакладная"" );

при таком запросе у меня все цифры верные по группировкам, но в запрос попадают Расходные без заявок, а меня это не устраивает. Мне нужно уже в запросе их отсечь
5 Slypower
 
28.04.16
16:09
Условие (ПустоеЗначение(ТекДок.РасходнаяНакладная.Заявка)<>1)