Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: начисление заработной платы
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
tony58
После обновления конфигурации после 16.12.2011 года релиз 7.70.040
при формировании документа начисление заработной платы не могу расчитать документ выдавет ошибку :
ПерСтавка.ИспользоватьОбъект("Ставка",НиО);
{Документ.НачислениеЗП.Форма.Модуль(894)}: Ставка не является константой или периодическим параметром!
-=VJ=-
Цитата(tony58 @ 07.01.12, 9:40) необходимо зарегистрироваться для просмотра ссылки
ПерСтавка.ИспользоватьОбъект("Ставка",НиО);
{Документ.НачислениеЗП.Форма.Модуль(894)}: Ставка не является константой или периодическим параметром!


Посмотрите отладчиком, какой именно налог запрашивает - его в данном случае нужно или сделать периодическим или изменить обращение.
tony58
Цитата(-=VJ=- @ 07.01.12, 10:51) необходимо зарегистрироваться для просмотра ссылки
Посмотрите отладчиком, какой именно налог запрашивает - его в данном случае нужно или сделать периодическим или изменить обращение.


В отладчике посмотрела :
Функция ПолучитьСтавку(ИмяПараметра)
    НиО = СоздатьОбъект("Справочник.ШкалаСтавок");
    Если НиО.НайтиПоКоду(ИмяПараметра) = 1 Тогда
        // есть такой налог
        ПерСтавка = СоздатьОбъект("Периодический");
        ПерСтавка.ИспользоватьОбъект("Ставка",НиО);
        ПерСтавка.ВыбратьЗначения(НачалоПериода+1, КонецПериода);
        Ставка = 0;
        СтавкаПред = НиО.Ставка.Получить(НачалоПериода);
        НачалоПериодаСтавки = НачалоПериода;    
        КвоДнейНач = КолРабДнейНачало;      
        КвоДнейРаб = Дней;            
        стОргПеч = "";
        Пока ПерСтавка.ПолучитьЗначение() = 1 Цикл
            РабДней = КвоДнейНач;      
            стОргПеч =  стОргПеч + НачалоПериодаСтавки + "-" + (ПерСтавка.ДатаЗнач-1) + " (" + РабДней +" дн.) " + СтавкаПред*100+"%, ";
            
            Ставка = Ставка + СтавкаПред * РабДней;
            СтавкаПред = ПерСтавка.Значение;
            НачалоПериодаСтавки = ПерСтавка.ДатаЗнач;
        КонецЦикла;
        Если КвоДнейРаб = 0 Тогда
              КвоДнейРаб = ?(Дней <> 0, Дней, 22);
        КонецЕсли;
        РабДней = КвоДнейРаб - КвоДнейНач;        
        
        Если НачалоПериодаСтавки = НачалоПериода Тогда
            //Ставка в течение месяца не менялась - значит историю не выводим
            стОргПеч = "" + СтавкаПред*100+" %";
            РабДней = КвоДнейРаб;        
        Иначе
            стОргПеч =  стОргПеч + НачалоПериодаСтавки + "-" + КонецПериода + " (" + РабДней +" дн.) " + СтавкаПред*100+"%";
        КонецЕсли;
                
        Ставка = Ставка + СтавкаПред * РабДней;
        РабДнейВсего = КвоДнейРаб;
        Ставка = Ставка / РабДнейВсего;
        Если НачалоПериодаСтавки <> НачалоПериода Тогда
                Сообщить("Сумма взноса "+ НиО.Наименование + " рассчитана пропорционально рабочим дням ");
                Сообщить(" в связи с изменением ставки в течение месяца: "+стОргПеч);
        КонецЕсли;
        Возврат Ставка;
    КонецЕсли;
    Возврат 0;
КонецФункции


Ничего не изменилось, как и до обновление конфигурации
-=VJ=-
Цитата(tony58 @ 07.01.12, 10:44) необходимо зарегистрироваться для просмотра ссылки
Ничего не изменилось, как и до обновление конфигурации


Чему равно ИмяПараметра перед возникновением ошибки?
tony58
Первым параметром=есть профвзносы
Второй расет единового взноса с сотрудника

Не выдает. При попытке расчета сумм индексации сразу выдает:
ПерСтавка.ИспользоватьОбъект("Ставка",НиО);
{Документ.НачислениеЗП.Форма.Модуль(894)}: Ставка не является константой или периодическим параметром!

Как мне определить модуль 894.
я бы среди списка модулей в отладке посмотрела бы?

еще просмотрела Нио ,

