8.х В отчете выводятся только проданные и купленые товары, а купленые но не проданые не выводятся

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем iceborn, 7 май 2011.

  1. TopicStarter Overlay
    iceborn
    Offline

    iceborn Опытный в 1С

    Регистрация:
    17 июн 2010
    Сообщения:
    204
    Симпатии:
    0
    Баллы:
    26
    Помогите разобраться с отчетом, выводятся только те товары которые купили и продали, а те товары которые допустим только продали не выводятся, как это исправить? Вот код:


    Код:
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    | ПродажиОбороты.Номенклатура КАК Номенклатура,
    | ПродажиОбороты.КоличествоОборот КАК КоличествоПродаж,
    | ЗакупкиОбороты.Номенклатура КАК Закупки,
    | ЗакупкиОбороты.КоличествоОборот КАК КоличествоЗакупок,
    | ЗакупкиОбороты.СтоимостьОборот КАК ЦенаЗакупки,
    | ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток, 0)  КАК ОстатокТовара
    |ИЗ
    | РегистрНакопления.Продажи.Обороты(&ДатаС, &ДатаПо,,Контрагент = &Контрагент) КАК ПродажиОбороты
    |ПОЛНОЕ СОЕДИНЕНИЕ
    | РегистрНакопления.Закупки.Обороты(&ДатаС, &ДатаПо,,Контрагент = &Контрагент И ДоговорКонтрагента = &ДоговорКонтрагента) КАК ЗакупкиОбороты
    |ПО   ПродажиОбороты.Номенклатура = ЗакупкиОбороты.Номенклатура
    |ПОЛНОЕ СОЕДИНЕНИЕ
    | РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты КАК ТоварыНаСкладахОстаткиИОбороты
    |ПО ЗакупкиОбороты.Номенклатура = ТоварыНаСкладахОстаткиИОбороты.Номенклатура И ПродажиОбороты.Номенклатура = ТоварыНаСкладахОстаткиИОбороты.Номенклатура 
    |ГДЕ
    |ЗакупкиОбороты.Номенклатура.Акция = ИСТИНА	И ПродажиОбороты.Номенклатура.Акция = ИСТИНА";
    Запрос.УстановитьПараметр("ДатаС", ДатаС);
    Запрос.УстановитьПараметр("ДатаПо", ДатаПо);
    Запрос.УстановитьПараметр("Организация", Организация);
    Запрос.УстановитьПараметр("Контрагент", Контрагент);
    Запрос.УстановитьПараметр("ДоговорКонтрагента", ДоговорКонтрагента);
    Результат = Запрос.Выполнить();
    
    Выборка = Результат.Выбрать();
    Пока Выборка.Следующий() Цикл
    ОблСтрока.Параметры.Номенклатура = Выборка.Номенклатура;
    ОблСтрока.Параметры.Расход = Выборка.КоличествоПродаж;
    ОблСтрока.Параметры.Приход = Выборка.КоличествоЗакупок;
    ОблСтрока.Параметры.ЦенаЗакупки = Выборка.ЦенаЗакупки;
    ОблСтрока.Параметры.Остаток = Выборка.ОстатокТовара;
    ТабДок.Вывести(ОблСтрока);
    КонецЦикла
    
    ;
  2. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Не фига ж се запрос: 2 полных соединения, как оно вообще шевелится?

    Может проще сделать выборку из справочника номенклатура, и к ней левым соединением данные из РН Продажи, Закупки, ТоварыНаСкладах.
  3. TopicStarter Overlay
    iceborn
    Offline

    iceborn Опытный в 1С

    Регистрация:
    17 июн 2010
    Сообщения:
    204
    Симпатии:
    0
    Баллы:
    26
    Второе полное уже исправил на левое, но работает так же само...
  4. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Задачу сформулируйте, что должен возвращать запрос.
    А то мне непонятно как-то: закупки от контрагента по определенному договору соединяем с продажей этому же контрагенту, но по любому договору: вы что товар туда-сюда между собой и контрагентом гоняете?
  5. Vladius
    Offline

    Vladius Опытный в 1С

    Регистрация:
    10 ноя 2010
    Сообщения:
    663
    Симпатии:
    3
    Баллы:
    29
    shurikvz

    Создать отчёт, который должен дать информацию об остатках товара с признаком «акция».
    На форме отчёта должны выбираться:
    - период отчёта;
    - фирма;
    - поставщик;
    - договор поставки;
    - адрес электронной почты.
    В печатной форме отчёта:
    - остаток товара на начало периода отчёта;
    - приход товара за период;
    - расход товара за период;
    - минимальный нормативный запас товара;
    - цена закупки товара.
    Дать пользователю возможность формировать отчет с детализацией (день, неделя, месяц).
  6. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Не совсем понятно при чем там адрес почты. Наверно как-то так (без детализации по периодам).
    Код:
    "ВЫБРАТЬ
    Номенклатура.Ссылка
    ПОМЕСТИТЬ СписокНоменклатуры
    ИЗ
    Справочник.Номенклатура КАК Номенклатура
    ГДЕ
    Номенклатура.ЭтоГруппа = ЛОЖЬ
    И Номенклатура.Акция = ИСТИНА;
    </span>
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    СписокНоменклатуры.Ссылка КАК Номенклатура,
    СУММА(ЕСТЬNULL(ЗакупкиОбороты.КоличествоОборот, 0)) КАК Приход,
    СУММА(ЕСТЬNULL(ПродажиОбороты.КоличествоОборот, 0)) КАК Расход,
    СРЕДНЕЕ(ВЫБОР
    КОГДА ЕСТЬNULL(ЗакупкиОбороты.КоличествоОборот, 0) = 0
    ТОГДА 0
    ИНАЧЕ ЕСТЬNULL(ЗакупкиОбороты.СтоимостьОборот, 0) / ЗакупкиОбороты.КоличествоОборот
    КОНЕЦ) КАК ЦенаПриход
    ПОМЕСТИТЬ ПриходРасход
    ИЗ
    СписокНоменклатуры КАК СписокНоменклатуры
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Закупки.Обороты(
    &НачалоПериода,
    &КонецПериода,
    Авто,
    Организация = &Организация
    И Контрагент = &Контрагент
    И ДоговорКонтрагента = &ДоговорКонтрагента
    И Номенклатура В
    (ВЫБРАТЬ
    СписокНоменклатуры.Ссылка
    ИЗ
    СписокНоменклатуры КАК СписокНоменклатуры)) КАК ЗакупкиОбороты
    ПО СписокНоменклатуры.Ссылка = ЗакупкиОбороты.Номенклатура
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(
    &НачалоПериода,
    &КонецПериода,
    Авто,
    Организация = &Организация
    И Номенклатура В
    (ВЫБРАТЬ
    СписокНоменклатуры.Ссылка
    ИЗ
    СписокНоменклатуры КАК СписокНоменклатуры)) КАК ПродажиОбороты
    ПО СписокНоменклатуры.Ссылка = ПродажиОбороты.Номенклатура
    
    СГРУППИРОВАТЬ ПО
    СписокНоменклатуры.Ссылка;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    ПриходРасход.Номенклатура,
    СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток) КАК НачальныйОстаток,
    ПриходРасход.Приход,
    ПриходРасход.Расход,
    ПриходРасход.ЦенаПриход
    ИЗ
    ПриходРасход КАК ПриходРасход
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(
    &НачалоПериода,
    Номенклатура В
    (ВЫБРАТЬ
    СписокНоменклатуры.Ссылка
    ИЗ
    СписокНоменклатуры КАК СписокНоменклатуры)) КАК ТоварыНаСкладахОстатки
    ПО ПриходРасход.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура
    
    СГРУППИРОВАТЬ ПО
    ПриходРасход.Номенклатура,
    ПриходРасход.Приход,
    ПриходРасход.Расход,
    ПриходРасход.ЦенаПриход
    АВТОУПОРЯДОЧИВАНИЕ"
    
    </FONT></FONT></pre>
Похожие темы
  1. AugustBlack
    Ответов:
    1
    Просмотров:
    433
  2. milena384
    Ответов:
    9
    Просмотров:
    575
Загрузка...

Поделиться этой страницей