|
Как сделать выборку по текущему документу | ☑ | ||
---|---|---|---|---|
0
pin4er
08.04.13
✎
12:30
|
Добрый день! 8.2 УП конф.
есть Отчет http://gifok.net/images/2013/04/08/OpZWt.jpg Работает так: открываю отчет, выбираю заявку, и по ней он ищет документы поступления (в кассу и на РС) и расхода. Процедура СформироватьОтчет() ТаблицаПриход = Новый ТаблицаЗначений; ТаблицаПриход.Колонки.Добавить("Содержание"); ТаблицаПриход.Колонки.Добавить("Сумма"); ТаблицаРасход = ТаблицаПриход.СкопироватьКолонки(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | навВзаиморасчетыСКонтрагентами.СодержаниеОперации, | СУММА(навВзаиморасчетыСКонтрагентами.Сумма) КАК Сумма, | навВзаиморасчетыСКонтрагентами.Регистратор |ИЗ | РегистрНакопления.навВзаиморасчетыСКонтрагентами КАК навВзаиморасчетыСКонтрагентами |ГДЕ | навВзаиморасчетыСКонтрагентами.Документ = &Документ | |СГРУППИРОВАТЬ ПО | навВзаиморасчетыСКонтрагентами.СодержаниеОперации, | навВзаиморасчетыСКонтрагентами.Регистратор"; Запрос.УстановитьПараметр("Документ", Отчет.Заявка); Результат = Запрос.Выполнить().Выбрать(); Пока Результат.Следующий() Цикл Если ТипЗнч(Результат.Регистратор) = Тип("ДокументСсылка.ПоступлениеВКассу") Или ТипЗнч(Результат.Регистратор) = Тип("ДокументСсылка.ПоступлениеНаСчет") Тогда НоваяСтрока = ТаблицаПриход.Добавить(); ИначеЕсли ТипЗнч(Результат.Регистратор) = Тип("ДокументСсылка.РасходИзКассы") Или ТипЗнч(Результат.Регистратор) = Тип("ДокументСсылка.РасходСоСчета") Тогда НоваяСтрока = ТаблицаРасход.Добавить(); Иначе Продолжить; КонецЕсли; НоваяСтрока.Содержание = Результат.СодержаниеОперации; НоваяСтрока.Сумма = Результат.Сумма; КонецЦикла; ТабДок.Очистить(); Макет = РеквизитФормыВЗначение("Отчет").ПолучитьМакет("Макет"); ОбластьШапка = Макет.ПолучитьОбласть("Шапка"); ТабДок.Вывести(ОбластьШапка); наибКоличествоСтрок = ?(ТаблицаПриход.Количество()>ТаблицаРасход.Количество(), ТаблицаПриход.Количество(), ТаблицаРасход.Количество()); ИтогоПриход = 0; ИтогоРасход = 0; Для Шаг = 0 По наибКоличествоСтрок - 1 Цикл ОбластьСтрока = макет.ПолучитьОбласть("Строка"); ОбластьСтрока.Параметры.Приход = ?(Шаг<ТаблицаПриход.Количество(), ТаблицаПриход[Шаг].Содержание, ""); ПриходСумма = ?(Шаг<ТаблицаПриход.Количество(), ТаблицаПриход[Шаг].Сумма, ""); ОбластьСтрока.Параметры.ПриходСумма = ПриходСумма; ОбластьСтрока.Параметры.Расход = ?(Шаг<ТаблицаРасход.Количество(), ТаблицаРасход[Шаг].Содержание, ""); РасходСумма = ?(Шаг<ТаблицаРасход.Количество(), -ТаблицаРасход[Шаг].Сумма, ""); ОбластьСтрока.Параметры.РасходСумма = РасходСумма; ИтогоПриход = ИтогоПриход + ?(ПриходСумма="", 0, ПриходСумма); ИтогоРасход = ИтогоРасход + ?(РасходСумма = "", 0, РасходСумма); ТабДок.Вывести(ОбластьСтрока); КонецЦикла; ОбластьПодвал = Макет.ПолучитьОбласть("Подвал"); ОбластьПодвал.Параметры.ПриходИтог = ИтогоПриход; ОбластьПодвал.Параметры.РасходИтог = ИтогоРасход; ОбластьПодвал.Параметры.Прибыль = ИтогоПриход + ИтогоРасход; ОбластьПодвал.Параметры.СуммаПоСчету = Отчет.Заявка.СуммаДокумента; Если Отчет.Заявка.СуммаДокумента <> 0 Тогда ОбластьПодвал.Параметры.Рентабельность = (ИтогоПриход + ИтогоРасход)*100/Отчет.Заявка.СуммаДокумента; КонецЕсли; ОбластьПодвал.Параметры.Долг = ИтогоПриход - Отчет.Заявка.СуммаДокумента; ТабДок.Вывести(ОбластьПодвал); КонецПроцедуры а мне надо при печати из документа "Заявка" вывести суммы поступления в http://gifok.net/images/2013/04/08/ui3wa.jpg (помечено синим) т.е. в отчете я выбирал по какой формировать заявке а надо чтобы при открытии заявки и вывод на печать он сам находил документы прихода.. Помогите пожалуйста разобраться, а то только вникаю в азы программирования, а задачу выполнить надо... |
|||
1
pin4er
08.04.13
✎
12:31
|
(0) 2 картинка http://gifok.net/images/2013/04/08/ui3wa.jpg
|
|||
2
pin4er
08.04.13
✎
13:06
|
Даже вот так:
Процедура СформироватьОтчет() ТаблицаПриход = Новый ТаблицаЗначений; ТаблицаПриход.Колонки.Добавить("Содержание"); ТаблицаПриход.Колонки.Добавить("Сумма"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | навВзаиморасчетыСКонтрагентами.СодержаниеОперации, | СУММА(навВзаиморасчетыСКонтрагентами.Сумма) КАК Сумма, | навВзаиморасчетыСКонтрагентами.Регистратор |ИЗ | РегистрНакопления.навВзаиморасчетыСКонтрагентами КАК навВзаиморасчетыСКонтрагентами |ГДЕ | навВзаиморасчетыСКонтрагентами.Документ = &Документ | |СГРУППИРОВАТЬ ПО | навВзаиморасчетыСКонтрагентами.СодержаниеОперации, | навВзаиморасчетыСКонтрагентами.Регистратор"; Запрос.УстановитьПараметр("Документ", Отчет.Заявка); Результат = Запрос.Выполнить().Выбрать(); Пока Результат.Следующий() Цикл Если ТипЗнч(Результат.Регистратор) = Тип("ДокументСсылка.ПоступлениеВКассу") Или ТипЗнч(Результат.Регистратор) = Тип("ДокументСсылка.ПоступлениеНаСчет") Тогда НоваяСтрока = ТаблицаПриход.Добавить(); Иначе Продолжить; КонецЕсли; НоваяСтрока.Содержание = Результат.СодержаниеОперации; НоваяСтрока.Сумма = Результат.Сумма; КонецЦикла; ТабДок.Очистить(); Макет = РеквизитФормыВЗначение("Отчет").ПолучитьМакет("Макет"); ОбластьШапка = Макет.ПолучитьОбласть("Шапка"); ТабДок.Вывести(ОбластьШапка); наибКоличествоСтрок = ТаблицаПриход.Количество(); ИтогоПриход = 0; Для Шаг = 0 По наибКоличествоСтрок - 1 Цикл ОбластьСтрока = макет.ПолучитьОбласть("Строка"); ОбластьСтрока.Параметры.Приход = ?(Шаг<ТаблицаПриход.Количество(), ТаблицаПриход[Шаг].Содержание, ""); ПриходСумма = ?(Шаг<ТаблицаПриход.Количество(), ТаблицаПриход[Шаг].Сумма, ""); ОбластьСтрока.Параметры.ПриходСумма = ПриходСумма; ИтогоПриход = ИтогоПриход + ?(ПриходСумма="", 0, ПриходСумма); ТабДок.Вывести(ОбластьСтрока); КонецЦикла; ОбластьПодвал = Макет.ПолучитьОбласть("Подвал"); ОбластьПодвал.Параметры.ПриходИтог = ИтогоПриход; ТабДок.Вывести(ОбластьПодвал); КонецПроцедуры и как то вывести это в печать, чтобы поиск происходил по открытому документу "Заявки" |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |