ЗиК 7.7 заполнение данных по донорским дням в карточке "Сведения о стаже"

07.07.10

Задачи пользователя - Адаптация типовых решений

Сначала оговорюсь, что наша конфигурация неоднократно изменялась и от стандартной очень отличается, поэтому буду приводить куски кода без указания номеров строк. Документы по донорским дням вводятся в систему через документ «Оплата по среднему» вид расчета указывается «Дни доноров» (собственно добавленный нами вид расчета). Так как донорские дни не облагаются страховыми взносами, то и в стаж эти дни попадать не должны. Соответственно при сдачи отчетности в ПФР нужно заполнять карточку «Сведения о стаже». Это конечно можно было сделать вручную, когда документов не больше десятка, но когда их более 250, то бухгалтерам проблематично внести все отклонения в систему. Поэтому автоматизируем процесс :)  

1. Перечисление- СЗВПараметр3ИТС2010 добавить значение «ДОНОРСКИЕ»

      2. Добавить в процедуру глЗаполнитьТаблицуСотрудниковСОсобымиПериодами передаваемый параметр СписокВРДонорскиеДни

Процедура глЗаполнитьТаблицуСотрудниковСОсобымиПериодами(ТаблицаСотрудниковСОсобымиПериодами, СписокСотрудников, ДатаНачала, ДатаОкончания,СписокВРБольничныеЛисты,СписокВРОтпускаБезСохранения,

СписокВРОтпускаИсключаемыеИзСтажа,СписокВРДонорскиеДни)  

 

      3. Добавить запрос а процедуру глЗаполнитьТаблицуСотрудниковСОсобымиПериодами

Запрос=СоздатьОбъект("Запрос"); 

      ТекстЗапроса = "//{{ЗАПРОС(ТаблицаПериодовДействияОтпуск)

      |с ДатаЗапросаС по ДатаЗапросаПо;

      |Сотрудник = ЖурналРасчетов.Зарплата.Объект;

      |ВидРасч = ЖурналРасчетов.Зарплата.ВидРасч;

      |Группировка Сотрудник без групп;

      |Условие(Сотрудник в СписокСотрудников);

      |Условие(ВидРасч в СписокВРОтпускаИсключаемыеИзСтажа);

      |"//}}ЗАПРОС

      ;

            Если Запрос.Выполнить(ТекстЗапроса) =1 Тогда

                  Пока Запрос.Группировка("Сотрудник")=1 Цикл

                             ТаблицаСотрудниковСОсобымиПериодами.НоваяСтрока();

                             ТаблицаСотрудниковСОсобымиПериодами.Сотрудник = Запрос.Сотрудник;

                             ТаблицаСотрудниковСОсобымиПериодами.ЕстьОтпуск = 1;

                  КонецЦикла;

      КонецЕсли;

     Запрос=СоздатьОбъект("Запрос");   //Zarema ДонорскиеДни начало изм. 

      ТекстЗапроса = "//{{ЗАПРОС(ТаблицаПериодовДействияДонорскиеДни)

      |с ДатаЗапросаС по ДатаЗапросаПо;

      |Сотрудник = ЖурналРасчетов.Зарплата.Объект;

      |ВидРасч = ЖурналРасчетов.Зарплата.ВидРасч;

      |Группировка Сотрудник без групп;

      |Условие(Сотрудник в СписокСотрудников);

      |Условие(ВидРасч в СписокВРДонорскиеДни);

      |"//}}ЗАПРОС

      ;

     

      Если Запрос.Выполнить(ТекстЗапроса) =1 Тогда

                  Пока Запрос.Группировка("Сотрудник")=1 Цикл

                             ТаблицаСотрудниковСОсобымиПериодами.НоваяСтрока();

                             ТаблицаСотрудниковСОсобымиПериодами.Сотрудник = Запрос.Сотрудник;

                             ТаблицаСотрудниковСОсобымиПериодами.ЕстьДонорские = 1;

                  КонецЦикла;

      КонецЕсли;                                                         // Zarema  ДонорскиеДни конец изм.

 

  1. В процедуру глСобратьДанныеДляСЗВ2010 добавить список значений

