Сумма по подчиненным документам
25.10.2006
11:55
#1
Здравствуйте люди, помогите начинающему советом.(Бюджетка рел.605)
Справочник Санкционирование расходов бюджета. Как сделать так, чтобы при выводе подчиненных документов (например для документа Бюджетное обязательство) выводилась где-нибудь в отдельном поле сумма по всем этим документам.
Справочник Санкционирование расходов бюджета. Как сделать так, чтобы при выводе подчиненных документов (например для документа Бюджетное обязательство) выводилась где-нибудь в отдельном поле сумма по всем этим документам.
26.10.2006
13:47
#2
"Легко. В общем, так:
В конфигураторе открываешь отчет "Дерево документов".
После этого в модуль отчета в самом начале (после объявления переменных) добавляешь:
Перем ИтоговаяСумма;
Функция ВернутьСуммуЧ(Д)
ВидД=Д.Вид();
Рез = 0;
Если глЕстьРеквизитШапки("СуммаДокумента",ВидД)=1 Тогда
Рез = Д.СуммаДокумента;
ИначеЕсли глЕстьРеквизитШапки("Всего",ВидД)=1 Тогда
Рез = Д.Всего;
ИначеЕсли глЕстьРеквизитМнЧ("Всего",ВидД)=1 Тогда
Рез = Д.Итог("Всего");
ИначеЕсли глЕстьРеквизитМнЧ("Сумма",ВидД)=1 Тогда
Рез = Д.Итог("Сумма");
КонецЕсли;
Возврат Рез;
КонецФункции // ВернутьСуммуЧ()
После этого ищешь строку типа
ПечДок = ПечДок+ВернутьСумму(Док);
после каждой такой строки добавляешь
ИтоговаяСумма = ИтоговаяСумма + ВернутьСуммуЧ(Док);
Вот. Если найдешь строку
ПечДок = ПечДок + ВернутьСумму(КореньДок);
и после нее добавишь
ИтоговаяСумма = ИтоговаяСумма + ВернутьСуммуЧ(КореньДок);
тогда у тебя в итоговую сумму попадет еще и сумма исходного документа.
Соответственно в начале процедуры Сформировать() пишешь
ИтоговаяСумма = 0;
После этого в таблицу добавляешь секцию с именем этой переменной, обзываешь ее, например, "Итого" и
перед строкой
Таб.ТолькоПросмотр(1);
пишешь
Таб.ВывестиСекцию("Итого");
Все."
В конфигураторе открываешь отчет "Дерево документов".
После этого в модуль отчета в самом начале (после объявления переменных) добавляешь:
Перем ИтоговаяСумма;
Функция ВернутьСуммуЧ(Д)
ВидД=Д.Вид();
Рез = 0;
Если глЕстьРеквизитШапки("СуммаДокумента",ВидД)=1 Тогда
Рез = Д.СуммаДокумента;
ИначеЕсли глЕстьРеквизитШапки("Всего",ВидД)=1 Тогда
Рез = Д.Всего;
ИначеЕсли глЕстьРеквизитМнЧ("Всего",ВидД)=1 Тогда
Рез = Д.Итог("Всего");
ИначеЕсли глЕстьРеквизитМнЧ("Сумма",ВидД)=1 Тогда
Рез = Д.Итог("Сумма");
КонецЕсли;
Возврат Рез;
КонецФункции // ВернутьСуммуЧ()
После этого ищешь строку типа
ПечДок = ПечДок+ВернутьСумму(Док);
после каждой такой строки добавляешь
ИтоговаяСумма = ИтоговаяСумма + ВернутьСуммуЧ(Док);
Вот. Если найдешь строку
ПечДок = ПечДок + ВернутьСумму(КореньДок);
и после нее добавишь
ИтоговаяСумма = ИтоговаяСумма + ВернутьСуммуЧ(КореньДок);
тогда у тебя в итоговую сумму попадет еще и сумма исходного документа.
Соответственно в начале процедуры Сформировать() пишешь
ИтоговаяСумма = 0;
После этого в таблицу добавляешь секцию с именем этой переменной, обзываешь ее, например, "Итого" и
перед строкой
Таб.ТолькоПросмотр(1);
пишешь
Таб.ВывестиСекцию("Итого");
Все."
Читают тему
(гостей: 1)