|   |   | 
| 
 | Запрос на подчиненный документ. | ☑ | ||
|---|---|---|---|---|
| 0
    
        antihacker 26.03.16✎ 14:23 | 
        Всем привет ! Есть документ заказ покупателя. 
 От туда вытаскиваю количество номенклатур ЗапросНомВЗаказе=Новый Запрос; ЗапросНомВЗаказе.Текст=" |ВЫБРАТЬ |СУММА(Номенклатуры.Количество) КАК СуммаКоличествоНоменклатуры |ИЗ |Документ.ЗаказПокупателя.Товары КАК Номенклатуры |ГДЕ | Номенклатуры.Ссылка.ПРОВЕДЕН=ИСТИНА И Номенклатуры.Ссылка.СкладГруппа=&Склад И Номенклатуры.Номенклатура=&Номенклатура И Номенклатуры.Ссылка.Дата>=&ДатаНачало И Номенклатуры.Ссылка.Дата<=&ДатаКонца | СГРУППИРОВАТЬ ПО Номенклатура"; ЗапросНомВЗаказе.УстановитьПараметр("Номенклатура",вхНоменклатура); ЗапросНомВЗаказе.УстановитьПараметр("Склад",вхСклад); ЗапросНомВЗаказе.УстановитьПараметр("ДатаНачало",НачалоДня(ТекущаяДата())); ЗапросНомВЗаказе.УстановитьПараметр("ДатаКонца",КонецДня(ТекущаяДата())); Рез=ЗапросНомВЗаказе.Выполнить().Выбрать(); Пока Рез.Следующий() Цикл сообщить(Рез.СуммаКоличествоНоменклатуры); КонецЦикла; Но как здесь переделать запрос, что бы он брал те заказы на которых нет реализации ? | |||
| 1
    
        Aleksandr N 26.03.16✎ 14:26 | 
        (0) В смысле? Что здесь есть реализация?     | |||
| 2
    
        antihacker 26.03.16✎ 14:28 | 
        Ну на основание заказа создают реализация товаров. Это и есть.     | |||
| 3
    
        antihacker 26.03.16✎ 14:35 | 
        Ну хотя бы заказы вообще без подчиненных документов...     | |||
| 4
    
        ДенисЧ 26.03.16✎ 14:35 | 
        левое соединение реализация
 по реализация.Заказ = номенклатуры.ссылка где реализация есть NULL | |||
| 5
    
        antihacker 26.03.16✎ 14:40 | 
        Левое соединение ?
 ЗапросНомВЗаказе.Текст=" |ВЫБРАТЬ |СУММА(Номенклатуры.Количество) КАК СуммаКоличествоНоменклатуры |ИЗ |Документ.ЗаказПокупателя.Товары КАК Номенклатуры |ГДЕ | Номенклатуры.Ссылка.ПРОВЕДЕН=ИСТИНА И Номенклатуры.Ссылка.СкладГруппа=&Склад И Номенклатуры.Номенклатура=&Номенклатура И Номенклатуры.Ссылка.Дата>=&ДатаНачало И Номенклатуры.Ссылка.Дата<=&ДатаКонца ИЗ (Номенклатуры.РеализацияТоваровИУслуг КАК РеализацияТоваровИУслуг Левое соединение Документ.РеализацияТоваровИУслуг как РеализацияТоваровИУслуг ЕСТЬ NULL) | СГРУППИРОВАТЬ ПО Номенклатура"; | |||
| 6
    
        antihacker 26.03.16✎ 14:40 | 
        Не работает     | |||
| 7
    
        ДенисЧ 26.03.16✎ 14:41 | 
        (6) Радуйся, что 1с не может вылезти из экрана и набить тебе морду за такой запрос...     | |||
| 8
    
        antihacker 26.03.16✎ 14:43 | 
        а как  ))) Не делал левое соединение на подчиненного     | |||
| 9
    
        antihacker 26.03.16✎ 14:43 | 
        никогда     | |||
| 10
    
        RomanYS 26.03.16✎ 14:44 | 
        (0) есть регистр заказы покупателей. Остатки по нему - то, что ещё не отгрузили.     | |||
| 11
    
        antihacker 26.03.16✎ 14:48 | 
        Это где тип регистратор должен быть заказ ?
 Как в запросе указать тип документа ? | |||
| 12
    
        RomanYS 26.03.16✎ 14:52 | 
        (11) если ты про (10), то там есть измерение "Заказ". Убери руки от конфигуратора, возьми отчет по заказам - там всё есть. В крайнем случае универсальный отчет по регистру.     | |||
| 13
    
        antihacker 26.03.16✎ 15:05 | 
        Делаю вот так
 ЗапросНомВЗаказе=Новый Запрос; ЗапросНомВЗаказе.Текст= "ВЫБРАТЬ | ТоварыНаЗаказах.Номенклатура КАК Номенклатура , | ТоварыНаЗаказах.КоличествоОстаток КАК КоличествоОстаток //| ТоварыНаЗаказах.Склад КАК Склад |ИЗ |РегистрНакопления.ЗаказыПокупателей.Остатки( | &ДатаКонца, //| Склад В (&выбСписСклады) | ) КАК ТоварыНаЗаказах | ГДЕ ТоварыНаЗаказах.ЗаказПокупателя.СкладГруппа = &выбСписСклады И ТоварыНаЗаказах.Номенклатура = &СписокНоменклатурТЗ И ТоварыНаЗаказах.ЗаказПокупателя.Дата>=&ДатаНачало И ТоварыНаЗаказах.ЗаказПокупателя.Дата<=&ДатаКонца"; ЗапросНомВЗаказе.УстановитьПараметр("СписокНоменклатурТЗ",вхНоменклатура); ЗапросНомВЗаказе.УстановитьПараметр("выбСписСклады",вхСклад); ЗапросНомВЗаказе.УстановитьПараметр("ДатаНачало",НачалоДня(ТекущаяДата())); ЗапросНомВЗаказе.УстановитьПараметр("ДатаКонца",КонецДня(ТекущаяДата())); Рез=ЗапросНомВЗаказе.Выполнить().Выбрать(); Пока Рез.Следующий() Цикл сообщить(Рез.КоличествоОстаток); КонецЦикла; Запрос пустой | |||
| 14
    
        ДенисЧ 26.03.16✎ 15:11 | 
        ТоварыНаЗаказах.Номенклатура = &СписокНоменклатурТЗ 
 ??? | |||
| 15
    
        antihacker 26.03.16✎ 15:17 | 
        RomanYS, что значит остатки по нему ? Это количество не отгруженных товаров ?     | |||
| 16
    
        RomanYS 26.03.16✎ 15:19 | 
        (14) я не удивлюсь, если  в параметрах наименования через запятую. 
 (13) в (12) абсолютно серьезное предложение - результат будет точно лучше (15) да заказано, но не отгружено | |||
| 17
    
        antihacker 26.03.16✎ 15:23 | 
        Но почему то возвраты по товарам зависают в остатке не загруженных. Почему ?     | |||
| 18
    
        RomanYS 26.03.16✎ 15:28 | 
        (17) потому что обязательства(отгрузить товар) по заказу не выполнено. Корректируй заказ, если не планируешь доотгружать возвращенное.     | |||
| 19
    
        antihacker 26.03.16✎ 15:31 | 
        корректировать заказ ? Что означает ?  Ведь нам потом нужно будет знать сколько заказно а сколько вернули     | |||
| 20
    
        RomanYS 26.03.16✎ 15:38 | 
        (19) блин посмотри на движения по регистру, включи голову.
 Приход - заказано, расход - отгружено, приход с минусом - уменьшение(корректировка) заказа, расход с минусом - возврат. Обороты можно анализировать по типу регистратора, виду операции, ещё чему-то (я даже не знаю какая у тебя конфа). | |||
| 21
    
        antihacker 26.03.16✎ 15:45 | 
        Нет все так и давайте вернемся на вопрос -"Но как здесь переделать запрос, что бы он брал те заказы на которых нет  реализации " ?
 А ? | |||
| 22
    
        RomanYS 26.03.16✎ 15:49 | 
        где НЕ Заказы.Ссылка в 
 (Выбрать различные Док.Сделка из Документы.Реализация) либо (4) | |||
| 23
    
        antihacker 02.04.16✎ 13:43 | 
        RomanYS , что означает Док.Сделка  ?     | |||
| 24
    
        antihacker 02.04.16✎ 13:52 | 
        Делаю так
 ЗапросНомВЗаказе.Текст=" |ВЫБРАТЬ |СУММА(Номенклатуры.Количество) КАК СуммаКоличествоНоменклатуры |ИЗ |Документ.ЗаказПокупателя.Товары КАК Номенклатуры |ГДЕ |НЕ Номенклатуры.Ссылка В (Выбрать Различные Документ.Сделка из Документ.РеализацияТоваровУслуг) И |Номенклатуры.Ссылка.ПРОВЕДЕН=ИСТИНА И Номенклатуры.Ссылка.СкладГруппа=&Склад И Номенклатуры.Номенклатура=&Номенклатура И Номенклатуры.Ссылка.Дата>=&ДатаНачало И Номенклатуры.Ссылка.Дата<=&ДатаКонца | СГРУППИРОВАТЬ ПО Номенклатура"; Ругаеться Поле не найдено "Документ.Сделка" НЕ Номенклатуры.Ссылка В (Выбрать Различные <<?>>Документ.Сделка из Документ.РеализацияТоваровУслуг) И | |||
| 25
    
        RomanYS 02.04.16✎ 13:55 | 
        (23) В УТ10, УПП и КА1 так в реализации называется ссылка на заказ.     | |||
| 26
    
        RomanYS 02.04.16✎ 13:57 | 
        ..(Выбрать Различные Док.Сделка<ИлиКакУТебяНазываетсяСсылкаНаЗаказ> из Документ.РеализацияТоваровУслуг КАК Док)     | |||
| 27
    
        antihacker 02.04.16✎ 14:06 | 
        Теперь нет ошибки и результата тоже не дает.
 ЗапросНомВЗаказе.Текст=" |ВЫБРАТЬ |СУММА(Номенклатуры.Количество) КАК СуммаКоличествоНоменклатуры |ИЗ |Документ.ЗаказПокупателя.Товары КАК Номенклатуры |ГДЕ |НЕ Номенклатуры.Ссылка В (Выбрать Различные РТ.Сделка.ЗаказПокупателя ИЗ Документ.РеализацияТоваровУслуг КАК РТ) И |Номенклатуры.Ссылка.ПРОВЕДЕН=ИСТИНА И Номенклатуры.Ссылка.СкладГруппа=&Склад И Номенклатуры.Номенклатура=&Номенклатура И Номенклатуры.Ссылка.Дата>=&ДатаНачало И Номенклатуры.Ссылка.Дата<=&ДатаКонца | СГРУППИРОВАТЬ ПО Номенклатура"; | |||
| 28
    
        RomanYS 02.04.16✎ 14:19 | 
        (27) не тупи. Я не знаю какая у тебя конфигурация и каким полем у тебя реализация связана с заказом.
 Помотри в консоли результат Выбрать Различные РТ.Сделка ИЗ Документ.РеализацияТоваровУслуг КАК РТ и по Выбрать Различные РТ.Сделка.ЗаказПокупателя ИЗ Документ.РеализацияТоваровУслуг КАК РТ РТ.Сделка.ЗаказПокупателя - это вообще что? я конечно могу предположить, что реализация может быть связана с заказом через промежуточный счет. Но вряд ли это твой случай. | |||
| 29
    
        antihacker 02.04.16✎ 14:21 | 
        Ну ты же сам писал     | |||
| 30
    
        antihacker 02.04.16✎ 14:21 | 
        Различные Док.Сделка<ИлиКакУТебяНазываетсяСсылкаНаЗаказ>     | |||
| 31
    
        antihacker 02.04.16✎ 14:21 | 
        вместо ИлиКакУТебяНазываетсяСсылкаНаЗаказ у меня ЗаказПокупателя     | |||
| 32
    
        RomanYS 02.04.16✎ 14:26 | 
        (31) это не добавка, это "или или".
 "Док.Сделка" или "Док.Заказ" или "Док.ЗаказПокупателя" или "Док.ИлиКакУТебяНазываетсяСсылкаНаЗаказ".... | |||
| 33
    
        antihacker 02.04.16✎ 14:26 | 
        Все работает
 ЗапросНомВЗаказе.Текст=" |ВЫБРАТЬ |СУММА(Номенклатуры.Количество) КАК СуммаКоличествоНоменклатуры |ИЗ |Документ.ЗаказПокупателя.Товары КАК Номенклатуры |ГДЕ |НЕ Номенклатуры.Ссылка В (Выбрать Различные РТ.Сделка ИЗ Документ.РеализацияТоваровУслуг КАК РТ) И |Номенклатуры.Ссылка.ПРОВЕДЕН=ИСТИНА И Номенклатуры.Ссылка.СкладГруппа=&Склад И Номенклатуры.Номенклатура=&Номенклатура И Номенклатуры.Ссылка.Дата>=&ДатаНачало И Номенклатуры.Ссылка.Дата<=&ДатаКонца | СГРУППИРОВАТЬ ПО Номенклатура"; | |||
| 34
    
        Живой Ископаемый 02.04.16✎ 18:13 | 
        это Анти-джойн, который описан в (4)     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |