<?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='\
Проверено: отчет совместим с рарусовской конфигурацией Розница 8. Магазин одежды и обуви, редакция 2.1 (2.1.8.16)
Для тех, кто сомневается заработает или нет отчет на конкретной конфигурации / базе — скидывайте в личку линк на выгрузку вашей базы. Скачаю, проверю на совместимость, результат опубликую в комментариях
в акт сверки не попадает наличная оплата. розница 2.2.4.25
У меня ошибка не воспроизводится. Если все еще актуально, скидывайте в личку ссылку на бекап базы, проверю
День добрый, документ «Реализация товаров» входит в обработку? Объясню, у меня есть контрагент он и поставщик, и покупатель, в акт сверки входит только поступление, а реализация почему то нет. Как быть?
Не входит, потому-что документ «Реализация товара» не делает движения по регистру «РасчетыСПоставщиками» (а отчет построен именно по данным этого регистра). Увы, это ограничения самой Розницы.. разработчики не посчитали нужным (а может обрезали намеренно) возможность ведения взаиморасчетов по покупателям. Если все-таки этот функционал нужен, можете написать в личку.. могу под вас доработать.
А почему не заполняется правая часть Акта — «по данным поставщика» ?
Есть возможность отдельно по магазинам его формировать или только в рамках общих юр лиц?
Добрый день. Розница 2.2.6.33 запускается, но сверка пустая, не видит документы оплаты по банку и расходные накладные.
Здравствуйте Юрий!
1С:Предприятие 8.3 (8.3.10.2561), Розница, редакция 2.2 (2.2.6.30)
Все отлично работает, НО только по одной организации… с недавнего времени ведем две организации: ИП и ООО, в одной программе, а поставщик у них общий, по ООО отчет формируется, а по ИП пустой ((( Подскажите пожалуйста, в чем может быть причина? Можете устранить?
Напиши в личку. Попробую помочь (нужна будет копия вашей базы для тестов)
(7) Таково было требование моего заказчика — таблицу «по данным поставщика» оставлять пустой. Предполагается, что эту часть таблицы должен заполнить сам поставщик.
(8)
Кидайте в личку копию вашей базы, попробую сделать разделение.
Здравствуйте.
в розница МБТСС Магазин бытовой техники и средств связи, отчет формируется пустой… документы поступления есть, реализации есть, платежки ПКО и РКО тоже есть… по всем покупателям, поставщикам так…
что может быть не так?
Добрый вечер!
Поставил на 2.2.6.33 все работает. Можно ли допилить фильтр по магазину и по кассе?
Благодарю!
Непонятные ошибки в форме.
Обрезаются наименования документов. Суммы без копеек.
Формирует пустой отчет долги есть по Реализации и по Поступлению ЧТО не ТАК ????
У Вас Акт сверки взаиморасчетов с ПОСТАВЩИКАМИ. Так и назовите, чего народ путаете ???
Если бы Вы внимательно прочитали комментарии выше, то увидели бы, что ваша ситуация уже давно разобрана. Цитирую себя-же: «это ограничения самой Розницы.. разработчики не посчитали нужным (а может обрезали намеренно) возможность ведения взаиморасчетов по покупателям». Мой отчет может вытащить только те данные, которые в базе есть.
Пустой отчет выходит