Как исключить накладные из запроса

Тема в разделе "1C и всё что с ней связано", создана пользователем RomanVolgograd, 6 мар 2008.

  1. RomanVolgograd

    RomanVolgograd Гость

    Конфигурация Тогрговля и Склад 7.7, релиз 942. Товарный отчет, в процедуре Сформировать есть запрос. Из него нада исключить Документ "РеализацияРозница". Можно в условие включить: "КодОперации <> глКО.РозничнаяПродажаЕНВД". Все бы хорошо, но сумма на начало считается неправильно (т.е. сумма на начало все равно включает данные накладные). Кто нибудь сталкивался с подобными проблемы? Если да, то как подходили к их решению? Заранее спасибо...
     
  2. Isabela

    Isabela Гость

    как-то некорректно изложил проблему
     
  3. Akulina

    Akulina Гость

    Во-во. Приведи хотя бы текст запроса.
     
  4. RomanVolgograd

    RomanVolgograd Гость

    текст запроса кончно могу привести, но что он даст отдельно от конфигурации. Стандартная конфигурация, Торговля и Склад, Товарный отчет, процдура сформировать.

    ТекстЗапроса = "
    |ПЕРИОД С ДатаНачала По ДатаКонца;
    |
    |Докум = Регистр.ПартииНаличие.ТекущийДокумент;
    |Фирма = Регистр.ПартииНаличие.Фирма;
    |МОЛ = Регистр.ПартииНаличие.МОЛ;
    |УпрАналит = Регистр.ПартииНаличие.Фирма.УпрАналитика;
    |ЮрЛицо = Регистр.ПартииНаличие.Фирма.ЮрЛицо;
    |Номенклатура = Регистр.ПартииНаличие.Номенклатура;
    |СтатусПартии = Регистр.ПартииНаличие.СтатусПартии;
    |Количество = Регистр.ПартииНаличие.Количество;
    |ПродЦена = Регистр.ПартииНаличие.ЦенаПрод;
    |Стоимость = Регистр.ПартииНаличие.СуммаБезНДС;
    |КодОперации = Регистр.ПартииНаличие.КодОперации;
    |
    |";

    Если ЦенаТовара.ТекущаяСтрока() = 1 Тогда

    // Отчет формируется в закупочных ценах
    Если ПустоеЗначение(ВыбМОЛ) = 0 Тогда

    // МОЛ выбран
    УсловиеДляТовара = "";
    УсловиеДляТары = " Когда ((СтатусПартии = глСП.Т_Тара) ИЛИ (СтатусПартии = глСП.М_Тара))";

    Иначе

    // МОЛ не выбран. Не учитываем в приходе и расходе внутреннее перемещения
    УсловиеДляТовара = " Когда ((КодОперации <> глКО.Перемещение) И (КодОперации <> глКО.Перемещение) И (КодОперации <> глКО.ПередачаВРозницу) И (КодОперации <> глКО.ВозвратИзРозницы))";
    УсловиеДляТары = " Когда (((СтатусПартии = глСП.Т_Тара) ИЛИ (СтатусПартии = глСП.М_Тара))
    |И (КодОперации <> глКО.Перемещение) И (КодОперации <> глКО.ПередачаВРозницу) И (КодОперации <> глКО.ВозвратИзРозницы))";

    КонецЕсли;

    ТекстЗапроса = ТекстЗапроса + "
    |Группировка Докум;
    |
    |Функция НачСтоимостьВсего = НачОст(Стоимость);
    |Функция НачСтоимостьТара = НачОст(Стоимость)
    | Когда ((СтатусПартии = глСП.Т_Тара) ИЛИ (СтатусПартии = глСП.М_Тара));
    |Функция ПрихСтоимостьВсего = Приход(Стоимость)" + УсловиеДляТовара + ";
    |Функция ПрихСтоимостьТара = Приход(Стоимость)" + УсловиеДляТары + ";
    |Функция РасхСтоимостьВсего = Расход(Стоимость)" + УсловиеДляТовара + ";
    |Функция РасхСтоимостьТара = Расход(Стоимость)" + УсловиеДляТары + ";
    |Функция КонСтоимостьВсего = КонОст(Стоимость);
    |Функция КонСтоимостьТара = КонОст(Стоимость)
    | Когда ((СтатусПартии = глСП.Т_Тара) ИЛИ (СтатусПартии = глСП.М_Тара));
    |
    |";

    Иначе

    // Если отчет формируется в розничных ценах
    Если ПустоеЗначение(ВыбМОЛ) = 0 Тогда

    // МОЛ выбран
    УсловиеДляТовара = "";
    УсловиеДляТары = " Когда ((СтатусПартии = глСП.Т_Тара) ИЛИ (СтатусПартии = глСП.М_Тара))";

    Иначе

    // МОЛ не выбран. Не учитываем в приходе и расходе внутреннее перемещения
    УсловиеДляТовара = " Когда ((КодОперации <> глКО.Перемещение) И (КодОперации <> глКО.Перемещение) И (КодОперации <> глКО.ПередачаВРозницу) И (КодОперации <> глКО.ВозвратИзРозницы))";
    УсловиеДляТары = " Когда (((СтатусПартии = глСП.Т_Тара) ИЛИ (СтатусПартии = глСП.М_Тара))
    |И ((КодОперации <> глКО.Перемещение) ИЛИ (Докум.Вид() = ""ПереоценкаРозница"")) И (КодОперации <> глКО.ПередачаВРозницу) И (КодОперации <> глКО.ВозвратИзРозницы))";

    КонецЕсли;

    ТекстЗапроса = ТекстЗапроса + "
    |Группировка Номенклатура;
    |Группировка ПродЦена;
    |Группировка Докум;
    |
    |Функция НачКоличествоВсего = НачОст(Количество);
    |Функция НачКоличествоТара = НачОст(Количество)
    | Когда ((СтатусПартии = глСП.Т_Тара) ИЛИ (СтатусПартии = глСП.М_Тара));
    |Функция ПрихКоличествоВсего = Приход(Количество)" + УсловиеДляТовара + ";
    |Функция ПрихКоличествоТара = Приход(Количество)" + УсловиеДляТары + ";
    |Функция РасхКоличествоВсего = Расход(Количество)" + УсловиеДляТовара + ";
    |Функция РасхКоличествоТара = Расход(Количество)" + УсловиеДляТары + ";
    |Функция КонКоличествоВсего = КонОст(Количество);
    |Функция КонКоличествоТара = КонОст(Количество)
    | Когда ((СтатусПартии = глСП.Т_Тара) ИЛИ (СтатусПартии = глСП.М_Тара));
    |Условие (ПродЦена <> 0);
    |
    |";

    КонецЕсли;


    Если в конце дописать
    ТекстЗапроса = ТекстЗапроса + "
    |Условие (КодОперации <> глКО.РозничнаяПродажаЕНВД);";
    то в обороты (РасхКоличествоВсего) накладные не попадают. но они попадаю в сумму на начало (НачКоличествоВсего).
    Это не совсем правильно... Я так думаю. Как решить данную проблему?
     
  5. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    КодОперации - реквизит регистра, а не измерение. По реквизитам нет итогов (что-то типа субконто с пометкой "только обороты"). Вывод - никак по коду операции.
     
Загрузка...

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