<?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='\
в УТ11 работает?
(1) ritol, пока нет
Работает хорошо, единственное замечание: если в код номенклатуры «длинный» или содержит 2-3 строчки тогда обработка теряет количество/цену/сумму
(3) Bylka, ну да, если какой либо реквизит содержит перенос строки то беда, и ничего не поделаешь.
У меня в бухгалтерии 3.0 на переносит товары в накладную, все распознает, добавляет, а как только делаю перенести выходит пустая накладная. Может я что-то не так делаю или в настройках дело?
У меня то же самое в бухгалтерии 3.0 на переносит товары в накладную, все распознает, добавляет, а как только делаю перенести выходит пустая накладная. Что не так?
(5) ph74, (6) byxgalter,
Да, действительно, в последней версии бухгалтерии, что то изменилось и табличная часть не переносится — будем разбираться.
Извините за задержку — отчетный период.
Хотела у вас узнать как скоро будут дополнена обработка, работы много. Данная обработка просто спасение для нас.
(8) byxgalter, между майскими постараюсь
(8) byxgalter, (5)
от сюда
Забирайте пока
Открывать через файл открыть или подключить в доп.обработки в желаемые разделы.
Документ-получатель указывать уже в самой обработке (рядом с кнопкой Перенести)
Чтобы статью переоформить нужно часа полтора — потом как ни будь.
(10)
Спасибо огромное.
С обработкой разобрались.
Здравствуйте! Скачал файлик, не работает. При попытке переноса закрывается окошко и ничего не переносит. Бухгалтерия предприятия, редакция 3.0 (3.0.40.27)
скачал вашу 2ю обработку, работает только через файл->открыть, но хотелось бы чтобы как в первой обработке интегрировалась в сам документ… Подшаманите?))
(13) oligarhrich,
Обработка перестала работать после очередного обновления с типовой на типовую, разбираться в БСП не вижу смысла – она живет по своим, не понятным мне, законам и часто меняется, как видно, без поддержки предыдущего функционала.
Публикацию я, конечно, обновлю, но механизм, скорее всего, будет работать как дополнительная обработка и интегрирован в документ не будет.(
з.ы. или просто сниму с публикации.
(14) не, не, снимать не надо, пусть хоть так но работает, это очень жизнь многими облегчает.
(2) заточить под УТ11 сложно будет?
(16) roofless, ну не очень
(14) Обработка хорошая много раз выручала в жизни, но такой вопрос: будет рассмотрен вариант загрузки УПД в данной обработки??
Спасибо за ответ если он будет)
по проблеме, озвученной в п.3. её можно избежать предварительно откорректировав исходный файл (растянув столбцы, убрав переносы)?
//для подписки к теме
Добрый день! Не работает на текущем релизе, при переносе в документ выдает ошибку
{Форма.Форма.Форма(113)}: Значение не является значением объектного типа (ИмяФормы)
ИмяФормыДокумента = Окно.ПолучитьСодержимое().ИмяФормы;
(21) medvedkiller, ИСПРАВЛЕНО
Однако.
В последних версиях бухгалтерии найти окно документа по представлению объекта невозможно, так как его заголовок формируется в зависимости от реквизитов, и никакого метода у объекта не предусмотрено.
Поэтому поиск окна теперь осуществляется по номеру и дате объекта и, если, при выполнении обработки, у вас будет открыто несколько документов разных видов в одинаковыми номером и датой (дата,время), попытка загрузки произойдет в первый попавшийся!
P.S. например, окно документа Поступление (акт, накладная) 00БП-000001 от 16.03.2016 10:15:57
теперь называется Поступление товаров: Накладная 00БП-000001 от 16.03.2016 10:15:57
или скажите что подправить в обработке… а то у самого чет знаниев не хватает
Все норм, заработала
Скачала обработку.
А она на работает, таблицу распознает, а в документ не переносит. Пишет «Значение не является значением объектного тира (номер)»
В чем может быть проблема?
Значение не является значением объектного типа (номер) — проявилось при нажатии на кнопку «перенести в документ» Что не так?
работает через дополнительные обработки! Ура!
Подскажите, обработка позволяет создавать номенклатуру и добавлять её в нужные группы? То есть у нас папка Материалы разбита на много групп. Или обработка будет кидать номенклатуру в корневой каталог папки Материалы?
С УПД работает? Или только с Торг-12?
Заранее спасибо, очень жду ответ.
Бухгалтерия предприятия, редакция 3.0 (3.0.68.66)
не работает. Верните деньги
(29) Номенклатуру будет добавлять не в Материалы, а вообще в корневую группу справочника. С УПД не работает, там колонки по другому расположены, но переделать не сложно.
И, да — я здесь бываю не часто, сори)))
Обновлено под бухгалтерию с новым НДС, проверено на релизе 3.0.70.30
(30) тут вам не алиэкспресс — денег не берём и не возвращаем, кидайте почту в лс, пришлю исправленную версию
Отличная обработка, частенько бухгалтерия спрашивает, подобные вещи, надо будет взять на заметку. Было бы идеально если бы она была более универсальной, а именно работала сУПД и сч-фактурами, а так же с ут 11