первым расчитывается профвзнос
думаю первым параметром=СотрПрофсоюз



    НиО = СоздатьОбъект("Справочник.ШкалаСтавок");
    
    Если ПолучитьЭлементШкалыСтавок(ноПрофсоюзныйСотр,"СотрПрофсоюз",,"об отчислениях в профсоюз с сотрудника!") = 0 Тогда
        глНеПроводить(Контекст);
        Возврат;
    КонецЕсли;
    Если ПолучитьЭлементШкалыСтавок(ноСоцстрБольничн,"СоцстрБольничн",,"Оплата больничных за счет ФСС!") = 0 Тогда
        глНеПроводить(Контекст);
        Возврат;
    КонецЕсли;
    //единый взнос   пока счет пенсионного, если измениться - исправить
    Если ПолучитьЭлементШкалыСтавок(ноЕСВСот,"ЕСВ",,"о едином социальном взносе с сотрудника!") = 0 Тогда
        глНеПроводить(Контекст);
        Возврат;
    КонецЕсли;
    Если ПолучитьЭлементШкалыСтавок(ноЕСВБолСот,"ЕСВБольн",,"о едином социальном взносе с сотрудника(больничный)!") = 0 Тогда
        глНеПроводить(Контекст);
        Возврат;
    КонецЕсли;
    Если ПолучитьЭлементШкалыСтавок(ноЕСВ,"ФЗПЕСВ",,"единый социальный взнос с фонда заработной платы!") = 0 Тогда
        глНеПроводить(Контекст);
        Возврат;
    КонецЕсли;
    Если ПолучитьЭлементШкалыСтавок(ноЕСВИнв,"ФЗПЕСВИнв",,"единый социальный взнос с фонда заработной платы(инвалиды)!") = 0 Тогда
        глНеПроводить(Контекст);
        Возврат;
    КонецЕсли;
    Если ПолучитьЭлементШкалыСтавок(ноЕСВБол,"ФЗПЕСВБольн",,"единый социальный взнос с суммы оплаты больничных!") = 0 Тогда
        глНеПроводить(Контекст);
        Возврат;
    КонецЕсли;
    // получаем средние значения ставок за месяц
    стЕСВОрг    = ПолучитьСтавку("ФЗПЕСВ");
    стЕСВИнвОрг = ПолучитьСтавку("ФЗПЕСВИнв");
    стЕСВБолОрг = ПолучитьСтавку("ФЗПЕСВБольн");
    стЕСВБол    = ПолучитьСтавку("ЕСВБольн");
5_kopeek
В код вставьте строку (см. ниже) и сообщите, что напишет перед ошибкой
Функция ПолучитьСтавку(ИмяПараметра)
    НиО = СоздатьОбъект("Справочник.ШкалаСтавок");
    Если НиО.НайтиПоКоду(ИмяПараметра) = 1 Тогда
        // есть такой налог
        ПерСтавка = СоздатьОбъект("Периодический");
        Сообщить("ИмяПараметра="+ИмяПараметра); // Эту строку добавить
        ПерСтавка.ИспользоватьОбъект("Ставка",НиО);
Vofka
tony58, вылазьте из танка и прочтите в конце концов правила!
tony58
Спасибо, что Вы такой "добруй" !
Для чего у Вас форум.

Обрашаться к Вам за помощью ( я так поняла ) не стоит.

Не стоите Вы этого!!

Это был ответ Vofka
Ardi
Цитата(tony58 @ 07.01.12, 18:19) необходимо зарегистрироваться для просмотра ссылки
Обрашаться к Вам за помощью ( я так поняла ) не стоит.

Не стоите Вы этого!!

У меня машина не едет. Что делать? Срочно.
Машина красненькая, недавно мыли.
Егор Динин
Цитата(Ardi @ 07.01.12, 18:13) необходимо зарегистрироваться для просмотра ссылки
У меня машина не едет. Что делать? Срочно.
Машина красненькая, недавно мыли.


+100500 haha.gif
-=VJ=-
Цитата(tony58 @ 07.01.12, 14:38) необходимо зарегистрироваться для просмотра ссылки
Как мне определить модуль 894.


Это не модуль, это порядковый номер строки.
Vofka
Цитата
Обрашаться к Вам за помощью ( я так поняла ) не стоит.

Не стоите Вы этого!!

Т.е. получается это мы должны заслужить, чтобы госпожа tony58 соизволила обратиться к нам за помощью. От жеж люди глупые faceoff.gif .

А вам, tony58, я хочу сказать: это не нам надо, а вам. А вы вместо того, чтобы ознакомиться с нашими "условиями помощи" - делаете одолжение, обратившись сюда. Борзометр не зашкаливает?
Zaval
Цитата(tony58 @ 07.01.12, 17:19) необходимо зарегистрироваться для просмотра ссылки
Спасибо, что Вы такой "добруй" !
Для чего у Вас форум.

Обрашаться к Вам за помощью ( я так поняла ) не стоит.

Не стоите Вы этого!!

Это был ответ Vofka


Это, конечно, полный ппц, мадам. Настоятельно советую снизойти до прочтения правил Форума и извиниться за Ваш хамский высер(простите мой французский).

В надежде, что это будет сделано:
Очень похоже на кривое обновление(жаль, что нет данных, с какого релиза обновлялись).
Возможно, в справочнике вообще нет ЕСВ или он внесен туда руками с ошибкой в коде элемента.
При возникновении ошибки перейдите в Конфигуратор, кнопкой внизу окна Откройте модуль в Отладчике.
Установите точку останова на ошибочной строке из сообщения(можно по условию НиО = "", но тогда Вы не увидите, к каким налогам удалось обратиться правильно).
Запустите расчет.
При каждом останове проверяйте значение переменной "НиО". Если перед ошибкой будет пустое значение - мой диагноз подтвердится.
Как лучше исправить - зависит от наличия в справочнике ЕСВ и его "братиков".
Ну и конечно же, от Вашего поведения.
Оскорбить программиста, а затем пользоваться его советами - развлечение очень на любителя)))
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.