Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2, свеженьких 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Помогите сформировать печатную форму          
kosalex Подменю пользователя
сообщение 27.05.15, 10:41
Сообщение #1

Ветеран
*******
Группа: Пользователи
Сообщений: 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

Как?

Может я не правильно формирую изначальную(с которой хочу вывести на печать) таблицу значений.....

sava1 Подменю пользователя
сообщение 27.05.15, 11:35
Сообщение #2

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2688
Из: Проскуров
Спасибо сказали: 681 раз
Рейтинг: 659.7

А проблема-то в чем?
1.Рисуем макет, заполняем, выводим.
2.Отдаем тз в СКД, настраиваем.

kosalex Подменю пользователя
сообщение 27.05.15, 11:48
Сообщение #3

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Цитата(sava1 @ 27.05.15, 12:35) *
А проблема-то в чем?
1.Рисуем макет, заполняем, выводим.
2.Отдаем тз в СКД, настраиваем.



Нарисовал, а вот заполнить периодом не получается...сам алгоритм перебора и заполнения с исходной таблицы в печатную форму подскажите
Вывожу без СКД

sava1 Подменю пользователя
сообщение 27.05.15, 11:57
Сообщение #4

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2688
Из: Проскуров
Спасибо сказали: 681 раз
Рейтинг: 659.7

ТабДок = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("Макет");
ОбластьМакета = Макет.ПолучитьОбласть("Шапка");    
ОбластьМакета.Параметры.Заголовок = "Підсумкова таблиця за "+ПредставлениеПериода(НачалоДня(НачПериода),КонецДня(КонПериода),"Л=uk_UA; ФП=Истина");    
ТабДок.Вывести(ОбластьМакета);
//
Для каждого сс Из тз Цикл
    ОбластьМакета = Макет.ПолучитьОбласть("Строка");    
    ОбластьМакета.Параметры.Заполнить(сс);            
    ТабДок.Вывести(ОбластьМакета);                                            
КонецЦикла;

так примерно

kosalex Подменю пользователя
сообщение 27.05.15, 12:06
Сообщение #5

Ветеран
*******
Группа: Пользователи
Сообщений: 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 ?

sava1 Подменю пользователя
сообщение 27.05.15, 12:09
Сообщение #6

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2688
Из: Проскуров
Спасибо сказали: 681 раз
Рейтинг: 659.7

Перед перебором тз запоминаем предыдущее значение переменных.
Перебираем строки тз:
если текущее значение не равно предыдущему - выводим в строку

долг=0;
Для каждого сс Из тз Цикл
    Если сс.долг<>долг тогда
          ОбластьМакета = Макет.ПолучитьОбласть("Строка");    
          ОбластьМакета.Параметры.Заполнить(сс);            
          ТабДок.Вывести(ОбластьМакета);                                            
          долг = сс.долг;
    КонецЕсли;
КонецЦикла


Сообщение отредактировал sava1 - 27.05.15, 12:09

kosalex Подменю пользователя
сообщение 27.05.15, 12:30
Сообщение #7

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Цитата(sava1 @ 27.05.15, 13:09) *
Перед перебором тз запоминаем предыдущее значение переменных.
Перебираем строки тз:
если текущее значение не равно предыдущему - выводим в строку

долг=0;
Для каждого сс Из тз Цикл
    Если сс.долг<>долг тогда
          ОбластьМакета = Макет.ПолучитьОбласть("Строка");    
          ОбластьМакета.Параметры.Заполнить(сс);            
          ТабДок.Вывести(ОбластьМакета);                                            
          долг = сс.долг;
    КонецЕсли;
КонецЦикла


либо я тупой либо лыжи не едут.....

Если без макета, к примеру я из этой ТЗ хочу сформировать ТЗ1 в которой есть колонки "Долг", "ПериодС", "ПериодПо", "НачисленоПениЗаПериод", как тогда?

sava1 Подменю пользователя
сообщение 27.05.15, 12:43
Сообщение #8

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2688
Из: Проскуров
Спасибо сказали: 681 раз
Рейтинг: 659.7

типа так, но надо отшлифовать:
долг=0;
долгсумма=0;
период1 =НачПериода;
Для каждого сс Из тз Цикл
    Если сс.долг<>долг тогда
         Если сс.период>период1 Тогда
             нс = тз1.добавить();
            нс.долг = сс.долг;
            нс.периодС = период1;
            нс.периодПо = сс.период;
            нс.начислено = долгсумма;
                                        
           долг = сс.долг;
           период1 = сс.период;
           долгсумма=0;

         КонецЕсли
     иначе
        долгсумма=долгсумма+сс.начислено;
     КонецЕсли;

КонецЦикла

kosalex Подменю пользователя
сообщение 27.05.15, 13:47
Сообщение #9

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Решил вот так:
//Скормим ТЗ в запрос
     Запрос = Новый Запрос;
     Запрос.Текст = "
        | ВЫБРАТЬ
        |   ДеньНачисления,
        |   ЗадолженностьНаДату,
        |    НачисленоПени
        | ПОМЕСТИТЬ
        |   ВременнаяТаблица
        | ИЗ
        |   &Таблица Как Таблица
        |;
        | ВЫБРАТЬ
        |   ЗадолженностьНаДату КАК Долг,
        |   МИНИМУМ(ДеньНачисления) КАК ПериодС,
        |   МАКСИМУМ(ДеньНачисления) КАК ПериодПо,
        |    СУММА(НачисленоПени) КАК НачисленоПени
        | ИЗ
        |   ВременнаяТаблица
        |СГРУППИРОВАТЬ ПО
        |ВременнаяТаблица.ЗадолженностьНаДату
        |";    
        
    Запрос.УстановитьПараметр("Таблица",Таблица);
    ТаблицаДляПечати = Запрос.Выполнить().Выгрузить();

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 18.04.24, 14:02
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!