Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0
Доброго времени суток! Делаю обработку по начислению пени за прошедший месяц.
Формирую вот такую таблицу значений:
Дата Задолженность на эту дату Начислено пени 01 апреля 8000 5,42 02 апреля 8000 5,42 03 апреля 3000 2,03 04 апреля 3000 2,03 05 апреля 3000 2,03 06 апреля 3000 2,03 07 апреля 3000 2,03 08 апреля 3000 2,03 09 апреля 3000 2,03 10 апреля 3000 2,03
Как с этой таблицы сформировать вот такой печатный документ:
Сумма задолженности |Период задолженности| Дней просрочки| Начисленно пени С | ПО 8000 01 апреля 02 апреля 2 10,84 3000 3 апреля 10 апреля 8 16,24
Как?
Может я не правильно формирую изначальную(с которой хочу вывести на печать) таблицу значений.....
ТабДок = Новый ТабличныйДокумент; Макет = ПолучитьМакет("Макет"); ОбластьМакета = Макет.ПолучитьОбласть("Шапка"); ОбластьМакета.Параметры.Заголовок = "Підсумкова таблиця за "+ПредставлениеПериода(НачалоДня(НачПериода),КонецДня(КонПериода),"Л=uk_UA; ФП=Истина"); ТабДок.Вывести(ОбластьМакета); // Для каждого сс Из тз Цикл ОбластьМакета = Макет.ПолучитьОбласть("Строка"); ОбластьМакета.Параметры.Заполнить(сс); ТабДок.Вывести(ОбластьМакета); КонецЦикла;
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0
Цитата(sava1 @ 27.05.15, 12:57)
ТабДок = Новый ТабличныйДокумент; Макет = ПолучитьМакет("Макет"); ОбластьМакета = Макет.ПолучитьОбласть("Шапка"); ОбластьМакета.Параметры.Заголовок = "Підсумкова таблиця за "+ПредставлениеПериода(НачалоДня(НачПериода),КонецДня(КонПериода),"Л=uk_UA; ФП=Истина"); ТабДок.Вывести(ОбластьМакета); // Для каждого сс Из тз Цикл ОбластьМакета = Макет.ПолучитьОбласть("Строка"); ОбластьМакета.Параметры.Заполнить(сс); ТабДок.Вывести(ОбластьМакета); КонецЦикла;
так примерно
Может я не так выражаюсь....мне нужно в макет вывести что с 01.04 по 02.04 долг был 8000 и начислено пени 2*5,42, следующая строка с 03.04 по 10.04 долг был 3000 начислено пени 8*2,03
Вот таблица которую я формирую, как с нее получить строку вида: с 01.04 по 30.04 долг = -71 497,23, начислено пени 24,75*30 ?
Перед перебором тз запоминаем предыдущее значение переменных. Перебираем строки тз: если текущее значение не равно предыдущему - выводим в строку
долг=0; Для каждого сс Из тз Цикл Если сс.долг<>долг тогда ОбластьМакета = Макет.ПолучитьОбласть("Строка"); ОбластьМакета.Параметры.Заполнить(сс); ТабДок.Вывести(ОбластьМакета); долг = сс.долг; КонецЕсли; КонецЦикла
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0
Цитата(sava1 @ 27.05.15, 13:09)
Перед перебором тз запоминаем предыдущее значение переменных. Перебираем строки тз: если текущее значение не равно предыдущему - выводим в строку
долг=0; Для каждого сс Из тз Цикл Если сс.долг<>долг тогда ОбластьМакета = Макет.ПолучитьОбласть("Строка"); ОбластьМакета.Параметры.Заполнить(сс); ТабДок.Вывести(ОбластьМакета); долг = сс.долг; КонецЕсли; КонецЦикла
либо я тупой либо лыжи не едут.....
Если без макета, к примеру я из этой ТЗ хочу сформировать ТЗ1 в которой есть колонки "Долг", "ПериодС", "ПериодПо", "НачисленоПениЗаПериод", как тогда?
долг=0; долгсумма=0; период1 =НачПериода; Для каждого сс Из тз Цикл Если сс.долг<>долг тогда Если сс.период>период1 Тогда нс = тз1.добавить(); нс.долг = сс.долг; нс.периодС = период1; нс.периодПо = сс.период; нс.начислено = долгсумма;
долг = сс.долг; период1 = сс.период; долгсумма=0;
КонецЕсли иначе долгсумма=долгсумма+сс.начислено; КонецЕсли;
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!