<?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='\
Слишком упрощенная схема (если мне нужно автоматизировать бухучет и производство, то мне нужно «1С:бухня» и «1С:ERP»???) и кстати не точноя. Там где «Пользователи» (1 или более) на схеме — это не пользователи, а организации (юридические лица).
А количество пользователей для той же 1С:Бухни для базовой версии может быть и 3 и 5 и более и вполне комфортно будет чувствовать себя файловая база, если это одно юр.лицо.
Так что скорее данная статья искажает действительность, а не проливает свет.
Комплексную часто выбирают для единого учета в одной базе без обменов (сейчас меньше кстати, но раньше это было очень популярно)
(2) На моей памяти ее часто выбирали неумелые внедренцы, потому как не могли спрогнозировать, что понадобится клиенту. И ставили ее, обосновывая, что там есть все, что только может вам понадобиться. Ну как следствие, 95% функционала не использовалась
Не учтены разделение некоторых программных продуктов на Проф и Корп. Отсутствуют направления Бюджетирование, Контроллинг, МСФО, отраслевые стандарты…
(0) Т.е. Розница в принципе не нужный продукт?
(1)С базовой есть тонкость — один юзер одновременно, так что даже если есть 50 юзеров то работать они будут по очереди. Базовая вообще не для коллективной работы, это если один бух ведет некоторое количество баз, то базовая самое то.
(5)Для бухгалтерской, расчетной и закупочной деятельности, да не нужный. Из названия ясно — автоматизация розничной торговли, Из функционала — самого широкого профиля, торговать можно всем чем не запрещено законом.
(4)Статья позволяет сделать первый шаг в направлении поиска программы 1С для начинающего бизнеса. Это еще один взгляд на то многообразие 1С.
(7)Я к тому, что на представленной схеме ей места не нашлось. Для чего она нужна действительно понятно из названия, но почему она не упомянута?
(9)Потому что наверно автор не предусмотрел такую деятельность как розничная торговля.
(3) В моем опыте такого не было. Обычно заказчик сам настаивал на комплексной, потому что намучались с обменами. Ну либо бухгалтера ведут первичку и учет более-менее «белый» и им не хочется заморачиваться с двумя базами
Банальный подход продавца. Кто потом будет клиенту объяснять, где в УТ 11 себестоимость и почему там полная фигня и что делать? Лишь бы впарить что подороже.
мёртвая царевна семь богатырей
то ли саша пушкин то ли саша грей.
Надо голых теток на заставку, тогда выбирать программу 1С будет веселее.
Не знаю многие конфигурации РФ, но для автоматизации торговли, зарплаты и Б.У. можно использовать УТП
Я бы Зарплату, Кадры вела бы в отдельной конфигурации при любом раскладе.
Там много прибамбасов. тем более что видела в одном месте двойное решение (белоечерное) в одной БД одной зарплатной конфиграции.
Сегодня в Зарплате одно учреждение, завтра оно распадается на несколько или наоборот.
По-моему лучше это все вести отдельно от всего остального
что автоматизируем -> Производство -> КА, УНФ, ЕРП -> пользователи -> 1 шт ( ? wtf), много шт.
АВАТАМАТИЗИРУЕМ ?
Слайд на видео 7:20
Базовые ERP и КА — это что-то новое)
БГУ и ЗГУ тоже есть базовые версии, но ни на схеме ни в тексте этого почему-то нет
(10) Автор как раз предусмотрел в тексте, но в схеме не указал.
«Если Вы занимаетесь только розничной торговлей, то отличным вариантом будет «1С:Розница». Решение «заточено» под особенности розничной торговли: от рабочего места кассира до управляющего магазином.»
Кроме того, нелишним бы было упомянуть про совместимые решения Розницы (Аптека, Магазин одежды и обуви, Магазин обуви и прочее). Иногда это удобнее, чем типовая Розница из-за наличия расширенной аналитики по номенклатуре.