<?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='\
Не судите строго
Охо-хо! Скоро мне тоже придется разбираться с этим вопросом. Надеюсь, найду у кого совета попросить.
подскажи как с ней работать. Мне надо исправить начальные остатки по сотрудникам
(3) Valdis_KH,
1) Сделать копию базы!
2)Запускай обработку. Установи новые показатели. Скорее всего если ты не особо в этом рубишь, выстави только «статью финансирования» должна быть «бюджетная». Проставь все галочки «Что корректируем». Заполни ТЧ всеми документами кроме кадровых. Выполнить.
3) Проверяй сальдо. В лучшем случае всё будет чисто. Некоторые суммы могут остаться. в скором приложу к этой теме ещё удну обработку которая подчищает до конца взаиморасчеты, она кстате есть на этом ресурсе, сегодня искал не нашел. Я лишь её немного доработаю для регистра накопления «Зарплата за месяц организации».
в 7 ведомость на выплату формируется общая, т.е. туда входят выплаты по разным КСГУ общей суммой и при переносе ставится одно КСГУ, а в начислении стоят разные. тогда как мне сделать замену по КСГУ?
(6)
Извините, я не понел что Вы написали! Пора научится конкретно писать! Что смотрим… где смотрим… с чем сравниваем (здесь 7-ка меня вообще не интересует)… Предварительно, непонятно как вы базу переносили и лучше очистить шаблоны проводок в семёрке перед выгрузкой(есть обработки)! И что вам мешает выставить всем ВР один КОСГУ?
базу переносил с помощью правил и обработки, которая поставляется вместе с 8-ой. А если я везде поставлю одинаковый КОСГУ, у меня потом отпускные или больничные будут правильно считаться?
А вы попробуйте! Сделайте эти операции в 77 и в 8. Чего точно не будет первый год, так это разбития среднего заработка пропорционально «косгу» и «счтатье финансирования» в БУ. Важно это Вам или нет, должны знать сами. Иначе нужно дорабатывать обработку, расширять список коректируемых «измерений» в этих регистрах. Всё!
а суммы для расчета отпускных и больничных заполнятся правильно будут?
заменил статью финансирования, но остались суммы по КОСГУ, т.е. начисление по 211, 213 и 226, а выплаты по 211, можно как-то это учесть в обработке. При начислении больничных суммы по зарплате удваивает.
(9) да.
(11)после загрузки в 1С 8 я рассчитал больничный лист и посмотрел правильные ли суммы он мне ставит для расчета среднего заработка. Все поставил верно. Затем я сделал замену статьи финансирования, где поставил все галочки, нажал кнопку заполнить, выбрал все и нажал выполнить. Открыл бол. лист и перезаполнил его. Суммы для расчета среднего заработка удвоились. Я что-то сделал не верно или есть косяк в обработке?
(12) есть такое ты прав, буду исправлять. публикация снята…
Можете только регистры накопления использовать, с РР ошибка.
(14)
не понял
вот отличная обработка для замены статьи финансирования и сведения остатков в ноль
http://infostart.ru/public/61340/
(15) т.е. не ставьте галки для РегистровРасчета
все получается супер все считает нормально, но у меня в остатках выходят люди с пустыми КОСГУ и статьей финансирования и не могу найти откуда это берется
Прошу прощения за глупый вопрос (в ЗиК 7.7 работаю давно, там как рыба в воде, а вот восьмерку ЗБУ знаю еще слабо, а у меня несколько клиентов с нового года переходят): Зачем надо очищать шаблоны проводок в семёрке перед выгрузкой? Что это дает?
(13) когда выложите обработку с исправлениями? Хочу на пробной выгрузке потренироваться.
Скажите, почему публикацию закрыли?
Мне сейчас очень помогла бы эта обработка. Никак не могу побороть регистры расчета. Регистры накоплений исправил с помощью обработки
Но с регистрами расчета она, к сожалению, работать не позволяет.
Наконец-то исправил… спасибо Valdis_KH за то что это увидел.
сначала надо делать первой обработкой, а затем второй?
(21) выложите, пожалуйста, обработку.
И насчет шаблонов скажите, пожалуйста, зачем их очищать при переносе надо?
Да
при первой обработке все галочки ставить или только кроме РР
(23) bkn_oktava, 1-ое, обработки я выложел, не?
2-ое, про чистку шаблонов, скажу так, данным обработкам не важно на те шаблоны что перенесется. Лично я не вижу смысла тащить если они есть в ЗиК7.7 непонятные статьи финансирования и статьи расходов в новую базу (одна всеже перенесется), все равно все нужные настройки будут происходить при настройке обмена с БГУ(простите за тафтологию).
(26) Спасибочки огромное!!!
Скачаю обязательно. Очень надо. Спасибо!
Да, про шаблоны глупый вопрос был. Просто с ЗУП (вернее, ЗБУ) только начинаю работать, трушу немного, вот и протупила :))).
(25) Valdis_KH, мы же уже это проходили:). Да ставь все.
Для ВСЕХ добавлю, криво из 7.7 переносятся (типовыми правилами) в принцепе только «статья финансирования», поэтому меняйте только её. Остальные доступные измерения по желанию для экспериментов.
ЗЫ: пожлст, смотрите, какие регистры и для чего они в ЗиК БУ 8, в соответствующей литературе.
(28)
Спасибо огромное, все получилось, остатки очистились!
(29) bkn_oktava, незачто…
вопрос: после переноса данных в восьмерку, делаю свод начислений и удержаний по организации. Там стоит долг за работниками и долг за организацией на начало месяца, причем сумма одинаковая. Эта обработка сможет мне помочь или нет?
(31) MYRZILKA123, да
может я что-то неправильно делаю, но у меня не выходит…(((
(33) MYRZILKA123, Если надо убрать сальдо на начало месяца, для этого нужно убрать сальдо на конец предыдущего, это очевидно, не?
это очевидно! но когда корректируешь регистры накопления (взаиморасчеты с сотрудниками и з/п за месяц), то изменяются данные в расчетной ведомости, а в своде начисленной зарплаты долг за работником и организации остается… (((
А вы галочку убираете с регистров расчета? У меня все без проблем получилось.
(35) MYRZILKA123, при всем уважении к тебе, прочитай ещё раз в (28) p.s.
спасибо конечно за советы, попробую еще раз. если не получится отпишусь…
(29) bkn_oktava, Добрый день!
Вот и я столкнулась с остатками решила попробовать и ни чего не получилось.
Не понимаю, что сделала не так.1.Запустила обработку «Корректировка регистров» выбрала новые показатели
только «бюджетное финансирование» регистры накопления отметила все, а регистры расчета не выбирала и выполнила данную обработку.2.Запустила на выполнение «правка задолженности».3.сформировала свод за сентябрь т.е. по сентябрь включительно данные были перенесены из ЗИК , а октябрь был сформирован уже в ЗБУ и остатки не обнулились?
(39) vera3101, здравствуйте!
Я остатки обнуляла на 01.01.2011. А Вы на 01.09.11 хотите обнулить?
(40) bkn_oktava, Да спасибо это я ,что -то не подумала мы делаем паралельно зарплату и в 7 и в 8 пытаемся накопить данные ,а т.к. из 7 были перенесены все данные по сентябрь поэтому и решила ,что на начало октября обнулить все остатки , чтобы свод за октябрь был без долгов.
(41) vera3101,
Очень ценный совет, кстати — обнуление шаблонов.
При пробной выгрузке не обнулила, пришлось при корректировке регистров выбирать не «бюджетное финансирование», а шаблон. Остался небольшой хвост на другом шаблоне :)))
(42) bkn_oktava, да спасибо можно попробовать.
Если вопрос в сальдо, тоhttp://infostart.ru/public/90194/ и http://infostart.ru/public/90376/ — не плохие обработки переноса сальдо. Их можно немного подпелить и они замечательно заработают под ЗБУ!
Но если вопрос стоит о корректности переноса статей, КОСГУ и пр. по начислениям/удержаниям за период переноса, то простой заменой данных в РР, не стоит делать ИМХО
(45) smooth, конечно, нет.
Но получится оч. громоздко. Тем более, у каждого учреждения свои правила формирования ведомостей на выплату (по статьям, по КБК). Кто-то дробит, а кто-то все пихает в одну ведомость. А в семерке в ведомостях никаких разбиений по шаблонам.
Да из 1с 7.7 все переноситься коряво приходиться писать в ручную
Тоже пробовал переносить из 1с 7.7, после корявого переноса приходится все править в ручную, самому переносить начисления, удержания и выплаты на правильные КОСГУ и статьи.
Очень полезная обработка. После переноса остатков столкнулась с такой же проблемой. Попробую эту обработку на своей базе.
При автоматическом переносе данных в ЗиКБУ аналогичная проблема меня не миновала 🙁
http://forum.infostart.ru/forum24/topic47275/
Эта вторая распространенная ошибка возникающая при автопереносе.
Первая была по стажу за выслугу. По ней тоже можно найти обработку
Обратился в ИТС, по поводу остатков, молчат. Попробую вашу обработку.
Проблема решена обработкойhttp://infostart.ru/public/60837/
Обнулил только регистры ВзаиморасчетыСРаботникамиОрганизаций.
очень на нее надеюсь…
(51) fidg,
а как Вы обнаружили ошибку по стажу? где она вылезла?
Если идет речь о поиске ошибки при переносе, то в справочнике физ лиц просто отсутствовал стаж работников.
Если про поиск названия реквизита, то обработку нужно выполнять пошагово поставив точку останова на строке реквизита.
Со стажем вроде бы все норм. (Это я ищу к чему придраться…):).
А разработчику вышепреведенных обработок — огромное человеческое СПАСИБО!!!. Дай Вам БОГ «Светлой» головы и доброй памяти.
Спасибо, очень четко и без загогулин. Вы — Гений!!!
(56) 1996oks, спасибо и тебе тавоже)!
Кстате в (6)
здесь я погоречился, лучше не надо всем ВидамРасчта выставлять одно КОСГУ!
————————————————————————-\r
И ещё! Большое спасибо, колеги и вот этому перцу:
Спасибо автору за обработку!!!
спасибо. мне тоже очень помогла эта обработка. обнулила все в 0. урра!))
Спасибо! Тоже надеюсь, что косяки 7-ки вычистит.
При открытии ошибку пишет:
Ошибка при выполнении файловой операции
по причине:
Неверный формат хранилища данных
Спасибо за решение чужих проблем !!!
вторая обработка «PravkaZadolzhennostiZUP» создает документ с незаполненными КОСГУ и «Статье расходов», «Статье финансирования» , результат становится еще хуже , чем было.