|
Как сделать так чтобы при выборе определенной цены на форме отчета в печатную... | ☑ | ||
---|---|---|---|---|
0
nikitka55
31.05.12
✎
13:00
|
Здравствуйте
Есть объект конфигурации Документы -> Смета, в котором имеется два заполненных документа в документе присутствует реквизит (ЭтоОрганизация) который отвечает за подстановку определенной цены (цена на предприятие или цена на население) из регистра сведений в данный документ, если флажок стоит у этого реквизита то цена подставляется на предприятие, если нет то на население (это все работает) http://www.pictureshack.ru/images/34494_5.jpg Документ может содержать только цену на население или на предприятие. На данный момент отчет выводит все работы и материалы за определенный период http://www.pictureshack.ru/images/40106_4.jpg http://www.pictureshack.ru/images/59273_7.jpg На форме отчета добавил тоже реквизит ЭтоОрганизация, для того чтобы можно было в отчете просмотреть отдельно сколько работ и материалов было выполнено для предприятия или для населения. Пример (как нужно сделать): Выбрали дату в данном случае с 01.04.12 по 02.04.12 дальше - если нет галочки на форме отчета http://www.pictureshack.ru/images/40106_4.jpg у реквизита ЭтоОрганизация, то он должен вывести услуги и материалы только тех документов http://www.pictureshack.ru/images/34494_5.jpg у которых галочки нету (и наоборот соответсвенно) И в отчете должно получится так чтобы он вывел данные по первому документу ( в данном случае) http://www.pictureshack.ru/images/7900_6.jpg Как это можно сделать? помогите пожалуйста Данный код выводит все услуги и материалы , как его можно исправить под данный случай &НаСервере Функция ОтчетПоОказаннымУслугам() ТабДок = Новый ТабличныйДокумент; Макет=Отчеты.ОтчетПоУслугам2.ПолучитьМакет("Отчет"); Запрос=Новый Запрос; Запрос.Текст= "ВЫБРАТЬ | ДокСмета.ПунктПрейскурантаНаименованиеРабот КАК ПунктПрейскурантаНаименованиеРабот, | ДокСмета.ЕдИзм КАК ЕдИзм, | ДокСмета.ЦенаРуб КАК ЦенаРуб, | СУММА(ДокСмета.КолВо) КАК КолВо, | СУММА(ДокСмета.СуммаРуб) КАК СуммаРуб |ИЗ | Документ.Смета.ДокСмета КАК ДокСмета |ГДЕ | ДокСмета.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон | |СГРУППИРОВАТЬ ПО | ДокСмета.ПунктПрейскурантаНаименованиеРабот, | ДокСмета.ЕдИзм, | ДокСмета.ЦенаРуб"; Запрос.УстановитьПараметр("ДатаНач", НачалоДня(Отчет.Дата)); Запрос.УстановитьПараметр("ДатаКон", КонецДня(Отчет.Дата1)); ВыборкаУслуга = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); ОбластьВерх=Макет.ПолучитьОбласть("Верх"); ОбластьШапка=Макет.ПолучитьОбласть("Шапка"); ОбластьЗагТаб=Макет.ПолучитьОбласть("ЗагТаб"); ОбластьШапкаТаб=Макет.ПолучитьОбласть("ШапкаТаб"); ОбластьТаблСмета=Макет.ПолучитьОбласть("ТаблСмета"); ОбластьТаблМатериалы=Макет.ПолучитьОбласть("ТаблМатериалы"); ОбластьУслМат=Макет.ПолучитьОбласть("УслМат"); ОбластьИтогоРабот=Макет.ПолучитьОбласть("ИтогоРабот"); ОбластьИтогоМатериалов=Макет.ПолучитьОбласть("ИтогоМатериалов"); ОбластьВсегоРаботИМатериалов=Макет.ПолучитьОбласть("ВсегоРаботИМатериалов"); ОбластьНДС=Макет.ПолучитьОбласть("НДС"); ОбластьНиз=Макет.ПолучитьОбласть("Низ"); ТабДок.Очистить(); ТабДок.Вывести(ОбластьВерх); Дата=ЭтаФорма.Отчет.Дата; ОбластьШапка.Параметры.Дата=Дата; Дата1=ЭтаФорма.Отчет.Дата1; ОбластьШапка.Параметры.Дата1=Дата1; ТабДок.Вывести(ОбластьШапка); ТабДок.Вывести(ОбластьЗагТаб); ТабДок.Вывести(ОбластьШапкаТаб); СуммаИтог=0; СуммаИтог1=0; ВставлятьРазделительСтраниц = Ложь; НомерСтроки = 0; НомерСтроки1 = 0; //Заполняю табличную часть Док смета у документа Смета Пока ВыборкаУслуга.Следующий() цикл Если ВставлятьРазделительСтраниц Тогда ТабДок.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; НомерСтроки = НомерСтроки + 1; ОбластьТаблСмета.Параметры.Заполнить(ВыборкаУслуга); ОбластьТаблСмета.Параметры.НомерСтроки = НомерСтроки; ТабДок.Вывести(ОбластьТаблСмета); СуммаИтог=СуммаИтог+ВыборкаУслуга.СуммаРуб; КонецЦикла; ЗапросМатериалы=Новый Запрос; ЗапросМатериалы.Текст= "ВЫБРАТЬ | Материалы.НаименованиеМатериала КАК НаименованиеМатериала, | Материалы.ЕдИзм КАК МЕдИзм, | Материалы.ЦенаРуб КАК МЦенаРуб, | СУММА(Материалы.КолВо) КАК МКолВо, | СУММА(Материалы.СуммаРуб) КАК МСуммаРуб |ИЗ | Документ.Смета.Материалы КАК Материалы |ГДЕ | Материалы.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон | |СГРУППИРОВАТЬ ПО | Материалы.НаименованиеМатериала, | Материалы.ЕдИзм, | Материалы.ЦенаРуб"; ЗапросМатериалы.УстановитьПараметр("ДатаНач", НачалоДня(Отчет.Дата)); ЗапросМатериалы.УстановитьПараметр("ДатаКон", КонецДня(Отчет.Дата1)); Выборка = ЗапросМатериалы.Выполнить().Выбрать(); //Заполняю табличную часть Материалы документа смета Пока Выборка.Следующий() цикл Если ВставлятьРазделительСтраниц Тогда ТабДок.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; НомерСтроки1 = НомерСтроки+1 ; ОбластьТаблМатериалы.Параметры.Заполнить(Выборка); ОбластьТаблМатериалы.Параметры.НомерСтроки1 = НомерСтроки1; //ТабДок.Вывести(ОбластьТаблМатериалы); СуммаИтог1=СуммаИтог1+Выборка.МСуммаРуб; КонецЦикла; ОбластьИтогоРабот.Параметры.ВсегоПоРаботам=СуммаИтог; СКА=СуммаИтог1*1.2083; ОбластьИтогоМатериалов.Параметры.ВсегоПоМатериалам=СКА; ВсегоРаботИМатериалов=СуммаИтог+СКА; ОбластьУслМат.Параметры.РаботыИМатериалы=ВсегоРаботИМатериалов; НДС=ВсегоРаботИМатериалов*0.18; ОбластьНДС.Параметры.СУчетомНДС=НДС; УслМатНДС=ВсегоРаботИМатериалов+НДС; ОбластьВсегоРаботИМатериалов.Параметры.ВсегоПоСчету=УслМатНДС; ЗапросНачальникИОтЛиц= Новый Запрос; ЗапросНачальникИОтЛиц.Текст= "ВЫБРАТЬ | Константы.НачальникУчастка, | ОтветственныеЛица.Наименование |ИЗ | Константы КАК Константы, | Справочник.ОтветственныеЛица КАК ОтветственныеЛица"; ВыборкаНачальникИОтЛиц=ЗапросНачальникИОтЛиц.Выполнить().Выбрать(); Пока ВыборкаНачальникИОтЛиц.Следующий() Цикл ОбластьНиз.Параметры.Заполнить(ВыборкаНачальникИОтЛиц); КонецЦикла; Лицо=ЭтаФорма.Отчет.ОтветственноеЛицо; ОбластьНиз.Параметры.Наименование=Лицо; ТабДок.Вывести(ОбластьИтогоРабот); ТабДок.Вывести(ОбластьИтогоМатериалов); ТабДок.Вывести(ОбластьВсегоРаботИМатериалов); ТабДок.Вывести(ОбластьНДС); ТабДок.Вывести(ОбластьНиз); Возврат (ТабДок); КонецФункции |
|||
1
Buster007
31.05.12
✎
13:02
|
ГДЕ
| ДокСмета.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон И ДокСмета.Ссылка.ЭтоОрганизация = &ЭтоОрганизация запрос.УстановитьПараметр("ЭтоОрганизация", ЭтоОрганизация); |
|||
2
nikitka55
31.05.12
✎
13:04
|
Сейчас попробую
|
|||
3
nikitka55
31.05.12
✎
13:09
|
Спасибо большое работает)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |