Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 04:35

Как посчитать сумму в колонках ТЧ отчета в расчетно платежной ведомости?

Автор Vladimir369, 16 фев 2017, 12:41

0 Пользователей и 1 гость просматривают эту тему.

Vladimir369

Народ, помогите пожалуйста, нужно чтобы сумма считалась в каждой колонке документа. А она считается только по колонке ИтогоКВыплате.

Заранее спасибо.






// Подвал документа.
      ОбластьМакетаПодвал.Параметры.Заполнить(СтрокаОтчета);
      ВедомостьИтого = 0;
      
      ТабДокумент.Вывести(ОбластьМакетаШапкаДокумента);
      
      ТабДокумент.Вывести(ОбластьМакетаШапкаТаблицы);
      
      НомерПП = 1;
      ВсегоСтрокДокумента = СтрокаОтчета.Строки.Количество();   
      ИтогоПоСтранице = 0;
      
      
      Для каждого СтрокаФизЛица из СтрокаОтчета.Строки Цикл
         
         ОбластьМакетаСтрока.Параметры.Заполнить(СтрокаФизЛица);
         ОбластьМакетаСтрока.Параметры.НомерПП  = НомерПП;
         Основные        = 0;
         Больничный      = 0;
         ДниБолезни      = 0;
         Пособия        = 0;
         Колонка5        = 0;
         Колонка6        = 0;
         Колонка7        = 0;
         Колонка8        = 0;
         ВсегоНачислено  = 0;
         ЗаработнаяПлата = 0;
         Колонка16       = 0;
         Колонка17       = 0;
         НДФЛ            = 0;
         СтраховойВзнос  = 0;
         ВсегоУдержано   = 0;
         
         Для каждого СтрокаНачисление из СтрокаФизЛица.Строки Цикл
            Если ОсновныеНачисления[СтрокаНачисление.ВидРасчета] <> Неопределено тогда
               Основные = Основные + СтрокаНачисление.Результат;
            ИначеЕсли ПособияПоУходу.НайтиПоЗначению(СтрокаНачисление.ВидПособияСоциальногоСтрахования) <> Неопределено Тогда
               Пособия = Пособия + СтрокаНачисление.Результат;
            ИначеЕсли Больничные.НайтиПоЗначению(СтрокаНачисление.ВидРасчета) <> Неопределено Тогда
               Больничный = Больничный + СтрокаНачисление.Результат;
               ДниБолезни = ДниБолезни + СтрокаНачисление.ДниБолезни;
            ИначеЕсли СписокНачисленийКолонка1[СтрокаНачисление.ВидРасчета] <> Неопределено тогда
               Колонка5 = Колонка5 + СтрокаНачисление.Результат;
            ИначеЕсли СписокНачисленийКолонка2[СтрокаНачисление.ВидРасчета] <> Неопределено тогда
               Колонка6 = Колонка6 + СтрокаНачисление.Результат;
            ИначеЕсли СписокНачисленийКолонка3[СтрокаНачисление.ВидРасчета] <> Неопределено тогда
               Колонка7 = Колонка7 + СтрокаНачисление.Результат;
            ИначеЕсли СписокНачисленийКолонка4[СтрокаНачисление.ВидРасчета] <> Неопределено тогда
               Колонка8 = Колонка8 + СтрокаНачисление.Результат;
            ИначеЕсли СписокУдержанийКолонка1[СтрокаНачисление.ВидРасчета] <> Неопределено тогда
               Колонка16 = Колонка16 + СтрокаНачисление.Результат;
            ИначеЕсли СписокУдержанийКолонка2[СтрокаНачисление.ВидРасчета] <> Неопределено тогда
               Колонка17 = Колонка17 + СтрокаНачисление.Результат;
            ИначеЕсли СтрокаНачисление.ВидРасчета = "НДФЛ" тогда
               НДФЛ = НДФЛ + СтрокаНачисление.Результат;
            ИначеЕсли СтрокаНачисление.ВидРасчета = "СтраховойВзнос" тогда
               СтраховойВзнос = СтраховойВзнос + СтрокаНачисление.Результат;
            ИначеЕсли СтрокаНачисление.ВидРасчета = "ЗаработнаяПлата" тогда
               ЗаработнаяПлата = ЗаработнаяПлата + СтрокаНачисление.Результат;
            КонецЕсли;
            ВсегоНачислено = Основные + Колонка5 + Колонка6 + Колонка7 + Колонка8 + Больничный + Пособия;
            ВсегоУдержано  = ЗаработнаяПлата + Колонка16 + Колонка17 + НДФЛ + СтраховойВзнос;
         КонецЦикла;
         
         ОбластьМакетаСтрока.Параметры.Основные       = Основные;
         ОбластьМакетаСтрока.Параметры.Больничный     = Больничный;
         Если ЗаполнятьКБК Тогда
            ОбластьМакетаСтрока.Параметры.ДниБолезни = ДниБолезни;
         КонецЕсли;
         ОбластьМакетаСтрока.Параметры.Пособия        = Пособия;
         ОбластьМакетаСтрока.Параметры.Колонка5       = Колонка5;
         ОбластьМакетаСтрока.Параметры.Колонка6       = Колонка6;
         ОбластьМакетаСтрока.Параметры.Колонка7       = Колонка7;
         ОбластьМакетаСтрока.Параметры.Колонка8       = Колонка8;
         ОбластьМакетаСтрока.Параметры.ВсегоНачислено = ВсегоНачислено;
         ОбластьМакетаСтрока.Параметры.Аванс          = ЗаработнаяПлата;
         ОбластьМакетаСтрока.Параметры.НДФЛ           = НДФЛ;
         ОбластьМакетаСтрока.Параметры.СтраховойВзнос = СтраховойВзнос;
         ОбластьМакетаСтрока.Параметры.Колонка16      = Колонка16;
         ОбластьМакетаСтрока.Параметры.Колонка17         = Колонка17;
         ОбластьМакетаСтрока.Параметры.ВсегоУдержано     = ВсегоУдержано;
         
         ОбластьМакетаСтрока.Параметры.СуммаПоВедомости  = ?(ЗначениеЗаполнено(СтрокаФизЛица.СуммаПоВедомости), СтрокаФизЛица.СуммаПоВедомости, 0);
         Если НЕ ИспользуетсяПолеВедомость тогда
            ОбластьМакетаСтрока.Параметры.ЗаписьОДепонировании = "";
         КонецЕсли;

         ВедомостьИтого = ВедомостьИтого + ?(ЗначениеЗаполнено(СтрокаФизЛица.СуммаПоВедомости), СтрокаФизЛица.СуммаПоВедомости, 0);
         
         ВывестиПодвалЛиста = Не ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ТабДокумент, ВыводимыеОбласти);
         Если Не ВывестиПодвалЛиста и НомерПП = ВсегоСтрокДокумента Тогда
            //все строки отчета перебрали, они все еще умещаются на странице
            ВывестиПодвалЛиста = Не ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ТабДокумент, ВыводимыеОбластиСПодвалом);
         КонецЕсли;
         
         Если ВывестиПодвалЛиста тогда
            ОбластьПодвалСтр.Параметры.Основные = ИтогоПоСтранице;
            ОбластьПодвалСтр.Параметры.ИтогоКВыплате = ИтогоПоСтранице;
            ТабДокумент.Вывести(ОбластьПодвалСтр);
            ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
            ТабДокумент.Вывести(ОбластьМакетаШапкаТаблицы);
            ИтогоПоСтранице = 0;
         КонецЕсли;
         
         ИтогоПоСтранице = ИтогоПоСтранице + ?(ЗначениеЗаполнено(СтрокаФизЛица.СуммаПоВедомости), СтрокаФизЛица.СуммаПоВедомости, 0);

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

Теги: Сумма 

Похожие темы (5)

Рейтинг@Mail.ru

Поиск