<?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='\
Спасибо. Отлично помогло.!
В ЗУП 2.5 будет работать, не проверяли?
(3) nord, в части очистки НДФЛкЗачету и РасчетовСБюджетом — точно не будет, у меня в запросе есть измерения, которых в ЗУП нет, а вот закрытие РасчетовНалоговыхАгентов может сработать
(3) nord, можете чуть подправить 1 и 2 запрос и попробовать)
(3) nord, проверьте, выложил вариант, рабочий в ЗУПе
А в каком порядке запускать обработку? У нас стояла «галочка» — исчисленный ндфл как удержанный.
(6) Спасибо.
(7) irisha, согласно рекомендациям, в этом году этот флажок надо отключать
Я это знаю. Я же не про «галочку» спрашиваю, а про порядок запуска обработки.
(10) irisha, а, ну этот флажок на получение остатков по регистрам не влияет
Подскажите, если заработная плата начисленная за декабрь 2015 года частично выплачивалась в декабре, а остатки в январе. То на какую дату запускать вашу обработку? Или возможно есть какой то порядок действий в данном случае?
(12) scanner1980, единственное могу предложить — откорректировать получившийся документ «Корректировка записей регистров» и убрать оттуда удержание НДФЛ по суммам, которые фактически ещё не выплачивались
Зарплата и кадры бюджетного учреждения, редакция 1.0 (1.0.91.1). Запускается обработка, нажимаю кнопку выполнить.. и ничего не происходит. Остатки также не меняются. Что я делаю не так? Сервис- Доп отчеты и обработки-
(14) Zolotova78, дата установлена в 31.12.2015?
Проверьте так же, создан ли документ «Корректировка записей регистров» этой датой.
Корректировка записей регистров» документ создан, но НДФЛ за прошлый период попадают в отчет 6-ндфл
(16) Zolotova78, а после этого Вы перепровели в правильном порядке документы с 01.01.2016? Просто обработка только выравнивает остатки на 01.01.2016; если эти неправильные остатки успели поучаствовать в доках текущего года — НДФЛ в них нужно проверить и при необходимости перепровести
http://infostart.ru/public/458549/
Обратите внимание на удобный отчет —
Спасибо, все получилось. Нужно перепровести документы за 2016 год
Чем отличается ОчисткаРегистровПоНДФЛ_v1.1.epf и ОчисткаРегистровПоНДФЛ.epf ?
(19) newtype, файл с суффиксом «v1.1» содержит обновления от 27.03.2016
Спасибо за обработку.
Небольшое дополнение — конфигурация «ЗКБУ Медицина» в метаданных называется «МедицинаЗарплатаИКадрыБюджетногоУчреждения», у Вас «ЗарплатаИКадрыМедицинскогоУчреждения».
(21) sempaii, спасибо за подсказку, сейчас исправлю и обновлю файл 🙂
Значит я зря свой велосипед изобретаю. Есть желающие потестировать ЗУП 2.5 ? НДФЛ к Зачету не закрывает.
(23) MishaD, ничего не зря) больше обработок хороших и разных!
спасибо большое за обработку.
почему-то все равно некоторые остатки не закрывает в ЗУПе.
и по поводу проведения документов- было бы здорово на будущее сделать проведение за период. потому что все равно теперь регулярно придется перепроводить документы, чтобы восстановить ндфл для сдачи. теоретически каждый раз после сдачи хорошо закрывать период, и потом уже проводить только новые, а не с начала года.
также вначале проведение нужно отменить, а потом последовательно проводить, иначе может получиться только хуже.
вот если б так сделать было бы вообще просто замечательно на будущее)))
(25) hellf, по поводу незакрывшихся остатков напишите по возможности в л/с, было бы отлично, если бы была возможность через TV посмотреть — на попавшихся мне базах было нормально, но я тестировал только на паре ЗУПов, притом в состоянии, близком к идеальному)
(26) я сейчас попробую разобраться что не закрылось и обязательно отпишусь. Зуп здоровенный, с двумя переносами из 7.7. хотя учет пытались вести довольно строго, но состояние все таки кхм… не идеальное, да.
(27) hellf, спс, будем ждать) если мой косяк — так надо исправлять)
Спасибо за обработку!
Очень большое слезное пожелание — чтобы заодно с перепроведением документов в них исправлялась дата получения дохода с первого на последнее число месяца.
Если базу обновили только недавно, в начислении ЗП, больничных и т.п. на вкладке НДФЛ дата получения дохода стоит первое число месяца…
Спасибо за обработку! Вроде бы замечательная вещь! Первое испытание проводил на новейшем релизе 1.0.92.2, (при условии, что все сальдо за 2015 год было выплачено в декабре). Правда, проведенные Ведомости в банк перепроводить не хочет, ругается, что не может, их перепровел вручную. «Анализ начисленных налогов и взносов» (по НДФЛ) показал «ровненький» красивый результат. Еще раз Спасибо!!!
Но есть вопрос: если обработка формирует Корректировку записей регистров накопления на 31 декабря, то как тогда отработает НДФЛ удержанный и перечисленный в январе за декабрь, если декабрьская зарплата выплачивается в январе?
(30) ivnik,
1. по поводу ведомостей — если не трудно, то приведите сообщение об ошибке
2. по поводу НДФЛ декабря — к сожалению, на автомате данную ситуацию не обработать; если ну очень нужно — то можно убрать расходные записи регистра «НДФЛ расчеты с бюджетом» по декабрьскому НДФЛ из документа «Корректировка записей регистров»
(31) Сообщения вот такие: {Форма.Форма.Форма(484)}: Ошибка при вызове метода контекста (Записать): Не удалось провести «Ведомость в банк 00000000015 от 29.02.2016 12:00:05»!
Произошла ошибка: Ведомость в банк 00000000016 от 29.02.2016 12:00:06
{Форма.Форма.Форма(484)}: Ошибка при вызове метода контекста (Записать): Не удалось провести «Ведомость в банк 00000000016 от 29.02.2016 12:00:06»!
Произошла ошибка: Ведомость в банк 00000000017 от 14.03.2016 0:00:01
P.S. Может на предыдущих релизах его и не было, а в последнем 1С-ники изменили алгоритмы проведения Ведомостей…..
проверила. Остатки чистит нормально.
но простое перепроведение в некоторых случаях задваивает удержание по выпискам из банка.
то есть, чтобы получить правильные удержания, надо все таки вначале отменять все движения за период, а потом последовательно проводить.
иначе будут ошибки, которые к тому же сложно обнаружить при большом количестве данных.
(32) ivnik, сегодня ради интереса прогоню на 1.0.92.2
(33) hellf, да, я уже сам столкнулся — надо сначала проведение по всем регистраторам отменять, потом по хронологии проводить, сохранять нужные движения, а потом откатывать транзакцию
(34) )) можно рассчитывать на обновление обработки?
ПС. вышло новое обновление,в котором изменения по ндфл в межрасчетных выплатах есть.
надо проверить как оно теперь будет при перепроведении
(35) hellf, да, и даже нужно рассчитывать) просто я слегка в ахтунге с отчетностью)))))
здравствуйте!
работаем в облаке, к сожалению, применять обработки нельзя.
из-за не совсем верного ведения обнаружены ошибки по оборотам за месяц/год, по начислено/удержано/выплачено, в том числе и по налогам, при чем в целом отклонения от реальности не слишком большие, но часто есть такое, что налог должен был быть удержан по одной статье расходов, а удержан по другой и т.п.
придется исправлять руками.
не могли бы вы сказать, какие регистры надо смотреть и что править?
на заполнение ведомости влияет регистр «зарплата к выплате», там у нас ошибки обнаружились (сотрудник не по физ лицу).
а как правильно корректировать начислено/удержано/выплачено (которые потом отражаются в отчете полный свод…
спасибо
(37) alfi, добрый день
Вам, скорее всего, подойдет документ «Корректировка учета по НДФЛ и страховым взносам»,там есть корректировка удержанного НДФЛ
(37) alfi, еще можно корректировать через документ Перенос данных. он вообще универсальный для любых корректировок.
(39) hellf, да, про документ знаю.
Не могли бы вы подсказать, где описана взаимосвязь всех регистров и отчетов?
(40) alfi, может быть связь регистров и документов? Это можно посмотреть из любого документа- в документе нажать Действия-Перейти-движения документа по регистрам. и там увидите какие ваши документы что двигают.
(41) hellf, в конфигурации, в которой мы вынуждены работать, нет возможности посмотреть, что куда записалось.
Поэтому и пытаюсь узнать, какие регистры надо править, чтобы данные пришли в норму.
Еще при переносе, как сейчас выясняется, некоторые данные там удволились и затроились даже.
Но этот регистр самый простой и ни на что почти не влияет.
А как привести в порядок начисленное, удержанное (ндфл, профсоюз), выплаченное (оно не зависит от регистра зарплаты). Плюс потом надо проверить сам НДФЛ…
и всё это вручную 🙁
GlebHappy,
Вопрос: если мы очистили регистры НДФЛ на 31.12.2015, то зачем и что делает флажок «Обрабатывать документы»?
перепроводит документы за период до 31.12.2015 или после 31.12.2015
(43) RodinMax, ну конечно после.
(42) Да нет, возможность там есть, как и в любой 3.0 (Вид — настройка панели навигации формы — вытащить нужные регистры), только у вас должны быть права администратора, в облаке они обычно у сопровождающей компании или у ГБ.
На вскидку, это РасчетыНалогоплательщиковСБюджетомПоНДФЛ, все остальное вроде бы вторично для целей 6-НДФЛ.
Для полного свода (начисления/удержания) используется другой регистр — НачисленияУдержанияПоСотрудникам, для выплат — ВзаиморасчетыССотрудниками.
С уважением, Беляев Антон
(42) И если можно, вы кто: образование, культура, жилищники?
(46) anto-belyaev, образование
Добрый день на 1.0.93.2 выдает ошибку. Что-то со ставкой ндфл.
Форма.Форма.Форма(325)}: Ошибка при вызове метода контекста (Записать)
КлючЗначение.Значение.Записать();
по причине:
Запись не верна! Значение поля «Ставка налогообложения резидента» не может быть пустым! (Регистр накопления: НДФЛ расчеты с бюджетом; Номер строки: 1)
Добрый день! У меня при запуске обработки пустой экран, вообще ничего нет версия Зарплата и управление персоналом, редакция 3.0 (3.0.25.144) (http://v8.1c.ru/hrm/)
как исправить?
(49) annapa, так версия предназначена для ЗУП ред. 2.5! А не для 3-ки, конечно не будет работать.