7.7 Запрос с условием по номеру документа

Тема в разделе "Отчеты и обработки для "1С:Предприятие 7.7"", создана пользователем Norvin, 15 авг 2012.

  1. TopicStarter Overlay
    Norvin
    Offline

    Norvin

    Регистрация:
    26 июл 2012
    Сообщения:
    33
    Симпатии:
    1
    Баллы:
    1
    Номер документа может быть с вида "К****** ", либо "0****** " на форме сделал моноусловие и дописал:

    Код:
     ДокР=СоздатьОбъект("Документ");
    ДокРеал = СоздатьОбъект("СписокЗначений");
    ДокР.ВыбратьДокументы();
    Пока ДокР.ПолучитьДокумент() = 1 Цикл
    Если МоноУсловие8 = Перечисление.ОтгрКиБезК.сК Тогда
    Если Найти(СокрЛП(ДокР.НомерДок),"К") > 0 Тогда
    ДокРеал.ДобавитьЗначение(ДокР.ТекущийДокумент());
    КонецЕсли;
    ИначеЕсли МоноУсловие8 = Перечисление.ОтгрКиБезК.БезК Тогда
    Если Найти(СокрЛП(ДокР.НомерДок),"К") = 0 Тогда
    ДокРеал.ДобавитьЗначение(ДокР.ТекущийДокумент());
    КонецЕсли;
    КонецЕсли;
    КонецЦикла
    Вставил условие в запросе

    Код:
    Текст = "//{{ЗАПРОС(ОтгрузкаТоваров)
    |Период с ДатаНач" + ПериодПо + ";
    |
    |ОбрабатыватьДокументы Проведенные;
    |Обрабатывать НеПомеченныеНаУдаление;
    |
    |ТипХозОпер   = Документ.РеализацияПродукции.ТипХозОперации;
    |ДокЗ	   = Документ.РеализацияПродукции.НомерДок,								    //Добавлено
    |			   Документ.РеализацияМатериалов.НомерДок, 									 //Добавлено
    |			   Документ.РеализацияРаботПоНормам.НомерДок,						    //Добавлено
    |			   Документ.РеализацияРабот.Контрагент; 										    //Добавлено
    |											 
    |			  
    |Покупатель   = Документ.РеализацияМатериалов.Контрагент,
    |			   Документ.РеализацияПродукции.Контрагент,
    |			   Документ.РеализацияРаботПоНормам.Контрагент,
    |			   Документ.РеализацияРабот.Контрагент;
    |
    |Договор	  = Документ.РеализацияМатериалов.Договор,
    |			   Документ.РеализацияПродукции.Договор,
    |			   Документ.РеализацияРаботПоНормам.Договор,
    |			   Документ.РеализацияРабот.Договор;
    |
    |ВалютаЦен    = Документ.РеализацияМатериалов.ВалютаЦен,
    |			   Документ.РеализацияПродукции.ВалютаЦен,
    |			   Документ.РеализацияРаботПоНормам.ВалютаЦен;
    |
    |Валюта	   = Документ.РеализацияМатериалов.Договор.Валюта,
    |			   Документ.РеализацияПродукции.Договор.Валюта,
    |			   Документ.РеализацияРаботПоНормам.Договор.Валюта,
    |			   Документ.РеализацияРабот.Договор.Валюта;
    |
    |Номенклатура = Документ.РеализацияМатериалов.Товар,
    |			   Документ.РеализацияПродукции.Товар,
    |			   Документ.РеализацияРаботПоНормам.Продукция,
    |			   Документ.РеализацияРабот.Продукция;
    |Условие(Номенклатура в СпрПен);
    |Количество   = Документ.РеализацияМатериалов.Количество,
    |			   Документ.РеализацияПродукции.Количество,
    |			   Документ.РеализацияРаботПоНормам.Количество,
    |			   Документ.РеализацияРабот.КоличествоПродукции;
    |	 
    |Всего	    = Документ.РеализацияМатериалов.Всего,
    |			   Документ.РеализацияПродукции.Всего,
    |			   Документ.РеализацияРаботПоНормам.Всего,
    |			   Документ.РеализацияРабот.Всего;
    |
    |НДС		  = Документ.РеализацияМатериалов.НДС,
    |			   Документ.РеализацияПродукции.НДС,
    |			   Документ.РеализацияРаботПоНормам.НДС,
    |			   Документ.РеализацияРабот.НДС;
    |
    |Объем = Документ.РеализацияПродукции.Объем ;
    |НП		   = Документ.РеализацияМатериалов.НП,
    |			   Документ.РеализацияПродукции.НП,
    |			   Документ.РеализацияРаботПоНормам.НП,
    |			   Документ.РеализацияРабот.НП;
    |
    |Коэффициент  = Документ.РеализацияМатериалов.ЕдиницаИзмерения.Коэффициент,
    |			   Документ.РеализацияПродукции.ЕдиницаИзмерения.Коэффициент,
    |			   Документ.РеализацияРаботПоНормам.ЕдиницаИзмерения.Коэффициент,
    |			   Документ.РеализацияРабот.ЕдиницаИзмерения.Коэффициент;
    |
    |Курс	  = Документ.РеализацияМатериалов.Курс,
    |			   Документ.РеализацияПродукции.Курс,
    |			   Документ.РеализацияРаботПоНормам.Курс;
    |Условие (ДокЗ в ДокРеал);																														  // Соответсвенно само условие
    |Функция Об = Сумма(Объем);
    |
    |Функция Кол	  = Сумма(Количество*Коэффициент) когда (Коэффициент <> 0);
    |
    |Функция КолБезЕИ = Сумма(Количество) когда (Коэффициент = 0);
    |
    |Функция Сум		   = Сумма(Всего" + ?(ВключатьНДС = 0, "-НДС", "") + ?(ВключатьНП = 0, "-НП", "") + ") когда (ВалютаЦен <> 2);
    |Функция СумПоКурсу    = Сумма((Всего" + ?(ВключатьНДС = 0, "-НДС", "") + ?(ВключатьНП = 0, "-НП", "") + ") * Курс) когда (ВалютаЦен = 2);
    |Функция СумВал	    = Сумма(Всего" + ?(ВключатьНДС = 0, "-НДС", "") + ?(ВключатьНП = 0, "-НП", "") + ") когда (ВалютаЦен = 2);
    |Функция СумВалПоКурсу = Сумма((Всего" + ?(ВключатьНДС = 0, "-НДС", "") + ?(ВключатьНП = 0, "-НП", "") + ") / Курс) когда ((ВалютаЦен <> 2) и (Курс <> 0));
    |
    |Условие (ТипХозОпер <> 3);
    |";
    Результат нужный не выходит, либо все элементы, либо ничего =)))))
  2. Requin
    Offline

    Requin Опытный в 1С

    Регистрация:
    10 май 2010
    Сообщения:
    1.911
    Симпатии:
    2
    Баллы:
    29
    Условие (ДокЗ в ДокРеал)

    В ДокРеал ссылки на документы, а ДокЗ - номер документа.
  3. TopicStarter Overlay
    Norvin
    Offline

    Norvin

    Регистрация:
    26 июл 2012
    Сообщения:
    33
    Симпатии:
    1
    Баллы:
    1
    Проблема решена, спасибо большое.
    Код:
    ДокРеал.ДобавитьЗначение(ДокР.НомерДок);

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