<?php // Полная загрузка сервисных книжек, создан 2026-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='\
хорошая обработка, я сам в свое время намучился с выгрузкой в банк, то не там запятая, то не тот порядок данных.
отличная штука, я сам долго парился с этим банком пока добился правил выгрузки от них.
(0) Цитата «Взял вот эту обработку и немного переделал»
ссылка «обработку» указывает на публикацию не для ЗУП 🙁
Цитата «Взял вот эту обработку и немного переделал»
ссылка «обработку» указывает на публикацию не для ЗУП
сори ссылку поправил… если еще точнее то
Извините, если написал не сюда, но нет ли такой же для версии 7.7? Может быть у кого то завалялась?)
Вот спасибо-то. Не придется парится — все готовенькое 🙂
(5) Что-нибудь типа этого:
(5) Dred88, обращайтесь.
Извините, если написал не сюда, но нет ли такой же для версии 7.7? Может быть у кого то завалялась?)
добавил для 7.7 протестируйте
добавил для 7.7 протестируйте
спасибо, переходим на сбербанк, думаю пригодится
«Обработка может использоваться дополнительная внешняя обработка.»
Можно перевод на смысловой язык?
Надеюсь, обработки написаны лучше чем сконструирована эта фраза?
PS. За скриншоты поставил бы «-«. Разработчику проще затенить значения полей ввода, чем подменить их нейтральным текстом.
» Обработка может использоваться дополнительная внешняя обработка. »
Можно перевод на смысловой язык?
Надеюсь, обработки написаны лучше чем сконструирована эта фраза?
PS. За скриншоты поставил бы «-«. Разработчику проще затенить значения полей ввода, чем подменить их нейтральным текстом.
ну да, вы правы, пропущено наречие «как»: «как дополнительная внешняя обработка»…
по поводу скриншотов, действительно проще затенить… а в чем собственно неудобство для восприятия?
добавил для 7.7 протестируйте
выгрузил пробную- вроде бы работает( В екселе посмотрел), бухам скажу — в сбербанк отнесут) Спасибо
Скачивала отсюда подруга!Очень удобная обработка! работает без проблем!
вот есть такая строка:
ИмяФайлаЛС = КаталогИБ()+»ExtFormsлс.txt»;
что этот файл обозначает или что в нем?
вот есть такая строка:
ИмяФайлаЛС = КаталогИБ()+»ExtFormsлс.txt»;
что этот файл обозначает или что в нем?
чтобы не трогать конфигурацию решено было номера лицевых счетов хранить в файле лс.txt, который лежать будет в папке ExtForms информационной базы…
чтобы не трогать конфигурацию решено было номера лицевых счетов хранить в файле лс.txt, который лежать будет в папке ExtForms информационной базы…
понятно, тогда какова его структура?
понятно, тогда какова его структура?
Если бы вы открыли файл для редактирования кнопкой на форме, вы бы увидели комментарий с описанием структуры, хотя тот же комментарий можно увидеть из кода:
456545126515616516|ИВАНОВ ИВАН ИВАНОВИЧ
Всё хорошо, только про удержания банка забыли! :0)
очень хорошая обработка:)
Очень большая просьба кто может выслать на маил serge_grishin@rambler.ru эту обработку
За ранее спасибо
спасибо , избавили от основной части работы , осталось только заменить один документ выплаты на список и наши бухи будут счастливы , как и я ))
Однозначно плюс.
Раньше выгружал в пару «Сбербанковских» файлов(ХХХХХХХХ.kХХ и ХХХХХХХХ.sХХ).
А потом (по просьбе буха) сделал и в DBF.
Может стоит добавить выгрузку и в формате Сбербанка (ХХХХХХХХ.kХХ и ХХХХХХХХ.sХХ)
(23) KliMich, необходимо знать формат выгрузки. отпишите в личку, можно и добавить…
(24) Делал давно, стал выяснять, может там изменился формат выгрузки и оказалось, что СберБ в этом формате не принимает «зарплатные списки»! А берет только в DBF.
Поэтому дико извиняюсь не понадобиться …
Большое спасибо, отличная обработка. Да еще и вовремя для ЗиК 7.7 очень срочно понадобилась, потому что часть сотрудников хотят получать ч/з сб/банк. Осталось придумать как делать выгрузку на два банка. Вобщем +.
а для такой структуры возможно?
(27) Valdis_KH,
из вашего вложения можно определить только количество полей и их мена. и то с последней колонкой вопрос.
ни формат выходного файла, ни его кодировка, ни типы полей, ни структура шапки из этого не ясны…
а так в принципе возможно, почему нет.
имя файла: spMMMMNN.DBF, где
sp — постоянное,
MMMM — номер договора,
NN — порядковый номер реестра.
Последняя колонка не заполняется.
1-ая колонка номер отделения банка (число 4 знака)
2-ая филиал (число 4 знака),
3-ая …
структура в файле
у меня вообще ничего не получилось в варианте для ЗБУ, не дает выбрать документ выплаты, нажимаю на ссылка на объект, ничего не происходит
(30) sssvetl,
сообщите номер релиза вашей конфигурации. при запуске обработки никаких ошибок не появляется?
sssvetl,
сообщите номер релиза вашей конфигурации. при запуске обработки никаких ошибок не появляется?
Все разобралась, там в поле тип для ссылканаобъект стоит «строка», поставила ведомость в банк и все ОК. Спасибо.
нет, не получается, документ выбирается, при нажатии обновить пишет фигню.
нет, не получается, документ выбирается, при нажатии обновить пишет фигню.
может вы используете другую конфигурацию например «Зарплата и Управление Персоналом»? на ней обработка не тестировалась
в противном случае сообщите номер релиза. только что проверил еще раз на релизе 1.0.31.2 — все работает.
Добрый день!
А для такой конфигурации будет работать?
(29) Valdis_KH, все замечательно, только…
1. какая конфигурации, 7.7. ЗиК? 8.2 ЗиК? иная (нужное подчеркнуть)
2. таки кодировка выходного файла (DOS/WINDOS)
3. вопрос по полю 4 (KV) (заполняется произвольно/выбор из списка/константа)
4. по возможности, если конечно не секрет… какой регион сбербанка или какой банк требует данный формат, дабы может кому еще пригодится 🙂
Добрый день!
А для такой конфигурации будет работать?
нет, для такой конфигурации не предусматривалось… но можно и подправить если очень надо
Добрый день! Очень надо!!!
Прилагаю еще DBF файлик
Извините!нашел
то что конкретно нужно, но опять же не под мою конфигурацию.
(36)
1) 8.2 ЗиК бюджет
3) поле 4 (KV)- константа (53)
4)КП ОСБ 729
Извините!нашел
так вам необходимо оформить карты, а не выгрузить зарплату на них?
Попробовала выгрузить, получилось, спасибо за обработку
Спасибо огромное! Классно.
Автору спасибо!
а эта выгрузка подходит для любого отделения сбербанка в СПб?
УРА-А-А!!! Спасибо большое. Все работает. Сберегла кучу времени!!!
Раньше выгружал в пару «Сбербанковских» файлов(ХХХХХХХХ.kХХ и ХХХХХХХХ.sХХ).
А потом (по просьбе буха) сделал и в DBF.
Может стоит добавить выгрузку и в формате Сбербанка (ХХХХХХХХ.kХХ и ХХХХХХХХ.sХХ)
Огромное спасибо!
Отличная штука.
спасибо большое, надеюсь прокатит, а так дак сберыч что то вобще не парится, все должны вокруг них вертеться и под них подстраиваться))
Подскажите под 1С:Зарплата и кадры бюджетного учреждения 8.2 подойдет?
(51) BAPPKAH, в заголовке же публикации указано: ЗиК БУ 8.2
спасибо уже поставил и пользуюсь))) еще одной головной болью меньше)) бухгалтерия счастлива))
можно доработать обработку для ОСБ 729, нужно чтоб выбиралось несколько ведомостей и список формировался с общими суммами по всем ведомостям?
спасибо большое
а никому не приходило письмо что они с 1 мая поменяли что то в названии файла и в самой таблице? никто не переделывал случайно уже?
(54) Valdis_KH,
добавлено, пользуйтесь
Плюсую, сэкономил свое рабочее время
(57)
можешь скинуть на ящик а то sm не хватает, krot2906@rambler.ru? заранее спасибо
Обработка пришлась очень кстати. Перешли на новый банк как всегда «вовремя» и надо было очень быстро организовать выгрузку зарплаты… И бухгалтерия счастлива и мне меньше работы. Спасибо!
обработку не могу скачать так как не хватает start money, но когда то тоже пришлось писать. так как банковский детсад абсолютно не устраивал. если кому надо, могу выложить в качестве алтернативы
а можно сделать чтобы поле 4 (KV)бралось из счета, последние 2 числа, просто у одних карточка зарплатная, у других социальная, а у третьих вообще сберкнижка
(57)
скачал, у меня формат другой SP
(61) ProkopyukIN,
выложи посмотрю и проверю на своем банке
ок. до завтра подправлю, тчоб более менее универсальная была и выложу. на данный момент конкретно под нашу компанию заточена.
Подскажите, а для аваля у вас нет ничего подобного? Или эта обработка универсальная?
«скачал, у меня формат другой SP»
(63) Valdis_KH,
описание формата прикладывалось. сформулируйте Ваш.
поле KV всегда 2 последних знака счета?
(66) avcherkasov,
кто есть «аваль»?
(67) Аваль — это банк. Спасибо, уже нашёл, что искал.
(67)
описание прикладывалось ранее и ты делал эту обработку(смотри 29.), но мне теперь надо чтоб поле KV бралось из счета последние 2 цифры
Спасибо за обработку, а для кодировки с наименованием файла s0u2n эта обработка подойдет?
У нас наименование файла такое SXXXXmdn.dbf,где s — постоянное значение, XXXX — КОД ЗАРПЛАТНОГО ДОГОВОРА, m — номер текущего месяца,d — день текущего месяца, n — номер файла за день.Подойдет ли эта обработка?
Спасибо, большое!! Очень хорошая обработка. Немного подкорректировала под себя в части выборки данных. И пришлось тип ссылки на документ поменять — что-то не установилась она автоматически в обработку ) но в остальном — все просто супер!!!
после обновления стало выдавать такую ошибку
{Форма.Форма.Форма(5)}: Метод объекта не обнаружен (РазложитьСтрокуВМассивПодстрок)
ФИО = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(Данные.ФизЛицо.Наименование, » «);
релиз 52.1 ЗиК БУ файл SPXXXXNN.***
(73) Valdis_KH,
Исправлено, но можете и сами поправить 2 буквы:
ФИО = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(Данные.ФизЛицо.Наименование, » «); // заменить на:
ФИО = ОбщегоНазначенияЗК.РазложитьСтрокуВМассивПодстрок(Данные.ФизЛицо.Наименование, » «);
спасибо огромное, все плучилось
скажи для SPXXXXNN.*** делал чтобы можно было выбирать несколько ведомостей?
В посте написано: «По просьбе добавлена обработка, формируюцая файл по формату SPXXXXNN.***:»
А где эта обработка, стесняюсь спросить?
В обработке «Выгрузка зарплаты на карты в сбербанк в DBF формате (по нескольким ведомостям)» ничего подобного нет