// заполним списоки в.р. которые используем в дальнейшем для выделения периода стажа

      СписокВРБольничныеЛисты = СоздатьОбъект("СписокЗначений"); 

      СписокВРОтпускаБезСохранения = СоздатьОбъект("СписокЗначений");

      СписокВРОтпускаИсключаемыеИзСтажа = СоздатьОбъект("СписокЗначений");

      СписокВРДонорскиеДни = СоздатьОбъект("СписокЗначений"); //Zarema ДонорскиеДни

      Для Сч = 1 По ГруппаРасчетов.УчитыватьДни.Количество() Цикл // эти в.р. определяют отработанное время

                  ВР = ГруппаРасчетов.УчитыватьДни.ПолучитьРасчет(Сч);

                  Если ВР.ВходитВГруппу(ГруппаРасчетов.БольничныеЛисты) = 1 Тогда

                             Если (ВР <> ВидРасчета.ОтпускПоБеременностиПоТекущемуМесяцу)

                             и (ВР <> ВидРасчета.ОтпускПоБеременности)

                             и (ВР <> ВидРасчета.ОтпускПоБеременностис2004)

                             и (ВР <> ВидРасчета.ОтпускПоБеременностис2005)

                             и (ВР <> ВидРасчета.ОтпускПоБеременностис2007)

                             и (ВР <> ВидРасчета.ОтпускПоБеременностис2010) Тогда

                                         // больничные листы, кроме отпуска по беременности и родам

                                         СписокВРБольничныеЛисты.ДобавитьЗначение(ВР);

                             КонецЕсли;

                  ИначеЕсли (ВР = ВидРасчета.ОтпускЗаСвойСчетКраткосрочный)или (ВР = ВидРасчета.ОтпускЗаСвойСчетДолгосрочный)  Тогда

                             //отпуска без сохранения заработной платы  

                             СписокВРОтпускаБезСохранения.ДобавитьЗначение(ВР);

                             СписокВРОтпускаИсключаемыеИзСтажа.ДобавитьЗначение(ВР);

                  ИначеЕсли (ВР = ВидРасчета.ОтпускУчебный)  Тогда

                      СписокВРОтпускаИсключаемыеИзСтажа.ДобавитьЗначение(ВР);

                  ИначеЕсли (ВР = ВидРасчета.ДниДоноров) Тогда         //Zarema ДонорскиеДни

                             СписокВРДонорскиеДни.ДобавитьЗначение(ВР);

                  КонецЕсли;

      КонецЦикла; 

// получим таблицу значений в которй будут сотрудники, имевшие в периоде отчета

      // отпуск без сохранения ЗП, больничные или отпуска, исключаемые из льготного стажа

      ТаблицаСотрудниковСОсобымиПериодами=СоздатьОбъект("ТаблицаЗначений");

      ТаблицаСотрудниковСОсобымиПериодами.НоваяКолонка("Сотрудник");

      ТаблицаСотрудниковСОсобымиПериодами.НоваяКолонка("ЕстьБЛ", "Число", 1, 0);

      ТаблицаСотрудниковСОсобымиПериодами.НоваяКолонка("ЕстьОтпускЗаСвойСчет", "Число", 1, 0);

      ТаблицаСотрудниковСОсобымиПериодами.НоваяКолонка("ЕстьОтпуск", "Число", 1, 0);

      ТаблицаСотрудниковСОсобымиПериодами.НоваяКолонка("ЕстьДонорские","Число",1,0); //Zarema ДонорскиеДни

глЗаполнитьТаблицуСотрудниковСОсобымиПериодами(ТаблицаСотрудниковСОсобымиПериодами, Сотрудники, ДатаНачала, ДатаОкончания,

                                                           СписокВРБольничныеЛисты,СписокВРОтпускаБезСохранения,СписокВРОтпускаИсключаемыеИзСтажа,

СписокВРДонорскиеДни);   // Zarema ДонорскиеДни

     

    Обнуляем все в той же процедуре значение ЕстьДонорские и получаем значения из таблицы 

ЕстьОтпуск = 0;

ЕстьБЛ = 0;

ЕстьОтпускЗаСвойСчет = 0;

ЕстьДонорские=0;     // Zarema ДонорскиеДни

НомСтрокиТОС = "";

                        ТаблицаСотрудниковСОсобымиПериодами.НайтиЗначение(Сотрудник,НомСтрокиТОС,"Сотрудник");

                             Если НомСтрокиТОС>0 Тогда

                                         ЕстьБЛ = ТаблицаСотрудниковСОсобымиПериодами.ПолучитьЗначение(НомСтрокиТОС,"ЕстьБЛ");

                                         ЕстьОтпускЗаСвойСчет = ТаблицаСотрудниковСОсобымиПериодами.ПолучитьЗначение(НомСтрокиТОС,"ЕстьОтпускЗаСвойСчет");

                                         ЕстьОтпуск = ТаблицаСотрудниковСОсобымиПериодами.ПолучитьЗначение(НомСтрокиТОС,"ЕстьОтпуск");

                                         ЕстьДонорские = ТаблицаСотрудниковСОсобымиПериодами.ПолучитьЗначение(НомСтрокиТОС,"ЕстьДонорские");  // Zarema ДонорскиеДни

                             КонецЕсли;

    Добавляем новое условие если есть донорские дни все в той же процедуре

 Если ЕстьБЛ = 1 Тогда

ТаблицаБЛ="";

       Если глЗаполнитьТаблицуПериодовДействияВР(Сотрудник,ТаблицаБЛ,Начало, Окончание, СписокВРБольничныеЛисты)=1 Тогда

//Создадим набор для стажа, которым будем замещать периоды

        НаборДляСтажа.УдалитьВсе();

        НаборДляСтажа.ДобавитьЗначение("");

        НаборДляСтажа.ДобавитьЗначение("");

        НаборДляСтажа.ДобавитьЗначение(Перечисление.СЗВПараметр3ИТС2010.ВРНЕТРУД);

        НаборДляСтажа.ДобавитьЗначение("");

        НаборДляСтажа.ДобавитьЗначение("");

        //впишем периоды отпусков за свой счет 

        ТаблицаБЛ.ВыбратьСтроки();

                  Пока ТаблицаБЛ.ПолучитьСтроку()=1 Цикл

                        НачалоПериода=ТаблицаБЛ.НачалоПериода;

                        ОкончаниеПериода=ТаблицаБЛ.ОкончаниеПериода;

                        //"впишем" во временную таблицу период

                        глВписатьОсновнуюЗаписьОСтаже2010("Вписать",ВремТаблицаСоСтажем,НомерЗаписи,НачалоПериода,ОкончаниеПериода, НаборДляСтажа);

                КонецЦикла;

           КонецЕсли;

       КонецЕсли;                                        

   // Zarema ДонорскиеДни          началоизм.

   Если  ЕстьДонорские = 1 Тогда

   ТаблицаДонор="";

   Если глЗаполнитьТаблицуПериодовДействияВР(Сотрудник,ТаблицаДонор,Начало, Окончание, СписокВРДонорскиеДни)=1 Тогда

 //Создадим набор для стажа, которым будем замещать периоды

 НаборДляСтажа.УдалитьВсе();

 НаборДляСтажа.ДобавитьЗначение("");

 НаборДляСтажа.ДобавитьЗначение("");

 НаборДляСтажа.ДобавитьЗначение(Перечисление.СЗВПараметр3ИТС2010.ДОНОРСКИЕ);

 НаборДляСтажа.ДобавитьЗначение("");

 НаборДляСтажа.ДобавитьЗначение("");

 ТаблицаДонор.ВыбратьСтроки();

 Пока ТаблицаДонор.ПолучитьСтроку()=1 Цикл

     НачалоПериода=ТаблицаДонор.НачалоПериода;

    ОкончаниеПериода=ТаблицаДонор.ОкончаниеПериода;

