<?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) slazzy, ага, в связной 🙂
Мне кажется, полный бред… задачи не связанные с реальной работой программиста 1С, а больше похожи на олимпиадные (1, 3, 5)…
Работодателю нужен выпускник надрюканный на такие задачи или программер с опытом по реальным задачам, так сказать «Вам нужны шашечки или ехать?»
Сам бы не пошел к такому геморному работодателю ни в штат, ни тем более на сделку.
Ни разу не попадались такие задачи на собеседованиях:-). Обычно всех интересует ФИФО, остатки, ну и всякие там пересчеты сум по курсу валют на даты в отчетах.
бред бредом, но такие задачи действительно задают при приеме специалистов не очень высокого уровня. проверяется гибкость мышления, возможности решения нестандартных задач, логическое мышление.
непонятно только зачем ответы на такие лоу левел «задачки» выкладывать (ведь решить их не составит труда даже для студента), да еще и за 1$m?
Да
(3) dbaser, Думаю для руководителей IT такие задачки должны буть в кармане для отсеивания большого количества участников при прийоме на работу работу.
(6) ruskiy1, задачки простые, но если простые тогда зачем платить?
а обычно все проще. если ищут на управленческий учет, то ФИФО. партии, остатки по складам. Если на Бу, то минимальное знание счетов, кредит дебет, двойная запись (ой как тут многие валятся).
по ЗиУП веселее, тут либо ты знаешь и быстро по программке найдешь решение либо ни в зуб нагой и все.
(3) dbaser, +1
хотя скорее всего такие задачи дают именно людям без опыта, дабы понять умеет ли он программировать
Я всем предлагаю найти что не так с запросом и как правильно:
Показать
Отвечают только люди с Платформами и опытом. В 80% случаев ничего вообще сказать не могут. 🙁
Очень странная подборка. Решения всех кроме №4 от знания 1С вообще не зависят — решения примерно одинаково выглядят на любом языке, особенности и возможности платформы не используются. Разве что набор на должность сверхмладшего кодера с последующим обучением.
(12) glassman, для нахождения среднего суммируем среднее по позициям вместо деления сумм? Оррригинально! Ну и проверку на 0 я бы тоже поставил.
(13) Pasha1st, Молодец )
Не знаю, может на собеседованиях народ нервничает сильно.
Знаю кучу людей, которые не ответили бы сразу на эти задачки, но влет нашли бы ошибку в расчете себестоимости и ответили бы на (12).
Значит не достойны они быть программистами?? 🙂
Если бы мне такие вопросы задавали бы на собеседовании — зачем мне такая работа???
«Реализовать функцию перевода числа в строковое представление, без использования встроенной функции 1С» — Еще бы написали — без использования 1С и компьютера.
«Написать отчет в СКД по нахождению остатков на складе (-ах) на произвольную дату» попадалась похожая задача. Только нужно было ведомость оп счету сделать.
» Написать отчет в СКД по нахождению остатков на складе (-ах) на произвольную дату.» — чего сложного-то?
(13) Pasha1st, если нужны остатки, то надо РегистрНакопления.ПартииТоваровНаСкладах.Остатки КАК ПартииТоваровНаСкладах и убрать условие на регистратор, или, что плохо, вернуть реальную таблицу РН, анализировать вид движения(Приход+,расход ).
блин а мне в последний раз дали задание написать довольно нестандартную конфигурацию на основе БСП, с некоторыми особенностями по настройке БСП опять же ) и использованием функционала почти всех подсистем.
Если кому-то дают задание написать отчет по остаткам, то это грустно
(19) slazzy, если берут на испытательный срок, во время которого делаешь тестовое задание. Если ещё и по ЗП не сильно теряешь, можно поваять. У меня прошлое задание было-тупо кусок билета на спеца по платформе, сильно не разгуляешься.
(20) PiccaHut001, нуу нет у меня было по-другому 🙂 я работал на работе и особо не собирался уходить, когда мне собственно предложили выполнить вот это задание о котором я сказал выше(кстати абсолютно реальная задача, а не выдумка хедхантера) и сделал я её за несколько дней. Когда её проверили, уже после этого я пошел на собеседования с нач.отдела и тд
Просто именно сама постановка задачи как написать отчет по остаткам это реально грустно тк это базовый уровень, которому учатся в течении месяца )) и если бы мне предложили такую задачу, я бы очевидно даже не стал её решать тк это очевидно далеко не тот уровень, на который я претендую.
А так конечно задачки из спеца на собеседованиях и я решал
Тоже получал такие задачки в качестве тестовых.
Первую задачу решал на олимпиаде в 9 классе 😉
Не понял почему в разделе Сертификация.
ИМХО это очередной способ заработать мани с возможных соискателей и работодателей не IT -шников.
(24) avto1c, очень хороший вопрос, сам себе его задавал, и ничего более чем Сертификация не нашел, поскольку здесь рассматриваются решения разных задач.