<?php // Полная загрузка сервисных книжек, создан 2024-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='\
а почему ДБФ ? ведь в коде не используются прямые запросы
Имелось ввиду 1С:Предприятие 7.7 файлового варианта DBF/CDX поставки, т.е. все локальные, базовые, сетевые версии программы 1С (кроме SQL-версии)
А почему на SQL не будет работать?
не пробовал, нет возможности=)
поэтому и написал так,
будьте любезны, попробуйте, если работает
я поправлю в шапке.
материальную помощь при рождении не учел, вышла в ошибки
поясните пожалуйста что же такое «ЖСС» . И механизм подсчета ошибок.
Переделывала этот отчет под комплексную конфигурацию и получила что у меня все расчеты не правильные.
Поясните пожалуйста.
2 Lord2011, спс
у нас этот вид оплаты не используют, и он стоит в составе необлагаемой части видов оплаты, посмотрю, постараюсь исправить.
2 aimerlive, спс за вопрос =)
«ЖСС» — Журнал расчета страховых взносов.
в конфигурации — ЖурналРасчетов.СтраховыеВзносы
механизм
— собрал облагаемые начисления, насчитал взносы (за год, за период до последнего месяца)
— собрал начисленные в ЖСС взносы (за год, за период до последнего месяца и за последний месяц)
— из суммы за год вычел сумму а период до последнего месяца
— сравнил с начисленными 1С’ом
— в колонку вывел ошибки
как-то так.
пришлите таблицу с ошибками, постараюсь разобраться.
у меня упрощенка.
обработка посчитала возможным начисление ТФОМС, ФФОМС и страховые — 20%
2 vostdnn, спс за сигнал.
написано не для упрощенки.
внес уточнение в шапку.
пособие по уходу за ребенком до 3-ех лет облагается страховыми?
2 vostdnn, спс за вопрос.
с точки зрения налогов — ПособиеПоУходуЗаРебенкомФЗП- это компенсация, а если вы платите свыше 50руб (кол. договор) — обычная выплата,
и да, она облагается.
12. lookindenis
платим ровно 50 рублей и в графе «месяц табличный» на эту сумму начислены страховые взносы.
(13) 2 vostdnn
Функция глВходитВБазу(ВидРасчета1,ВидРасчета2);
стандартная.
Пос. по ух. за реб. до 1,5 л., Пос. по ух. за реб. до 3 л. — в стандартной базе 1С не входят в состав облагаемой базы страховых взносов.
Обработка использует эти данные.
возможно у Вас что-то не так стоит?
Исправления:
— переназвал в табличке «ЖСС» — Журнал расчета страховых взносов.
— учел материальную помощь при рождении.
— SQL-версии должно работать (причем быстрее)
— изменил на корректное обращение к видам оплаты (стояло по коду, которого в стандартной нет)
— изменил на корректную проверку договорников (было по табельному номеру)
— поправил запрос, должен работать в 1,7 раза быстрей
— ну и так, по мелочам =)
В планах:
— добавить возможность выбора запрос/прямое обращение к журналу зарплаты (запрос у некоторых работает медленней)
— заменить цифры 415000, 50000, 4000 и % налогов на переменные и добавить возможность устанавливать их самостоятельно (упрощенка будет работать)
приношу извинения, в загрузке стоял нерабочий файл,
сейчас заменю
Заменил на рабочий.
user1C
Огромное спс за сигнал
предыдущий файл был началом переделки под прямое обращение к Журналу зарплаты, он не работал, но если его доковырять =) можно использовать (удобно для работы прямо на сервере)
Будет время доведу до ума его сам и вывешу.
Еще раз спасибо user1C’у.
Если штатный сотр получил ещё и по договору, то он попадает в договорники, все его начисления кроме договора становятся почему-то нестандартной оплатой и ФСС краснеет… Разве штатный сотрудник не имеет права заключить ещё и «Договор гражданско-правового характера» с предприятием?
(17)
boninfostart
2
Нет, не имеет (по закону).
В Вашем случае его придется уволить, создать новую стр. в справ. Сотр.,
со статусом договорник, потом принять обратно на работу =)
Так как имею такой договор с организацией, в которой работаю, вопрос у меня посерьёзнел после вашего ответа (18) В инете нарыл кое-что, вот цитата:
(19)
boninfostart
2
Да, возможно.
Для меня закон = бух+1С…
=)
для буха закон = требования органов…
можно оспаривать некоторые из них, но это,
как правило, себе дороже.
Охота Вам возится с судами и массой проверок ради пары К рублей?
з.ы. попозжей посмотрю «закон», по которому низя.
Сейчас некогда, сорь.
Плюсую пока что 🙂 На работе проверю как раз… Если что не так отпишусь.
(21)
RonKa
2
Спс =)
(22) Отписываюсь 🙂 Вещь полезная, но мне не пригодилась в этот раз
1. При использовании ЕСХН ставки другие, пришлось лезть в модуль и править
2. Не сильно логично сначала нажимать выполнить а потом печать ) какой смысл?
3. При ручной корректировке данных в карточке учета по данному отчету не поймешь откуда ноги растут при неверном заполнении РСВ, так что хорошо бы еще колоночку туда добавить.. если уж проверяем взносы
4. При добавленных видах расчета (произвольных) выходит трогательная надпись неизвесный вид расчета.. это баг или фича? 😉
Дальше не анализировала уже, проверили РСВ по старинке с помощью долота и какой-то матери )
2RonKa (23)
«1. …» позже добавлю возможность, сейчас нет времени (писал уже об этом вродь =) )
«2. …» согласен, остатки отладки, спс, исправлю.
«3. …» не разумею, какую колонку? (сплю на ходу)
«4. …» хм, не писал такого… у нас полно своих видов расчетов, и таких надписей не вылезало =)
Вероятно, это что то в глобальном модуле у Вас висит, что выдаёт предупреждение.
Еще раз спс за замечания, как смогу — исправлю =)
(24)
к пункту 3 — данные по ручному редактированию карточки учета страховых взносов.. а то бывает цифра в РСВ есть, а в журнале расчета взносов пусто
к пункту 4 — Предупреждение выдавала точно обработка, строка 354
Сообщить(«Нестандартная оплата Договорнику «+Строка(оСотрудник)+» Код= «+сКодВО+» Месяц — «+оПериодЖурн+» Сумма — «+чСумма);
Ну по памяти не совсем правильно воспроизвела ситуацию.. 😳
А за замечания так всегда пожалуйста 🙂 Обращайтесь
(25)
«данные по ручному редактированию» гляну, вот с закрытием месяца отстанут от меня =) и посмотрю
«Нестандартная оплата Договорнику » — хм… проверял на ВидРасчета ОплатаПоДоговору
чужие, нестандартные предусмотреть не смог о_О
Посоветуете? =)
И снова спс за коменты.
(26)
Посоветуете? =)
Да ну его по большому счету 🙂 Сдались и то хлеб
Исправления №2:
— добавил слой с настройками ставок взносов, даты рождения молодой/старый и предельные, налогооблагаемые сумм (по умолчанию при первом открытии встают % для категорий налогоплательщиков — общий режим)
— Кнопка «Сформировать» печатает сразу =)
В планах:
— дать возможность платить Договорникам по произвольным Видам Оплаты без ругани со стороны программы
— добавить возможность выбора запрос/прямое обращение к журналу зарплаты (оставил на сладкое)
«Не учитывает иносранцев, подбитых летчиков, северных медведей =) У нас их нет.» Простите, не поняла какую категорию работников вы назаваете «подбитые летчики»?
(29)
Темп
Ув
В стандартной конфигурации 1С ЗиК есть много обращений
и проверок реквизита «НачисленоЛетчику» и подобным,
такие проверки этот отчет не делает.
Появилась свободная минутка и выяснилось, что расчетчики прошляпили где-то…
вернулся к этой проверке, поправил.
Исправление №3:
— Настроил под 310 релиз
— взносы в ФСС_НС собираются с Журнала Страховых Взносов
— взносы в ФСС_НС появились в таблице отчета
— для удобства намного раскрасил отчет и закрепил область шапки
— строки с ошибкой округления меньше 2 копеек не показываются при печати «Только Ошибки»
осталось:
— ФСС и ФСС_НС не берётся с договорников при расчете, если начисляли, будет светить красным
и в подвале напишет кому, когда, сколько, вид расчета дали
— не выделил облагаемую баз ФСС отдельной колонкой
это позже =)
Нет, не имеет (по закону).
В Вашем случае его придется уволить, создать новую стр. в справ. Сотр.,
со статусом договорник, потом принять обратно на работу =)
Спасибо!!!
Спасибо за работу
Сейчас заценю