глВписатьОсновнуюЗаписьОСтаже2010("Вписать",ВремТаблицаСоСтажем,НомерЗаписи,НачалоПериода,ОкончаниеПериода, НаборДляСтажа);

       КонецЦикла;

    КонецЕсли;

  КонецЕсли;                          

                      // Zarema ДонорскиеДни      конецизм.             

 

                     

 

См. также

Улучшенная обработка "Внешние печатные формы" для типовых конфигураций на базе 1С 7.7

Печатные формы Адаптация типовых решений Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Приятное улучшение обработки "Внешние печатные формы" для типовых конфигураций на базе 1С 7.7 для более комфортной работы с "любимой семерочкой".

1 стартмани

04.02.2022    3210    1    igor7777    0    

3

Расчет страховых взносов в 1С 7.7 "Учет и отчетность предпринимателя, ред. 1.2" с апреля 2020

Адаптация типовых решений Платформа 1С v7.7 Конфигурации 1cv7 Россия Бухгалтерский учет ФОМС, ЕФС Бесплатно (free)

В этой статье описано, какие небольшие изменения можно внести в модуль документа Начисление налогов с ФОТ, чтобы правильно рассчитывались страховые взносы с 1 апреля 2020 г.

09.04.2020    19795    Юджин58    39    

5

Дистрибьюция 7.7. Часть 1. Жизненный цикл заявки покупателя. Одна заявка покупателя, много адресов доставки.

Адаптация типовых решений Платформа 1С v7.7 1С:Комплексная 7.7 1С:Торговля и склад 7.7 Управленческий учет Бесплатно (free)

Описан способ работы с учетом расписания с приоритетными покупателями - торговыми сетями (основными покупателями) в торговой или комплексной учетной системе на 1С 7.7. Множественная заявка покупателя на несколько торговых точек.

14.10.2019    6035    ksnik    14    

3

Как в торговле 7.7 печатать код ТНВЭД в счет-фактуре

Операции по ВЭД Адаптация типовых решений Оперативный учет 7.7 1С:Торговля и склад 7.7 Россия Бухгалтерский учет НДС Бесплатно (free)

В данной статье хотел поделиться опытом, как в Торговле 7.7 ( релиз 994) сделать возможность выводить код ТНВЭД в печатную форму счета-фактуры. Сразу скажу, что нужно это только тем, кто осуществляет экспорт в страны таможенного союза. Остальные могут не волноваться.

15.11.2017    11829    AndKovalchuk    0    

1

Предельные базы взносов в ПФР, ФСС, ФФОМС 2015 в 1С: Бухгалтерия 7.7

Зарплата Адаптация типовых решений Бухгалтерский учет 7.7 1С:Бухгалтерия 7.7 Россия Бухгалтерский учет Абонемент ($m)

Реализация Постановления Правительства РФ 1316 от 04.12.14 для типовой конфигурации "Бухгалтерский учет 7.7" рел. 7.70.590

1 стартмани

31.12.2014    23950    9    Sergey1CSpb    2    

0
Комментарии
Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Storm123 25.07.10 00:18 Сейчас в теме
*СЗВПараметр3ИТС2010 добавить значение «ДОНОРСКИЕ»*

А пенсионный такой параметр примет? Может пустое значение там лучше оставлять?
2. Zarema 2 25.07.10 18:38 Сейчас в теме
Кстати, тоже возникал такой вопрос. Но пенсионный нам на это ничего не ответил. В принципе не так и сложно вставить пустое значение.
Оставьте свое сообщение