<?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='\
😀 Спасибо, заполнилось, некоторые цифирки даже совпадают с ожидаемыми, рекомендую ))) Но блин хотелось бы от ОдынЭс нормальных отчетов и этот и ФСС-4
На моей памяти ещё ни один новый отчет сделаный 1С не работал сразу. Более того очень часто исправление ошибок выдается в аккурат к концу срока сдачи отчетности.
(0) Огромное спасибо. Вроде бы помогло, завтра бухи выскажут всё что думают 🙂
Теперь с ожиданиями совпадает гораздо больше 🙂 и не только в комплексной. 😀
1. Работает с бухгалтерией.
2. Заполняются данные по оплате сборов берутся из данных бух учета.
😥 Вроде все добавил и выдает такую ошибку
ВсегоСотров = Сотрудники.РазмерСписка();
{C:КСEXTFORMSRP10Q1.GRPESN_GET.ERT(1221)}: Значение не представляет агрегатный объект (РазмерСписка)
Пока НомерЗначения < СписокСотрудников.РазмерСписка() Цикл
{C:КСEXTFORMSRP10Q1.GRPRCV102.ERT(3551)}: Значение не представляет агрегатный объект (РазмерСписка)
При ЕНВД выводит нули 🙁
не заработало 😥
тоже везде нули
(5) Скорее всего у Вас нет исправления Сотрудник.ФизЛицо просто в комплексной и в бухгалтерии это разные справочники. Условие там стоит.
(5) (6) (7) а в какой конфигурации не заработало?
В Комплексной не работает, ошибки аналогичны (5).
Да, в типовой комплексной 496 не работает (я скачивал файл).
ЕстьЕНВД = ?(Константа.ОрганизацияЯвляетсяПлательщикомЕНВД = Да<<?>>, 1, 0);
{\SERBUHBUHBASES_NEWMORONMASKRUSATCEXTFORMSRP10Q1.GRPESN_GET.ERT(74)}: Переменная не определена (Да)
ТаблицаОсновныхТарифов = глПолучитьТаблицуОсновныхТарифов(ДатаАктуальности<<?>>);
{\SERBUHBUHBASES_NEWMORONMASKRUSATCEXTFORMSRP10Q1.GRPESN_GET.ERT(181)}: Недостаточно фактических параметров
СотрЗапросПоВзносам = глОтобратьСтрокиТаблицы<<?>>(ЗапросПоВзносам, СписокКолонок);
{\SERBUHBUHBASES_NEWMORONMASKRUSATCEXTFORMSRP10Q1.GRPESN_GET.ERT(749)}: Функция не обнаружена (глОтобратьСтрокиТаблицы)
Пока НомерЗначения < СписокСотрудников.РазмерСписка() Цикл
{\SERBUHBUHBASES_NEWMORONMASKRUSATCEXTFORMSRP10Q1.GRPRCV102.ERT(3551)}: Значение не представляет агрегатный объект (РазмерСписка)
Виноват, я скачал только 1 файл. Пробую и второй.
Все равно не работает.
Вот
Если (Сотрудник.Инвалид.Получить(ДатаМесяца) = 1) Тогда
{\…ATCEXTFORMSRP10Q1.GRPESN_GET.ERT(425)}: Поле агрегатного объекта не обнаружено (Инвалид)
Пока НомерЗначения < СписокСотрудников.РазмерСписка() Цикл
{\…ATCEXTFORMSRP10Q1.GRPRCV102.ERT(3551)}: Значение не представляет агрегатный объект (РазмерСписка)
В Комплексной тащит уплату налогов по всем организациям имеющимся в базе, короче тупо дебетовый оборот ВСЕГО 69.2.2.. (и по остальным 69ым тоже) Лечится установкой фильтра на бухитоги по разделителю учёта.
в RCV102.ERT строка 3821
Если (ИдентКонфигурации = «BUOUSL») ИЛИ (ИдентКонфигурации = «BU42TK») ИЛИ (ИдентКонфигурации = «BUPSB25») Тогда //Бухгалтерия, ПУБ, Комплексная
БухИт = СоздатьОбъект(«БухгалтерскиеИтоги»);
БухИт.ИспользоватьРазделительУчета(ВыбраннаяФирма);
БухИт.ИспользоватьСубконто();
Если КонецРассчитанногоПериодаБИ() < Дата2 Тогда
Я хоть и на паровозе, но работает! Спасибо! Тем у кого не работает — убить все предыдущие варианты с сохранением пустышек и … все сначала с титульного листа с другим
именем варианта. 496 тип.
(13) Спасибки! Поправлю 🙂 Хотя отношение это имеет только для тех у кого больше одной фирмы в базе. Иногда но бывает.
И ещё, по статистике скачивания я обратил внимание на то, что народ качает только один файл RCV102 а скачивать надо оба файла. Более того собственно весь расчет и делается в ESN_GET
(12) С сотрудником — инвалидом проверю 🙂
Объясните несведущему человеку! Скачать эти два файла и заменить в папке ExtForms? Или еще ручками надо все править? 😳
Заменила. Попала оплата, а начисления 0! Как небыло так и нет…. 🙁
(16) в какой конфигурации используете?
Комплексная 496
сегодня полдня убил на «обновления» от 1С от 12.04.2010 — для Комплексной РСВ-1 не работает, завтра буду Ваш вариант пробовать…
В комплексной конфигурации, рел. 496 при наличии УСН или ЕНВД по прежнему выдаются только нули. Если смешанная система (общая + ЕНВД), то берутся только цифры, относящиеся к общей системе налогообложения, суммы по ЕНВД игнорирует 🙁
Огромная благодарность за доработаный отчет. Одинэс в очередной раз обо**алась выкладывая отчетность 3 раза подряд и так и не исправив очевидный косяк, видимо пустили все силы на 8ку 👿
Единственное пришлось регистироваваться в вас 2 раза тк стоит ограничение на скачивание файлов раз в 24 часа. Простите меня пожалуйста 😳
(20) а вы проводки при усн формировать не пробывали? Очень помогает. 😉
У меня при распаковке выдает:! D:ИнфостартRCV.zip: Архив повреждён или имеет неизвестный формат.Антивирус отключен. Скачивал неоднократно.
Может, кто подскажет??? Скачивал Оперой.
Оперой качать нельзя!
Спасибо за програмки! Работает! По-моему вам (kitwell) пора требовать проценты от 1С за исправление их ошибок!
Два дня б/л за счет работодателя не должны попадать в строки 200,201,202?
(27) Должны. и в 210-212 тоже должны попадать, как необлагаемые. Обратили внимание, что в 210-211 не попадают выплаты иностранцам, хотя по 212-ФЗ тоже необлагаемые суммы
Ну вот, не получилось у меня с этим вариантом 🙁
А 1С уже свой выложил. Вроде как заполняется.
Это всё конечно хорошо…
А вот что делать с RCV104.ERT (раздел 4.1) в Комплексной??? (данные по инвалидам. и такие люди у нас есть)
Кнопка «Заполнение» активируется только при установленной галке «заполнять по внешним данным»… и где эти внешние данные брать??? Я в Комплексной не нашел никакого отчета, который хоть сколько-нибудь похожую информацию рожал … а уж тем более выгружал 👿
А про RCV105.ERT (раздел 4.2) вообще молчу… там заполнение вообще ни для какой конфигурации не предусмотрено. 🙁
заполняется то заполняется…. только у нас заполняется совсем неправильно сверЯешь со стандартными отчетами не то 😥
Для тех кто еще не знает.
1. Если у сотрудника з/п превысит 415000 руб то формы 1С включая свежую несут полную ахинею.
2. Последний релиз 1С включает в базу б/л за счет работодателя 🙂 из-за этого опять же полный бред по циферкам.
так понимаю,что у кого смешанная система (общая + ЕНВД), тот заполняет ручками отчет? Потому как суммы по ЕНВД в отчет не попадают
(33) Верно понимаете. Сейчас непонятно нуж но ли этот момент дорабатывать для комплексной. Вдруг 1С разродиться исправленным отчетом.
спасибо за ответ!мне этот вопрос был задан бухгалтерией, почему в 1-2 раздел не попадают люди с ЕНВД, но обнаружила в данной ведомости раздел 3, который как раз и должен заполняться данными по инвалидам и ЕНВД,значит получается что все ок, и в 1-2 раздел ЕНВД и не должен попадать
Спасибо, а то бухи после обновления чуть не сьели )
А где собственно ESN_GET.ERT???
У меня вместо него предлагает скачать RSV1_1203.ERT…. который я уже как бы скачал.
(37) Kurt, Спасибо за замечание, конечно повтор файла удалил, esn_get добавил.