Главная » 1С Предприятие » ВИД Ы  РАСЧЕТО В ДОКУМЕНТ А ПРЕМИ Я

0

7.10.1. ПРЕМИЯ КОЭФФИЦИЕНТОМ

ВР  ПремияКоэф_2  является  самовытесняющимся. Включен  в  группу  ВР  ВсеНачисления_2,  которая применяется при  оценке налога  и размера  выплат в  банк.  Является  согласно  правилам перерасчета  ведущим по  отношению   к  ВР  НДФЛ2 ,  ВБанк_2 и Премия 1234_2  (разд.  7.7).  То есть при вводе расчета  с ВР ПремияКоэф_2 или ручном  исправлении  его  результата   атрибут Рассчитана  нефиксированных  расчетов  с  такими ВР и не имеющих вдобавок неотмененной ручной  правки становится равен нулю.  Чтобы  получить  верные  результаты,  придется  после   ввода расчета  с  ВР  ПремияКоэф_2 рассчитать заново либо  зависимые расчеты, либо весь объект.

Важно, однако, иметь в  виду,  что  если  сначала  ввести ручную  правку расчета  с ВР ПремияКоэф_2, затем  снять  флаг  ручной  правки  и  рассчитать  заново  запись с  новым результатом,  то  атрибут Рассчитана  зависимых расчетов  не  изменится,  а  общий  результат  расчета  объекта  окажется неверным   (хотя  система  будет  "думать",  что  объект рассчитан).

Напомним, что  рассчитанные записи  сопровождаются в  ЖЗ  иконкой , а нерассчитанные иконкой

процедура ПровестиРасчет()         //      Процедура модуля ВР ПремияКоэф_2 перем жз;

// Процедура выполняется при проведении расчета с ВР ПремияКоэф_2

// Имеет следующий алгоритм:

// По значению реквизита ЖЗ сторокаДок в документе-родителе ищется запись,

// породившая расчет, в этой записи читается значение реквизита к3,

//зная которое находим искомую величину премии. Переменная всего Часов,

// необходимая для расчета результата, является реквизитом ЖЗ

// Если расчет вводился до ввода документа Табель, то всегоЧасов = 0

если всегоЧасов = 0 тогда                  //           Найдем значение реквизита всегоЧасов жз = СоздатьОбъект("ЖурналРасчетов.Зарплата_2"); жз.ВыбратьПериодПоОбъекту(Объект,  жз.НачалоТекущегоПериода());

пока жз.ПолучитьЗапись() = 1 цикл

если жз.ВидРасч = ВидРасчета.Оклад_2 тогда всегоЧасов = жз.ВсегоЧасов;

конецЕсли;

конецЦикла; // пока конецЕсли; Документ.ПолучитьСтрокуПоНомеру(строкаДок); результат = всегоЧасов * Документ.к3;

конецПроцедуры // ПровестиРасчет

Источник: Бартеньев О. В. 1С:Предприятие:  программирование для  всех.  Базовые объекты и расчеты на одной дискете. М.: Диалог-МИФИ, 2005. 464 с.

По теме:

  • Комментарии