Доначисление страховых взносов на обязательное страхование от НС и ПЗ в Бухгалтерии 7.7 и УСН 7.7 для Договора подряда

Программирование - Практика программирования

Во всех источниках, которые мне встречались, написано, что Страховые взносы НС и ПФ нужно начислять, если это указано в Договоре подряда.

Во всех источниках , которые мне встречались, написано, что Страховые взносы НС и ПФ нужно начислять, если это указано в Договоре подряда. В конфигурациях 7.70.637 (бухгалтерия) и 7.70.279 (УСН) для договорников (Код НДФЛ 2010) эти взносы не начисляются. Но если все же нужно их начислить, то можно в конфигурации добавить новый документ. Экранная форма (на рисунке) достаточно простая.

В модуле формы нужно написать:


Перем ОбработчикСообщений;
Перем НачальнаяДатаДокумента;
Перем ДатаДокумента;
Перем Отказ;

//*****************************************************************************
// Проверка()
//
// Описание:
//  Проверяет является ли данный документ единственным документом НачислениеСтраховыхВзносовОтНСиПЗдляДоговоровПодряда
// в течение данного месяца.
//
Процедура Проверка(Отказ)
    
    Отказ=0;
    Если ДатаДокумента <> ДатаДок Тогда
        Дубликат = СоздатьОбъект("Документ.НачислениеСтраховыхВзносовОтНСиПЗдляДоговоровПодряда");
        Если (Дубликат.ВыбратьДокументы(НачМесяца(ДатаДок),КонМесяца(ДатаДок))=1) И (Дубликат<>ТекущийДокумент())Тогда
            Предупреждение("За "+Формат(ДатаДок,"Д ММММГГГГ")+" страховой взнос рассчитывался
            |документом """+Дубликат+" от "+ДатаДок+""";
            |Для расчета следует использовать этот документ.");
            Отказ=1;
        КонецЕсли;
        ДатаДокумента = ДатаДок;
    КонецЕсли;
    
КонецПроцедуры // Проверка()

////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ И ФУНКЦИИ, ВЫЗЫВАЕМЫЕ ИЗ ФОРМУЛ ЭЛЕМЕНТОВ ДИАЛОГА
//

//*****************************************************************************
// ПриИзмененииДаты()
//
// Вызывается из формул элементов диалога:
//  Поле ввода ДатаДок.
//
Процедура ПриИзмененииДатаДок()
    
    ДатаДок = КонМесяца(ДатаДок);
    Проверка(Отказ);
    Если Отказ=1 Тогда
        Возврат;
    КонецЕсли;
    
КонецПроцедуры // ПриИзмененииДаты()

//******************************************************************************
// Заполнить()
Процедура Заполнить()  
    
    Если КоличествоСтрок()>0 Тогда
        Если Вопрос("Перед заполнением таблица документа будет очищена. Продолжить?","Да+Нет")="Нет" Тогда
            Возврат;
        КонецЕсли;
        
        УдалитьСтроки();
    КонецЕсли;

    Начисления=СоздатьОбъект("Документ.НачислениеЗП");
    Начисления.ВыбратьДокументы(НачМесяца(ДатаДок), КонМесяца(ДатаДок));
    Пока Начисления.ПолучитьДокумент()=1 Цикл
        Если (Начисления.Проведен()=1) И (Начисления.ВидНачисления.ВидДохода.Код="2010") Тогда
            Начисления.Выбратьстроки();
            Пока Начисления.ПолучитьСтроку()=1 Цикл
                НоваяСтрока();
                Сотрудник=Начисления.Сотрудник;
                Сумма=Начисления.Оклад;
                Документ=Начисления.ТекущийДокумент();
            КонецЦикла;
        КонецЕсли;
    КонецЦикла;
    
КонецПроцедуры 

//****************************************************************************** 
//Вызывается из формулы элемента диалога "Сотудник"

Процедура ПриВыбореСотрудника()
    
    Начисления=СоздатьОбъект("Документ.НачислениеЗП");
    Начисления.ВыбратьДокументы(НачМесяца(ДатаДок), КонМесяца(ДатаДок));
    Пока Начисления.ПолучитьДокумент()=1 Цикл
        Если (Начисления.Проведен()=1) И (Начисления.ВидНачисления.ВидДохода.Код="2010") Тогда
            Начисления.Выбратьстроки();
            Пока Начисления.ПолучитьСтроку()=1 Цикл
                Если Начисления.Сотрудник=Сотрудник Тогда
                    Сумма=Начисления.Оклад;
                    Документ=Начисления.ТекущийДокумент();
                КонецЕсли;
            КонецЦикла;
        КонецЕсли;
    КонецЦикла;
    
КонецПроцедуры

//******************************************************************************
//    ПровестиИзФормы(НажатаКнопкаОК=0)
//
//    Параметры:
//        НажатаКнопкаОК - число, 1 - нажали кнопку ОК, 0 - нажали кнопку провести
//
//    Вызывается из формул элементов диалога:
//        Провести, ОК
//
//    Описание:
//        Записывает и проводит документ
//
Процедура ПровестиИзФормы(НажатаКнопкаОК=0) 
    
    ПриЗаписиПерепроводить(0);
    Записать();
    ПриЗаписиПерепроводить(1);            
    Если Провести(,ОбработчикСообщений)=0 Тогда
        глДобавитьСообщение(ОбработчикСообщений, "Документ не проведен.",ТекущийДокумент());
    КонецЕсли;
    
КонецПроцедуры // ПровестиИзФормы()

//******************************************************************************
// Предопределенная процедура
//
Процедура ВводНового() 
    
    ДатаДок = КонМесяца(РабочаяДата());
    ДатаДокумента = Дата(0);
    Проверка(Отказ);

КонецПроцедуры

//******************************************************************************
//    Предопределенная процедура
//
Процедура ПриОткрытии()
    
       НачальнаяДатаДокумента = ДатаДок;
    
КонецПроцедуры    // ПриОткрытии 

 

а в модуле документа:

 

//******************************************************************************
//
Процедура ОбработкаПроведения(ОбработчикСообщений)
	
	Сч69_11     = СчетПоКоду("69.11");

//	Операция.Содержание = СодержаниеОперации;
	ФСС_НС = глПолучитьНалог("ФСС_НС");
	СчФСС_НС = ФСС_НС.Счет;
	СубФСС_НС_1 = ФСС_НС.Субконто1;
	СтФССотНС = ФСС_НС.Ставка.Получить(КонМесяца(ДатаДок));

	ВыбратьСтроки();
	Пока ПолучитьСтроку() = 1 Цикл
		
		Если (Документ.ДатаДок < НачМесяца(ДатаДок)) ИЛИ (Документ.ДатаДок > КонМесяца(ДатаДок)) Тогда
			
			Сообщить("В строке "+НомерСтроки+" документ начисления не входит в рассматриваемый период","!!!"); 
			Сообщить("Документ не проводится","!!!"); 
			Возврат;
			
		КонецЕсли;
		
		Если Документ.ИспользоватьСчетДокумента = 1 Тогда
			СчетДебета = Документ.СчетЗатрат;
		Иначе
		    СчетДебета = Сотрудник.СчетЗатрат.Получить(КонМесяца(ДатаДок));
		КонецЕсли;
		
        Если ПустоеЗначение(СчетДебета) = 1 Тогда
			Если Документ.ИспользоватьСчетДокумента = 1 Тогда
				ТекстСообщения = "Не выбран счет отнесения затрат";
				глСообщениеПроведения(ТекстСообщения, ТекущийДокумент(), 1);
				глНеПроводить(ТекущийДокумент());
				
			Иначе
				ТекстСообщения = "Не выбран счет отнесения затрат для сотрудника "+Сотрудник;
				глСообщениеПроведения(ТекстСообщения, ТекущийДокумент(), 1,, Сотрудник);
				глНеПроводить(ТекущийДокумент());
			КонецЕсли;
			Возврат;
		КонецЕсли;
		
 		// Дт <Счет учета затрат> Кт 69.11
		Если Сумма <> 0 Тогда
			Операция.НоваяПроводка();
			Операция.НомерЖурнала = "ЗП";
			Операция.СодержаниеПроводки = "Начислено НС и ПЗ";
			Операция.Дебет.Счет = СчетДебета;
			Если Документ.ИспользоватьСчетДокумента = 1 Тогда
				Операция.Дебет.Субконто(1, Документ.Субконто1);
				Операция.Дебет.Субконто(2, Документ.Субконто2);
				Операция.Дебет.Субконто(3, Документ.Субконто3);
			Иначе
				Операция.Дебет.Субконто(1, Сотрудник.Субконто1.Получить(КонМесяца(ДатаДок)));
				Операция.Дебет.Субконто(2, Сотрудник.Субконто2.Получить(КонМесяца(ДатаДок)));
				Операция.Дебет.Субконто(3, Сотрудник.Субконто3.Получить(КонМесяца(ДатаДок)));
			КонецЕсли;
			Операция.Кредит.Счет = Сч69_11;
			Операция.Кредит.Субконто(1, СубФСС_НС_1);
			Операция.Сумма = Окр(Сумма * СтФССотНС/100,2,1);
		КонецЕсли;
	КонецЦикла;
	
	Операция.Записать();
	
	ТекстСообщения = "Документ проведен.";
	глСообщениеПроведения(ТекстСообщения, ТекущийДокумент(), 0);
	глПриПроведении(ТекущийДокумент());

КонецПроцедуры // ОбработкаПроведения

Документ формируется не чаще, чем один раз в месяц. По кнопке Заполнить табличная часть заполняется всеми начислениями сотрудников за месяц, у которых код по НДФЛ равен 2010 (Выплаты по договорам гражданско-правового характера (за исключ. авторских)). Табличную часть можно отредактировать.

Результатом проведения документа будут сформированные проводки Дт <Счет затрат>  Кт  <Счет ФСС_НС>  <Сумма проводки>, где Счет затрат получается из соответствующего документа начисления, Счет ФСС_НС - счет Расчетов по обязательному социальному страхованию от несчастных случаев на производстве и профессиональных заболеваний, а Сумма проводки вычисляется, как начисленная сумма, умноженная на Ставку ФСС НС и ПЗ.                            

См. также

В этой теме еще нет сообщений.
Оставьте свое сообщение