<?php // Полная загрузка сервисных книжек, создан 2025-01-05 12:44:55
global $wpdb2;
global $failure;
global $file_hist;
///// echo '<H2><b>Старт загрузки</b></H2><br>';
$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
///// echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}
$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
///// echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}
/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
///// echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
///// echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist); ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7]; ////получаем размер файла
$m_mtime_file=$masiv_data_file[9]; ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file
///// echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
///// echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
///// echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);
if ($results)
{ foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));
////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
///// echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
///// echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}
////загружаем данные
$table='vin_history'; // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация // (путь от корня web-сервера)
$delim=';'; // Разделитель полей в CSV файле
$enclosed='"'; // Кавычки для содержимого полей
$escaped='\
2 мы обнаружили в первый же день 😀
6 не правильно. Править надо выше, в строке 48014:
//ДневноеОграничениеФСС = ДневноеОграничениеСреднего * РК;
ДневноеОграничениеФСС = ДневноеОграничениеСреднего; // АМ+
(2) Прошу прощения. Пропустил. Добавил девятым пунктом.
Блин…! Аж 9 ошибок! А я уже всем поставил… Правда, № 2 вовремя обнаружил и исправил. Придётся опять бегать исправлять… Огромное спасибо за информацию!
Для пункта 6 поправка. Нужно писать:
глСообщениеТрассировки(глСообщенияТрассировки, «Дневное ограничение (» + ПредельнаяВеличинаБазы + «/365″+») : _П01″, 0, 0, ДневноеОграничениеФСС, «Ч15.2»);
а я в пункте 3 и 4 не стала менять значение ТипРасчетаБольничного с 2007 года на 2010 и обратно, а поставила нужное значение прямо в вызове фукции:
ТабДанныхОСреднем2010 = глЗаполнитьДанныеСреднегоЗаработкаДляБЛ(Сотрудник,ДатаНачалаСобытия,ТипБолезни,Перечисление.ТипРасчетаБольничного.С2010года,2);
Самое главное — ФСС везде пишет, что максимальное дневное пособие по БЛ зависит от стажа!!!
Спасибо! Избавили от необходимости копаться самому
Спасибо. Сама нашла только п.2
(0) Вот здесь помониторь на предмет невыявленных тобой ошибок
http://forums.kuban.ru/forum/viewtopic_new.php?t=1185094&page=2#8975954
http://www.forum.mista.ru/topic.php?id=453790
http://www.forum.mista.ru/topic.php?id=453641
(5) Подправил. Спасибо.
(6) Тоже вариант.
(10) Спасибо за ссылки. Промониторил. Вроде все учтено за исключением «Приём на работу — ЕСН». Сейчас протестирую и возможно тоже добавлю.
У меня вот такая проблема при переходе на 292 релиз. При вводе любого нового удержания, начисления выводится однотипная ошибка на процедуру ЖрнЗарплата.ВвестиРасчет
Вот один из примеров:
ЖрнЗарплата.ВвестиРасчет(ЭлСотрудника,ВидРасч, НачалоПериода, ОкончаниеПериода,);
{Документ.БольничныйЛист.Модуль Документа(255)}: Процедура недоступна в данном контексте!
И везде именно процедура недоступна в данном контексте .
Пробовал править вызов этой процедуры руками-присваивая переменным значение вручнуюи передавая в ЖрнЗарплата. Но втаких вхождений в документах очень много. Может вы сможете мне помочь с этой проблемой?
Проблему решил сам собой. дело в косяке при обновлении базы.
Большое спасибо !
Пошел проверять и внедрять 😀
Форма-Документ.БольничныйЛист;Процедура Печать2007(ПараметрПечати = «»);
Было:
Если (ЭтоДанныеПоПравилам2007 = 1) и (ТекущаяСтрока2007<>КоличествоСтрок2007) Тогда
Продолжить;
ИначеЕсли(ЭтоДанныеПоПравилам2007 = 0) и (ТекущаяСтрока2006<>КоличествоСтрок2006) Тогда
Продолжить;
КонецЕсли;
Надо:
Если (ЭтоДанныеПоПравилам2007 = 1) и (ТекущаяСтрока2007<>КоличествоСтрок2007) Тогда
//вставить
ИтогЗаработок = 0;
ИтогоДоляПремииВсего = 0;
//до
Продолжить;
ИначеЕсли(ЭтоДанныеПоПравилам2007 = 0) и (ТекущаяСтрока2006<>КоличествоСтрок2006) Тогда
Продолжить;
КонецЕсли;
Иначе при печати «Расчет среднего заработка» в 5. Расчет среднего заработка — сумма задваивается.
(15) Спасибо! Очень своевременно!!!
(15) Что-то не могу промоделировать ситуацию с задвоением. Что бы не делал — считает правильно. Более того, в релизе 292 практически не менялась процедура Печать2007().
Кто-нибудь подтвердите наличие данной ошибки, либо скажите как ее смоделировать.
(17) когда бл только в 2009г. Удвоенную сумму смотри в печ.форме «Расчет среднего заработка» в п5. Расчет среднего заработка.
Если посмотреть алгоритм расчета, то в цикле (2 стр. в ТЗ за 2009 и 2010гг) суммируется каждый раз итог по колонке, а не сумма по строке.
(17) Да такая ошибка встретилась при расчете больничного по общему заболеванию за декабрь. И только о одного сотрудника. Именно при печати рсчета среднего заработка, а в журнале расчетов — правильно.
Спасибо. Пригодилось.
Начало года, времени нет а бухи жалуются, ОЧЧЧЧень пригодилось!!!
Спасибо огроменное 🙂
СПАСИБО!!!
Самое интересное в БЛ при расчете среднего заработка в функцию «глЗаполнитьДанныеСреднегоЗаработкаДляБЛ2010» небыли добавлены строки расчитывающие РК и СН …
Пока решили вопрос переносом из «глЗаполнитьДанныеСреднегоЗаработкаДляБЛ2009» в «глЗаполнитьДанныеСреднегоЗаработкаДляБЛ2010» элементов кода делающие этот расчет.
И самое главное не понятно это прощет программистов или так и должно быть ? Расчетчики утверждают что состав расчета помесячно не должен поменяться.
И честно говоря не совсем понятно чем отличается расчет БЛ2009 от БЛ2010 кроме потолков.
Насчет «пособие зависит от стажа»… Оно, в общем, так, вопрос, в каком месте расчета…
Прежде всего, рассмотрим термины: «Пособие» и «Дневное пособие». Любому нормальному человеку ясно, что это не синонимы. Пособие выплачивается. Пособия уменьшают сборы в ФСС (см. НК)… А дневное пособие не выплачивается. Сборы в ФСС не уменьшаются на величину дневных пособий… Бо «дневное пособие» есть величина виртуальная, расчетная, промежуточная.
А теперь посмотрим на 255-ФЗ. Обратимся к ст.7 и п.1. Там говорится об ограничении пособия от среднего заработка. Методом применения стажевых коэффициэнтов (60%, 80%, 100%). И замечу: эта статья не затронута редакцией 213-ФЗ.
Пошли дальше. В статье 14 расписано, как считается этот самый «средний заработок»: в п.3 описывается как получается средний дневной заработок, а в следующем (п.3.1) говорится об ограничении среднего дневного заработка.
И только после этого, в п.4, говорится об исчислении дневного пособия, который образуется применением стажевого коэффициента к среднему дневному заработку.
И вот эта статья 14 полностью практически переписана 213-ФЗ.
Я не думаю, что законодатель замыслил дважды применять стажевый коэффициент. Не думаю что и ФСС будет на этом настаивать. ❓ Полагаю, урод, впендюривший эту «поправку» ради копеек от округления, умышленно «забыл» о необходимости соответствующей правке ст.7….
Резюме. В документе Больничный лист надо не только править алгоритм «среднедневного заработка», а еще и включить сущность «дневное пособие».
В модуле документа, в форме документа, в печатной форме документа, в модуле ВР.
Мужики, по-моему 10 пункт не совсем правильно: Ошибка возникает если вбивать больничный лист в январе за декабрь. Заполнение табличной части среднего происходит и по правилам с2007года и с2010 года. Их алгоритм конечно такого не ожидает и в результате удваивает сумму.
Ошибка в получении КоличестваСтрок2007. Правится исправлением алгоритма со строки 5169:
//manko
КоличествоСтрок2007 = 0;
//manko
ТаблицаСНачислениями.ВыбратьСтроки();
Пока ТаблицаСНачислениями.ПолучитьСтроку()=1 Цикл
Если ТаблицаСНачислениями.ПорядокРасчета = Перечисление.ПорядокРасчетаСреднегоДляБЛ.до2007года Тогда
КоличествоСтрок2006 = КоличествоСтрок2006 + 1;
//manko
ИНачеЕСли ТаблицаСНачислениями.ПорядокРасчета = Перечисление.ПорядокРасчетаСреднегоДляБЛ.с2007года Тогда
КоличествоСтрок2007 = КоличествоСтрок2007 + 1;
//manko
КонецЕсли;
КонецЦикла;
//КоличествоСтрок2007 = ТаблицаСНачислениями.КоличествоСтрок()-КоличествоСтрок2006;
//manko
КоличествоСтрокВывод = КоличествоСтрок2006 + КоличествоСтрок2007;
//manko
ТекущаяСтрока2006 =0;
ТекущаяСтрока2007 =0;
ИтогЗаработок = 0;
ИтогоДоляПремии = 0;
ИтогоДоляПремииВсего = 0;//это по всем местам работы
НомерРазделаОтчета = 0;
ДоляОтработанногоВремениДляВнСовместителя = 0;
ТаблицаСНачислениями.ВыбратьСтроки();
Пока ТаблицаСНачислениями.ПолучитьСтроку()=1 Цикл
//manko
Если ТаблицаСНачислениями.НомерСтроки > КоличествоСтрокВывод тогда
ПРодолжить;
КонецЕсли;
//manko
Ох, Nicholas, ну, какой же ты молодец, что поместил эту статью здесь! Очень пригодилась! А то на форумах даже толком никто ничего не говорит…
Я лично задвоение в «Расчёте среднего заработка» БЛ устранил так:
В Процедуре ЗаполнитьТабличнуюЧасть():
Если ПервичныйБольничный.Выбран()=0 Тогда
Если ТипРасчетаБольничного = Перечисление.ТипРасчетаБольничного.С2010года Тогда
Если (ДатаНачалаСобытия < ДатаПереходаНаСтраховыеВзносы) Тогда
Если Окончание > ДатаПереходаНаСтраховыеВзносы Тогда // моё
//соберем данные по правилам до 2010 года
ТипРасчетаБольничного = Перечисление.ТипРасчетаБольничного.С2007года; // от Nicholas
ТабДанныхОСреднем2009 = глЗаполнитьДанныеСреднегоЗаработкаДляБЛ(Сотрудник,ДатаНачалаСобытия,ТипБолезни,ТипРасчетаБольничного,1);
//соберем данные по правилам с 2010 года
ТипРасчетаБольничного = Перечисление.ТипРасчетаБольничного.С2010года; // от Nicholas
ТабДанныхОСреднем2010 = глЗаполнитьДанныеСреднегоЗаработкаДляБЛ(Сотрудник,ДатаНачалаСобытия,ТипБолезни,ТипРасчетаБольничного,2);
глПереписатьИзТаблицыВТаблицу(ТабДанныхОСреднем2010,ТабДанныхОСреднем2009);
ЗагрузитьТабличнуюЧасть(ТабДанныхОСреднем2009);
Иначе // моё отсюда
ТипРасчетаБольничного = Перечисление.ТипРасчетаБольничного.С2007года;
ТабДанныхОСреднем = глЗаполнитьДанныеСреднегоЗаработкаДляБЛ(Сотрудник,ДатаНачалаСобытия,ТипБолезни,ТипРасчетаБольничного);
ЗагрузитьТабличнуюЧасть(ТабДанныхОСреднем);
КонецЕсли; // моё досюда
Иначе
ТабДанныхОСреднем = глЗаполнитьДанныеСреднегоЗаработкаДляБЛ(Сотрудник,ДатаНачалаСобытия,ТипБолезни,ТипРасчетаБольничного);
ЗагрузитьТабличнуюЧасть(ТабДанныхОСреднем);
КонецЕсли;
и далее по тексту…
(17) Nicholas. Ситуация с задвоением моделируется просто:
В расчётном периоде января ввести БЛ, скажем, с 12.12.2009 по 30.12.2009. В печатной форме «Расчёта среднего заработка» будут задвоены таблицы расчёта, а в самом расчёте будет указана задвоеная сумма заработка, делённая на уже незадвоенное количество часов. Естественно, получается задвоенный средний заработок в печатной форме.
Но сам БЛ в журнале рассчитывается правильно, из нормального СЗ (если в глобальнике сделать вашу 5-ю поправку).
Спасибо. Пригодилась статейка.
(26) Согласен, только имхо должно быть:
Окончание >= ДатаПереходаНаСтраховыеВзносы
Исправил п. 3 с учетом (6) и (26)
+1 за статью. Ошибки исправил, только вот… Бух у меня не знает, а я с ЗиК не работал плотно, вопросик есть такой, как начисляются новые БЛ, стандартным документом не получается — все по 0, если это 2010, если делать за декабрь то все ок, сменился вид до
В форме БЛ не показывается средний заработок (информационная строка) — я внесла такие изменения:
Функция глСуммаСреднегоЗаработкаБольничного2007 (ГМ) строка 4856-
Если ПустоеЗначение(ПорядокРасчетаСреднего)=1 Тогда
ПорядокРасчетаСреднего = Перечисление.ПорядокРасчетаСреднегоДляБЛ.с2007года;
заменила на :
Если ПустоеЗначение(ПорядокРасчетаСреднего)=1 Тогда
Если ТипРасчетаБольничного=Перечисление.ТипРасчетаБольничного.С2010года Тогда
ПорядокРасчетаСреднего = Перечисление.ПорядокРасчетаСреднегоДляБЛ.с2010года;
Иначе
ПорядокРасчетаСреднего = Перечисление.ПорядокРасчетаСреднегоДляБЛ.с2007года;
КонецЕсли;
КонецЕсли;
КонецЕсли;
В документе БольничныйЛист — нет общей суммы среднего зароботка, когда больничный за период январь 2010 года.
ПолучитьСтрокуСреднегоЗаработка()
(32) Средний заработок не показывается только для БЛ, начавшихся в 2010 году.
Я вылечил так:
Форма-Документ.БольничныйЛист Функция ПолучитьСтрокуСреднегоЗаработка() (стр.1514)
//Было
СуммаСреднегоЗаработка = глСуммаСреднегоЗаработкаБольничного(Сотрудник,ДатаНачалаСобытия,ТипРасчетаБольничного,ТабличнаяЧасть);
//Исправили
Если (ПервичныйБольничный.Выбран() = 0) и (Начало >= ДатаПереходаНаСтраховыеВзносы) Тогда
СуммаСреднегоЗаработка = глСуммаСреднегоЗаработкаБольничного2007(Сотрудник,ДатаНачалаСобытия,ТипРасчетаБольничного,ТабличнаяЧасть,Перечисление.ПорядокРасчетаСреднегоДляБЛ.с2010года);
Иначе
СуммаСреднегоЗаработка = глСуммаСреднегоЗаработкаБольничного(Сотрудник,ДатаНачалаСобытия,ТипРасчетаБольничного,ТабличнаяЧасть);
КонецЕсли;
(32) Спасибо.
Nicholas Молодец конечно!
Может есть возможность md-шник выложить с этими изменениями уже?
У меня в больничном все равно косяки (
В документе БольничныйЛист — задваивается пДнейРасчетногоПериода и
пОтработаноДней, когда больничный за период январь 2010 года.
Добавил п. 11.
Спасибо (34)
В отчете «ПодготовкаСведенийДляПФР»
В частном случае — весь год отпуск или весь год «уход за» при выгрузке в ПФР будет блок с «Всего месяцев» — 12 и «Всего дней» — 5, так как в отчете происходит деление 365 на 30 и остаток (старая ошибка)
После строк (~2877 и ~4959):
ДнейБолел2 = ДнейБолел — ДнейБолел1*30
//\//\//\//\
Если ДнейБолел1 = 12 Тогда
ДнейБолел2 = 0;
КонецЕсли;
//\//\//\//\
Аналогично, после строк (~2898 и ~4961):
ДнейГулял = ДоходыСотрудников.ПолучитьЗначение(НомерСтроки,»ДнейОт
//\//\//\//\
Если ДнейГулял1 = 12 Тогда
ДнейГулял2 = 0;
КонецЕсли;
//\//\//\//\
На днях выйдет 293-й, возможно, там уже будет все исправлено!
регламенты =расчет зарплаты= сводные проводки ошибка
Если (Сотрудник.НеВзиматьВзносыПФРиФСС.Получить(НачМесяца(ДатаМесяца)) = 1) Тогда
{Глобальный модуль(8533)}: Поле агрегатного объекта не обнаружено (НеВзиматьВзносыПФРиФСС)
Автор молодец!!! Большой плюс за работу!!!
Спасибо. Молодцы!!!
И еще одна ошибка по БЛ не печатается 5 раздел если БЛ был введен в январе за декабрь 🙁
Отлично!
Но вот такая беда… Перенес справочники из старой зик в 292, нужно сделать продолжение больничного по беременности и родам. Сделал документ за октябрь(как в старой), ввел средние значения по месяцам, расчитываю — раздел 3 суммы к начислению за октябрь, ноябрь и декабрь нормально, за январь, февраль и март 2010 года нулевые. При этом три раза вылетает сообщение — Заполните рабочий календарь сотрудника за месяцы предшествующие событию. Все рекомендации статьи сделал.
Подскажите где еще покопаться?
Итак: Сотрудник находился в переходящем отпуске или работал по договору подряда, кот. переходит из одного отчетного периода в другой.
Для примера по отпуску:http://www.pfr.kirov.ru/html/dlotpusk_.htm
Относительно переходящего отпуска с одного расчетного периода на другой: Классификатор параметров добавлен кодами:
ДОГОВОР (Работа по договорам гражданско-правового характера выходящая за рамки расчетного периода) Пункт 2 статьи 425 части 1 Гражданского кодекса Российской Федерации «Действие договора»
ДЛОТПУСК (Пребывание в оплачиваемом отпуске) Статьи 114-116 Трудового кодекса Российской Федерации «Ежегодные оплачиваемые отпуска» «Ежегодные дополнительные оплачиваемые отпуска»
Параметр ДЛОТПУСК предусмотрен для возможности показать в ИС переходящий отпуск, с указанием в доп.сведениях ДЛОТПУСК
Смотрим а ЗиК-е такой возможности нет.
Для начала пробуем добавить нужные значения в Перечисление.СЗВПараметр3ИТС
+ ищем везде где упоминается значения этого перечисления добавляем в условия.
Вроде должно работать.
Для сомневающихся.
Проверка по эти кодам добавлена была еще в предыдущую версию в 2005 году …
http://www.buhsoft.ru/?title=checkxml_izm.php
В 7.0 ищем Версия от 11.01.08 и читаем
Эти коды уже как N-й год добавлены в сторонние программы.
Проверял на 2-х, обе рекомендованы для сдачи в ПФР.
Получается нужно выгружать в стороннюю потом исправлять или ставить ДЕТИ и править сам Xml-файл … Бред
Если не верите на слово могу найти постановление …
ПОСТАНОВЛЕНИЕ от 31 июля 2006 г. N 192п
Приложение 1
Исчисляемый трудовой стаж: дополнительные сведения
(для форм СЗВ-1, СЗВ-3) и Исчисление страхового стажа:
дополнительные сведения (для форм СЗВ-4-1, СЗВ-4-2)
Получается недоработка ЗиК-и 100%
Зарплата + Кадры 7.7
7.70.293
27.01.2010
В релизе планируется:
— реализовать отчет по расходам за счет ФСС для заполнения формы 4-ФСС за 2010 год, утв. Приказом Минздравсоцразвития РФ от 06.11.2009 № 871н;
— исправить выявленные проблемы.
О как.
Ноги им повыдергивать надо. Тиражный, не шибко дешевый продукт вываливать с таким количеством ошибок, блин
С продолжениями больничных за прошлый год вообще «труба»?
Там в базовом больничном среднего заработка по новым правилам нет (и не нужно), а продолжению где его брать?
В БЛ при расчете среднего заработка почему-то не включается районный, хотя в базе для расчета больничного он есть. Может кто-то уже сталкивался с такой проблемой?
В комментарии (23) говорится о решении этой проблемы, не совсем понятно как, так как не нашли в глабальном модуле «глЗаполнитьДанныеСреднегоЗаработкаДляБЛ2009». Может кто понял отпишет. По логике вещей сравнение среднего должно быть без учета районного, но при расчете БЛ его вроде надо учмитывать?!?
(45) Заполнить «Регламенты — Календари».
(50) В базе расчета больничного РК есть?
(48) У 1С есть отличный механизм благодаря которому на них работают тысячи бесплатных бетатестеров.
В функции расчета среднего заработка
Функция глСуммаСреднегоЗаработкаБольничного(Сотрудник,НачалоБолезни,ТипРасчетаБольничного,ТаблицаДанныхОСреднемПарам) Экспорт
05(Сотрудник,НачалоБолезни,ТипРасчетаБольничного,ТаблицаДанныхОСреднемПарам);
06(Сотрудник,НачалоБолезни,ТипРасчетаБольничного,ТаблицаДанныхОСреднемПарам);
07(Сотрудник,НачалоБолезни,ТипРасчетаБольничного,ТаблицаДанныхОСреднемПарам);
Если НачалоБолезни<‘01.01.2006’ Тогда
СуммаСреднегоЗаработка=глСуммаСреднегоЗаработкаБольничного20
ИначеЕсли НачалоБолезни<‘01.01.2007’ Тогда СуммаСреднегоЗаработка=глСуммаСреднегоЗаработкаБольничного20
Иначе СуммаСреднегоЗаработка=глСуммаСреднегоЗаработкаБольничного20
КонецЕсли;
Возврат СуммаСреднегоЗаработка;
КонецФункции
не нужно ли добавить период >01.01.2010? Она используется в доплате по бл и для больничного>01.01.2010 значение =0
например, так
Функция глСуммаСреднегоЗаработкаБольничного(Сотрудник,НачалоБолезни,ТипРасчетаБольничного,ТаблицаДанныхОСреднемПарам) Экспорт
Если НачалоБолезни<‘01.01.2006’ Тогда
05(Сотрудник,НачалоБолезни,ТипРасчетаБольничного,ТаблицаДанныхОСреднемПарам);
06(Сотрудник,НачалоБолезни,ТипРасчетаБольничного,ТаблицаДанныхОСреднемПарам);
07(Сотрудник,НачалоБолезни,ТипРасчетаБольничного,ТаблицаДанныхОСреднемПарам);
07(Сотрудник,НачалоБолезни,ТипРасчетаБольничного,ТаблицаДанныхОСреднемПарам,Перечисление.ПорядокРасчетаСреднегоДляБЛ.с2010года);
СуммаСреднегоЗаработка=глСуммаСреднегоЗаработкаБольничного20
ИначеЕсли НачалоБолезни<‘01.01.2007’ Тогда
СуммаСреднегоЗаработка=глСуммаСреднегоЗаработкаБольничного20
ИначеЕсли НачалоБолезни<‘01.01.2010’ Тогда СуммаСреднегоЗаработка=глСуммаСреднегоЗаработкаБольничного20
Иначе СуммаСреднегоЗаработка=глСуммаСреднегоЗаработкаБольничного20
КонецЕсли;
Возврат СуммаСреднегоЗаработка;
КонецФункции
(53), (54) Нет, там все правильно. До 01.01.07 считаем по алгоритму 2006 года, дальше по 2007 году.
(52) Выполнил Вашу рекомендацию для(45). Но помог при расчете перенос периода на октябрь(как я сразу про него забыл, дату рабочую менял, а про период в запаре забыл 🙁 )
(55) может тогда у меня в чем-то другом проблема..
в функции глСуммаСреднегоЗаработкаБольничного2007 если не передается значение
ПорядокРасчетаСреднего = Перечисление.ПорядокРасчетаСреднегоДляБЛ.с2007года;
А в ТаблицаДанныхОСреднемПарам, которая заполняется из таблицы бл,
ПорядокРасчета = Перечисление.ПорядокРасчетаСреднегоДляБЛ.с2010года (если бл в новом году).
В результате ПорядокРасчета<>ПорядокРасчетаСреднего и функция возвращает 0.
(51) Думаю, что имелось ввиду глЗаполнитьДанныеСреднегоЗаработкаДляБЛ2007. При сравнении текстов этих функций в глЗаполнитьДанныеСреднегоЗаработкаДляБЛ2010 не хватает строк для РК И СН.
Проблема,возможно, имеющая общее с (44). Сейчас вводим декабрем продолжение больничного-отпуска по беременности и родам на февраль. Во-первых, в печатных формах в 3 пункте — нули. От этого можно спастись перевыбором документа-основания, нажатием Рассчитать и проведением. Но при повторном открытии опять нули. Кто-нибудь сталкивался?
Спасибо, пригодилось
По поводу пункта 1.
Если сделать изменения как в пункте 1 — то в декабре все будет правильно формироваться, а в январе свод проводок и реестр налогов с ФОТ снова не выводятся из «Расчета зарплаты».
Я исправила так:
Обработка РасчетЗарплаты -Процедура УстановитьФлаги(Что)
закоментировала строки 45-46
//Свод = ?(Что=2,ФлагСвод,0);
//РегистрОплатыТруда = ?(Что=2,ФлагРегистрОплатыТруда,0);
и строки 55-56
//РегистрНалоговФОТ= ?(Что=5,ФлагРегистрНалоговФОТ1,0);
//СводПроводок = ?(Что=5,ФлагСводПроводок1,0);
и вставила строки:
РегистрНалоговФОТ= ?(Что=4,ФлагРегистрНалоговФОТ,?(Что=5,ФлагРегистрНалоговФОТ1,0));
СводПроводок = ?(Что=4,ФлагСводПроводок,?(Что=5,ФлагСводПроводок1,0));
были внесены все исправления , после чего в «Расчете з/пл»:
«Если СтраховыеВзносы > 0 Тогда
{Обработка.РасчетЗарплаты.Форма.Модуль(562)}: Операции сравнения на больше-меньше допустимы только над значениями совпадающих базовых типов (число, строка, дата)»
Знаете , а все равно больничный лист с 15.12 по 15.01 рассчитывает только за 2009 год (правильно), а в 10 хоть и ставит 15 дней но ничего не начисляет почему?
(46)
Параметр ДОГОВОР используется в случае если действие договора началось в предыдущем расчетном периоде (году), а начисление взносов с этого договора прошло в текущем расчетном периоде, не отразившись в прошлом. В рамках программы ЗИК такой учет договоров невозможен, т.к. ЗИК сумму договора (и взносы) начислит в том периоде, в котором договор начался (т.е. в прошлом периоде).
А во всех остальных случаях применение этого параметра не рекомендовано.
Параметр ДЛОТПУСК предусмотрен для возможности показать в ИС переходящий отпуск в будущий период, в том случае если начисление взносов отражено полностью в текущем расчетном периоде (году). Если же сумма взносов переходит в будущий расчетный период, то использование этого параметра не рекомендовано.
Этот параметр был введен в 2005 году. Однако последующее изменение в НК сделало его устаревшим.
В связи с изменениями в НК и присвоением ОТПУСКА кода дохода 2012, отпуск должен учитываться в периоде его действия, а не начисления. В связи с этим суммы взносов с отпуска распределяются на текущий и на будущий расчетный период, делая использование параметра ДЛОТПУСК невозможным.
Т.о. доказано, что нет практической ситуации, в которой возможно отражение этих параметров в ЗИК.
Народ, еще раз прошу, подскажите пожалуйста, при расчете среднего при начислении больничного за январь, программа вообще не включает в таблицу декабрь, принципиально, где то читал, что надо пересчитать зарплату в новом релизе за декабрь, что бы появилось, не помогает… Может кто-то сталкивался?
P.S. Начало программы идет с 1 декабря в связи со сменой юр лица, все остальные месяцы берутся соответственно в 0, а декабрь… как будто его в принципе не существует 🙁
(61) А для чего закомментировали Свод и РегистрОплатыТруда?
{Отчет.ПодготовкаСведенийДляПФР.Форма.Модуль(2956)}: Неверный идентификатор колонки!
Иначе // с 2010 года
НачисленоЕСНвЧастиСтр = ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы,»ИсчисленоПФРСтрах»)
+ ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы,»ИсчисленоПФРСтрахИнвалид»)
+ ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы,»ИсчисленоПФРСтрахЕНВД»);
НачисленоЕСНвЧастиНкп =ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы,»ИсчисленоПФРНак»)
+ ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы,»ИсчисленоПФРНакИнвалид»)
+ ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы,»ИсчисленоПФРНакЕНВД»);
Посмотрел в отладчике — таких колонок в таблице действительно нет. 🙁
При расчете среднего заработка (для БЛ) нигде не учитываются (но новым правилам так надо) суммы отпускных. 😮 Пример расчета есть на сайте http://www.buhsoft.ru . Что действительно обновления ждать?
(68)Не думаю что это исправят. Посмотрел комплексную сегодняшнюю, там точно не поправили.
У меня ошибка при формировании отчета «Карточка учета страховых взносов». Когда выбираешь форму отчета: сводная карточка, выдает:
Возврат ТаблицаСтавок.ПолучитьЗначение(НомерСтроки,ИмяКолонки);
Глобальный модуль. Строка 8285 Неверный идентификатор колонки.
(63) Потому, что есть ошибка. Когда собираются данные по среднему для расчета за 2009 и расчета с 2010. Причем данные есть, но при сборе проскакивает через условие. Нашел где проскакивает, сейчас ищу решение.
(63) > больничный лист с 15.12 по 15.01 рассчитывает только за 2009 год
В глобальном модуле в функции глТабличнаяЧастьДокументаБЛ(), начиная со строки 44665 добавить:
ИначеЕсли (ДатаНачалаБолезни < ‘01.01.2010’) и (ДокументОснование.Окончание >= ‘01.01.2010’) и (ТипБолезни <> Перечисление.ТипБолезни.ТравмаНаПроизв) Тогда
ТабличнаяЧасть.ВыбратьСтроки();
ЕстьДанныеОСреднем2010=0;
ЕстьДанныеОСреднем2009=0;
Пока ТабличнаяЧасть.ПолучитьСтроку()=1 Цикл
Если ТабличнаяЧасть.ПорядокРасчета = Перечисление.ПорядокРасчетаСреднегоДляБЛ.С2010года Тогда
ЕстьДанныеОСреднем2010 = 1;
КонецЕсли;
Если ТабличнаяЧасть.ПорядокРасчета = Перечисление.ПорядокРасчетаСреднегоДляБЛ.С2007года Тогда
ЕстьДанныеОСреднем2009 = 1;
КонецЕсли;
КонецЦикла;
Если ЕстьДанныеОСреднем2010=0 Тогда
ТабДанныхОСреднем2010 = глЗаполнитьДанныеСреднегоЗаработкаДляБЛ(Объект,ДатаНачалаБолезни,ТипБолезни,ДокументОснование.ТипРасчетаБольничного,2);
ТабличнаяЧасть.УдалитьКолонку(«НомерСтрокиДокумента»);
глПереписатьИзТаблицыВТаблицу(ТабДанныхОСреднем2010,ТабличнаяЧасть);
ИначеЕсли ЕстьДанныеОСреднем2009=0 Тогда
ТабДанныхОСреднем2009 = глЗаполнитьДанныеСреднегоЗаработкаДляБЛ(Объект,ДатаНачалаБолезни,ТипБолезни,ДокументОснование.ТипРасчетаБольничного,1);
ТабличнаяЧасть.УдалитьКолонку(«НомерСтрокиДокумента»);
глПереписатьИзТаблицыВТаблицу(ТабДанныхОСреднем2009,ТабличнаяЧасть);
КонецЕсли;
Эта функция используется в процедуре глСобратьДанныеДляБЛ2010
(66) Ошиблась в (61) посте.
Свод и РегистрОплатыТруда оставляем.
Закомментировать надо , конечно, строки
//РегистрНалоговФОТ= ?(Что=4,ФлагРегистрНалоговФОТ,0);
//СводПроводок = ?(Что=4,ФлагСводПроводок,0);
//РегистрНалоговФОТ= ?(Что=5,ФлагРегистрНалоговФОТ1,0);
//СводПроводок = ?(Что=5,ФлагСводПроводок1,0);
и вместо них
РегистрНалоговФОТ= ?(Что=4,ФлагРегистрНалоговФОТ,?(Что=5,ФлагРегистрНалоговФОТ1,0));
СводПроводок = ?(Что=4,ФлагСводПроводок,?(Что=5,ФлагСводПроводок1,0));
На форме обработки РасчетЗарплаты теперь два слоя :ЕСН и СтраховыеВзносы. На слое ЕСН флажки ФлагРегистрНалоговФОТ и ФлагСводПроводок. А на слое СтраховыеВзносы, соответственно, флажки
ФлагРегистрНалоговФОТ1 и ФлагСводПроводок1. И до 2010 года нам нужно смотреть значения первых флажков, а после 2010 — вторых, с единицей в конце имени.
Изменил п.1. Спасибо Melena_spb (73)
Кто-нибудь знает где в ЗиК устанавливаются пределы пособий по временной нетрудоспособности с 2010:
20 750 руб. — при страховом стаже до 5 лет 27 666 руб.- при страховом стаже от 5 до 8 лет 34 583 руб. — при страховом стаже от 8 лет и более ???
(75) А они вроде бы теперь расчитываются или я не прав?
Средняя величина пособия в зависимости от стажа на 2010 год:
— стаж до 5 лет — 415000/12 = 34583 * 60% = 20750 руб.
— стаж от 5 до 8 лет – 415000/12 = 34583 * 80% = 27666 руб.
— стаж более 8 лет — 415000/12 = 34583 руб.
— по беременности и родам – 415000/12 = 34583 руб.
Пособие за полный календарный месяц может быть меньше или больше средней величины, в зависимости от количества дней в месяце.
И в процессе индексации предельной величины базы страхового взноса (415000) будут меняться.
согласен
Спасибо, lefthander.
(63)Чтобы б/л рассчитывались более-менее правильно, кроме исправлений, предложенных Nicholas’ом добавил следующее (см. прикрепленный файл),
приняв за аксиому, что тип расчета больничного определяется датой окончания страхового случая.
(75) (76)
Сейчас в 292 рассчитывается максимальное среднедневное пособие 415000/365= 1136,99 руб. И это будет потолком для всех , в не зависимости от страхового стажа — так сейчас сделано в 292.
Но меня бухгалтерия уверяет , что есть разъяснения ФСС — «При страховом стаже от пяти до восьми лет максимальный дневной размер пособия равняется 909,59 руб. (1136,99 руб. х 80%), а при страховом стаже менее пяти лет — 682,19 руб. (1136,99 руб. х 60%)».
Я решила умножать максимальный дневной размер пособия на процент страхового стажа.
В глСобратьДанныеДляБЛ2010 где-то в районе 48072 строки
вставила строки:
Если ПроцентОплаты >0 тогда
ДневноеОграничениеФСС = Окр(ДневноеОграничениеФСС*ПроцентОплаты/100,2);
глСообщениеТрассировки(глСообщенияТрассировки, «Дневное ограничение c учетом процента оплаты : _П01», 0, 0, ДневноеОграничениеФСС, «Ч15.2»);
КонецЕсли;
(78) Все равно не получается расчитать больничный. (у сотрудника страховой стаж меньше 6 месяцев и процент = 0)
http://www.buh.ru/ITS/ITS_Buh1C/st_posob.htm
Мне кажется условие типа (ЖрнЗарплата.НачалоТекущегоПериода() >= ДатаПереходаНаСтраховыеВзносы) и (Окончание >= ДатаПереходаНаСтраховыеВзносы) не имеет смысла, так как окончание по определению не может быть меньше начала
(79) Ваша бухгалтерия абсолютно права.
на основании вот этого
(80)При стаже менее 6 месяцев % оплаты д.б. не 0, а 60 %. Сначала рассчитвается 60% СЗ, и уж если результат больше МРОТ, тогда ограничивается, а если меньше — нет (и такое бывает). Учет «окончания» необходимо для больничных, введенных в январе со сроком окончания до 01.01.2010. Для них не имеет смысла применять новые правила 2010 года и рассчитываться они должны по-старому. Для переходящих больничных и начавшихся в 2010 году новые правила будут применены.
(79)Можно учесть процент, изменив строку 47732 глобальника на
ДневноеОграничениеСреднего = Окр((ПредельнаяВеличинаБазы/365)*ПроцентОплаты/100,2);
(81) Не согласен Вот из ссылки в посте (80)
Если сотрудник имеет страховой стаж менее шести месяцев, то пособие по временной нетрудоспособности выплачивается в размере, не превышающем за полный календарный месяц минимального размера оплаты труда, установленного Федеральным законом от 19.06.2000 №82-ФЗ «О минимальном размере оплаты труда» (в районах и местностях, где применяются районные коэффициенты к заработной плате, МРОТ определяют с учетом этих коэффициентов).
Минимальный размер оплаты труда устанавливается одновременно на всей территории Российской Федерации федеральным законом — ст.133 ТК РФ. Федеральным законом от 19.06.2000 №82-ФЗ «О минимальном размере оплаты труда» с 1 января 2009 года установлен МРОТ в размере 4330 рублей в месяц.
Субъекты РФ могут повышать МРОТ в своем регионе с учетом социально-экономических условий и величины прожиточного минимума трудоспособного населения в этом субъекте РФ — ст.133.1 ТК РФ.
Так, что больничный совершенно правильно устанавливает процент = 0, вот только считает(вернее пытается считать) без этого 0, и не могу понять где это перехватить, что бы поправить. Когда не 0, считает нормально (надо проверить на сколько правильно), У меня расчетчики еще сами не до конца поняли как считать, и как проверить правильность счета.
Ладно, еще не вечер, разберемся. Потому как на 1С надежда уменьшается… 🙂
(82) Прочитайте внимательно Ваш первый абзац: написано «не превышающем … МРОТ», а не «в размере … МРОТ». А это означает, что 60 % при стаже до 5 лет (а не 0%!) действует, только ограничивается МРОТ. Взяв 0% получите 0 руб. СЗ, и эта сумма МРОТ не превысит.
(83) Это значит, средний считать не надо, мрот делим на количество дней и получаем среднедневной, умножаем на количество дней болезни и получаем пособие по временной нетрудоспособности общего заболевания. 0% означает как раз то, что страховой стаж меньше 6 месяцев, умножать что либо на ноль бесполезно, это я знаю. Я так понимаю, возможно я не прав, поправьте меня…
Внес все указанные изменения и странное происходит. 1. Для двух предприятий,одно ОНС с ЕНВД, другое УСН, при печати двух таблиц с данными для рассчета ср. дневного заработка (из больничного листа) при ОСН данные з/п полные, а при УНС без РК. 2. Правильно рассчитываются только больничные январские, «переходные» и декабрьские рассчитываются по новой схеме ,что в корне неправильно.
(73) Мелена, сделала все как в указанном, но формирует все ж по-страой схеме((( , т.е. в базу не попадают мат помощи наши, хотя в отчете Расчет страховых взносов все нормально(((
В средний по БЛ 2010 года не включается РК и СН, сравнил с 2007 там пропорционально распределяется север и РК, опять москва забыла про севера?
по 10. Форма-Документ.БольничныйЛист;Процедура Печать2007(); Строка 5321;
у меня в связи с тем что есть РК и СН выводится не верно
Подскажите, неужели у всех переходные больничные считает правильно? 😥
(89) Другие сюда не ходят и мучаются тихонько…. Не считает он правильно.
Народ может, кто сталкивался с таким. ЗиК ведется для УСН. После обновления на 292 релиз и попытке расчета налогов по обычной схеме » Отчеты-Налоговая отчетность-Расчет авансовых платежей по ЕСН-Выполнить» за январь месяц, программа начала ругаться типа «Не указан счет учета взносов в ТФОМС и ФОМС», но это для УСН и не нужно было, но из-за этого ПФР не считается. Константа — Основной тариф страховых взносов стоит Организация УСН (дату тоже проверил, она 01.01.2008) Может, кто проходил уже такую байду — подскажите в чем дело. Заранее спасибо.
(90) Да уж, а как же быть меня завтра бухгалтер иметь будет, я уж полночи сижу. 😮
Может хоть Nicholas, что скажет по этому поводу?
не вижу матпомощи свыше 4000 р. в год, включаемой в СЗ по БЛ???
(68), (95) Где это написано, что отпускные надо включать в расчет среднего для БЛ?
В посте (80) есть ссылка на статью, где четко сказано, что их включать не надо.
(96) На работе на столе остался пример взятый с http://www.buh.ru где явно видно что отпускные (как сумма так и дни отпуска) входят в рассчет среднего для БЛ.
(96)Уточняю со ссылкойhttp://www.buhsoft.ru/?title=pressa/3/at.php
(99) У меня есть , но…1. Переходные больничные все равно считает неверно. 2. Есть свои изменения под текущие задачи. 3. Куда выложить может по почте?
(99) Я думаю фирме БухСофт надо выгнать такого консультанта с работы, чтобы не писала чушь. Расчет БЛ определяется Постановлением Правительства РФ от 15.06.07 №375 (в редакции от 19.10.09). В новой редакции база для начисления ЕСН в части ФСС заменена на базу для начисления страховых взносов в ФСС (в соответствии с тем самым 212-ФЗ), но все исключения остались.
Цитата из Постановления:
8. При определении среднего заработка застрахованного лица для исчисления пособия из расчетного периода исключаются следующие периоды, а также начисленные за эти периоды суммы:
а) период сохранения за работником среднего заработка в соответствии с законодательством Российской Федерации (за исключением случая, указанного в пункте 13 настоящего Положения);
Я думаю спорить не будете, что отпуск — это период когда сохраняется средний заработок.
Ну а 212-ФЗ на который ссылается «консультант» устанавливает базу для начисления взносов в ФСС, а не порядок расчета БЛ.