Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Метод Рассчитать() обнуляет результат записи в журнале рассчетов
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
Мичман Харитонов
Доброго дня!

Конфигурация ЗиК (самописная), дописываю процедуру проведения документа "ПриказПоОтпуску", чтобы он, как теперь положено, формировал отчисления в Пенсионный фонд, если тип отпуска - ПоБеременностиИРодам.

В Процедуру ОбработкаПроведения() добавил вот такой кусок кода

    Если  ВидОтпуска = Перечисление.ВидыОтпуска.ПоБеременностиИРодам Тогда
                      //вводим 2% отчислений по ЕСВ с отпуска по беременности и родам
                                Пенс=0;
            Сообщить(Начислено);

                      Начало=ДатаНачала;
            Окончание=ДатаОкончания;
            ОблагаемоеПенс=Начислено;
            Льготы = глПолучитьЛьготыДляНалога(Сотрудник,"Пенсионный",Начало);
            тбШкалаПенс = глПолучитьШкалуДляНалога(Сотрудник,"Пенсионный",ДатаДок,Льготы);
            //берем 2% пенсионного
            тбШкалаПенс.ВыбратьСтроки(); i=1;
            Пока i<=тбШкалаПенс.КоличествоСтрок() цикл  
                тбШкалаПенс.ПолучитьСтрокуПоНомеру(i);
                если Сокрлп(тбШкалаПенс.Код)<>"ПенсЕСВбольн"   тогда
                    тбШкалаПенс.УдалитьСтроку();
                    ПРодолжить;
                КонецЕсли;
                i=i+1;
            КонецЦикла;    
            тбШкалаПенс.ПолучитьСтрокуПоНомеру(1);
            //Пенс = глРассчитатьНалогПоШкале(ОблагаемоеПенс, тбШкалаПенс, Льготы,"","Пенсионный");
            Пенс=ОблагаемоеПенс*тбШкалаПенс.Ставка;
            Сообщить(Пенс);
            СпрХО = СоздатьОбъект("Справочник.ХозОперации");  
            СпрХО.НайтиПоНаименованию("Пенсионный с больничного листа",0,1);
            Сообщить(СпрХО.Наименование);
            Зрп.УстановитьРеквизит("ХозОперация",СпрХО.ТекущийЭлемент());  
            //Зрп.ВВестиРасчет(Сотрудник, ВидРасчета.Пенсионный2004, ДатаДок,ДатаДок , Пенс);
            Зрп.ВВестиРасчет(Сотрудник, ВидРасчета.Пенсионный2004, ДатаНачала,ДатаОкончания, Пенс);
            
            //конец ЕСВ

    КонецЕсли;

И все бы ничего, но после того, как отрабатывает метод Рассчитать(),
в журназе расчетов из записей с пенсионными исчезает ХозОперация, и обнуляется результат.

Подскажите пожалуйста, в чем может быть причина? Гугл не помог ((


 ! 

Правила, 5
 
Мичман Харитонов
Вопрос решен, спасибо всем, кто помог ))
Vofka
Огласите решение для всех.
faiden
Цитата(Мичман Харитонов @ 15.07.13, 14:03) необходимо зарегистрироваться для просмотра ссылки
Доброго дня!

Конфигурация ЗиК (самописная), дописываю процедуру проведения документа "ПриказПоОтпуску", чтобы он, как теперь положено, формировал отчисления в Пенсионный фонд, если тип отпуска - ПоБеременностиИРодам.

И все бы ничего, но после того, как отрабатывает метод Рассчитать(),
в журназе расчетов из записей с пенсионными исчезает ХозОперация, и обнуляется результат.

Подскажите пожалуйста, в чем может быть причина? Гугл не помог ((


1. Абсолютно правильно делает, ибо:
2. Почему вы решили, что документ "ПриказПоОтпуску" должен формировать какие-то записи в журнале расчетов? Насколько я знаю, ЕСВ и НДФЛ в журнал расчетов впихивет документ "РасчетЗарплаты". Правда все это в несамописной конфигурации.
3. Почему бы не воспользоваться штатными средствами, а именно "Группы расчетов" -> "БазаЕСВ". И если уж совсем не помогает, то ковырять модуль расчета ЕСВ, хотя мне вполне хватило групп расчетов. Правда конфигурация не самописная, но изрядно рихтованная.
Мичман Харитонов
Цитата(faiden @ 16.07.13, 21:52) необходимо зарегистрироваться для просмотра ссылки
1. Абсолютно правильно делает, ибо:2. Почему вы решили, что документ "ПриказПоОтпуску" должен формировать какие-то записи в журнале расчетов? Насколько я знаю, ЕСВ и НДФЛ в журнал расчетов впихивет документ "РасчетЗарплаты". Правда все это в несамописной конфигурации.3. Почему бы не воспользоваться штатными средствами, а именно "Группы расчетов" -> "БазаЕСВ". И если уж совсем не помогает, то ковырять модуль расчета ЕСВ, хотя мне вполне хватило групп расчетов. Правда конфигурация не самописная, но изрядно рихтованная.


1) У меня приказ по отпуску формирует записи в журнале расчетов. Кем и зачем это было сделано до меня - неизвестно.
2) Аналогично первому пункту
3) такой группы расчета у меня просто нет ((. Возможно, не поверите, но...


Цитата(Vofka @ 16.07.13, 17:32) необходимо зарегистрироваться для просмотра ссылки
Огласите решение для всех.

Я не говорю, что нашел правильное решение, но это работает.

Добавил следующий кусок кода.
После расчета записей:
        Если  ВидОтпуска = Перечисление.ВидыОтпуска.ПоБеременностиИРодам Тогда
            Зрп.ВыбратьЗаписиПоДокументу(ТекущийДокумент());
    Зрп.ВыбратьЗаписиПоОбъекту(Сотрудник,ДатаНачала,ДатаОкончания);
               Пока Зрп.ПолучитьЗапись() = 1 Цикл
        Если (Зрп.ВидРасч=ВидРасчета.Пенсионный2004)И(Зрп.Результат=0) Тогда
        Зрп.Результат=Переменная(Зрп.ДатаНачала,Зрп.ДатаОкончания);
                    СпрХО = СоздатьОбъект("Справочник.ХозОперации");  
            СпрХО.НайтиПоНаименованию("Пенсионный с больничного листа",0,1);
            Зрп.УстановитьРеквизит("ХозОперация",СпрХО.ТекущийЭлемент());  
        Зрп.Записать();
        КонецЕсли;    
    КонецЦикла;
        КонецЕсли;

Документ нормально формирует записи в журнале расчетов.
mister-x
Цитата(Мичман Харитонов @ 15.07.13, 13:03) необходимо зарегистрироваться для просмотра ссылки
дописываю процедуру проведения документа

тему в розділ програмісту icon_beer17.gif
Vofka
mister-x, перенес, спасибо! smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.