<?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='\
ню ню, хватай плюсык
Ну ёлки! Почему под семерку-то?! Где ж её взять в наше-то время?… )
Под снеговика не интересно..
Только под семерку! Снеговиков — в ацтойник…
Любители снеговика обзавидуйтесь..)
Только карта как всегда не прет и начальные 100 у.е. быстро кончаются…
Вот это вещь…
Супер!!!
Круто!!! Молодец! Ты гений!
Плюс однозначно!
Ух ты!))) Мне, как бывшему дилеру, вдвойне приятно шпилить в оазис, да еще и в 1ске))
Впечатляет, что можно сделать в 1С 7.7, просто мастер работы с формой!
Ёпрст одним словом 🙂
Найдена куча ошибок, скоро кину новую версию.
Ага еще надо и СтрипПокерок 🙂
Исправил ошибочки, тестим дальше
По просьбе Чучундера, добавил русские названия игр.
Такого в 1С я еще не видел!
Афигеть! Вот это с формой действительно поработали! Отлично!
Класс!!!
Просто супер!!!!
ЗЫ вот до чего доводит административный запрет на установку игр 😀
Автор, а для 8-ки нет? 😉
(18) А найти просто прогу «Покер» для винды — слабо?
Объясните дураку: зачем игры ВНУТРИ 1С?
(18) Неа…
(19) Не в игре дело, а в штатной возможности ловли клика мыши … может, кому и сгодится.
А это так, баловство от безделья, пока конец квартала не подойдёт.
(20) >а в штатной возможности ловли клика мыши
Тады плюс :)))
Да и в общем, лепить в учетной программе вещи, не предназначенные для этого, тоже, иногда полезно…:)
Xonix,шахматы,питоны,тетрисы,15-ки, даже герои на 1с написаны… У меня коллекция >50 игр где то валяется.
Вот и «пополнил» ряды ..
(21) Один минус… В не модальной форме нужно как-то «избавится» от флажка…Пока не придумал как 🙁
Не растягивается он за пределы формы…
Хотя нет, если правильно кинуть за многострочную часть — улетает за пределы формы. Так что, можно лепить свои кнопки, к примеру.
Это действительно круто. Когда пишут игры именно на 1С. На языке которая в основном рассчитана только для бухгалтерского учёта.
Часа три резался, впечатляет!!!
Просто нет слов. Супер!!! Так просто ловить клик мышки… флажком! Ну, я пробовал кнопкой, но она вылезает наверх все равно. Абалдеть!
ТАКОЕ оформление заслуживает плюса!!! Браво!
(27) Как бы его еще так в компаунде самом поправить, чтоб его вообще невидно было 🙂
Пока сделал только так, чтоб текстовое поле вообще не удаляется в пофигураторе с формы. :))
Попробуйте удалить копирайт «Ёпрст» …
(29)>Попробуйте удалить копирайт «Ёпрст» …
Удалил 😉 Но не в пофигураторе
(30) Ну, не в пофигураторе я и сам горазд…:)
Ну вот можно же делать «плавающие окошки» в 7-ке, на синьёре есть примерчик, правда вот где применить, пока неизвестно…
Хоткеи навешиваются и т.д…
Вот и хотелось бы, поправить мальца компаунд, чтоб, флажок, например, вообще был невидимым, или к примеру, сделать круглую, или хотя бы трапециидальную кнопку..
(31) Ну вот можно же делать «плавающие окошки» в 7-ке, на синьёре есть примерчик, правда вот где применить, пока неизвестно…
А можешь ткнуть носом в этот примерчик? А применение мы найдём! 😉 (например в журнале документов открывается плавающее окошко с графом подчиненности текущего дока. Юзер клацает на один док в этом графе — в журнале он становится текущим, клацает на другой — теперь «другой» текущий)
+(32) АЛьФ в FormEx-е делал плавающие окна, но, к сожелению, они крайне нестабильны.
(32)http://www.sinor.ru/%7Efilez/frames.ert
вот применить, ну пока никак 🙂
(34) прикольно… правда не более того. Оно ж плавающее только для текущего окна. А настоящее плавающее — оно ж над всеми окнами текущего приложения плавает.
А как сделано? Я что-то не понял фишки.. (
(35) В компаунде поправлен параметр один, не помню какой уже 🙁
Можно сравнить с любой обычной ert-кой — там сразу видно.
Вот тоже баловался. пока добился только того, чтоб текстовое поле с формы в пофигураторе не удаляется… да и так, по мелочи.
(35,36)
«ЗАМЕНИТЬ»,»STATIC»,»1342177793″,»191″,»320″,»75″,»16″,»0″,»0″
«©Ёпрст»,»STATIC»,»1342177280″,»274″,»21″,»39″,»13″,»-1″,»-1″
Скорее всего два последних нуля на две минус единицы
+(37) Ага! Так и есть. Так что я и пофигураторе удалил ;))))
(37) Это были мои поиски в ковырянии компаунда 🙂
(38) Так и есть, это чтоб тект не удалялся..
А про фреймы — там тоже изменен параметр, тоже легко ищется.
Вообще , ковырялся с параметрами в компаунде, нашел, где хранятся галки типа «невидимый» и т.д, менял всё на всё от балды…
Пытался сделать кнопку невидимой, но чтоб событие она ловила как надо. Сначала вроде успех — кнопки нет, тыркаешь — есть событие, но кнопка тварь появилась на форме :(((
А потом чисто случайно обратил внимание на флажок… вот собственно отсюда и родился покерок.
(39) Жаль только, что нельзя заблокировать изменение самого текста. А то можно было бы демки для ламеров с непечатными словами делать 😉 А при покупке — высылать пилюлю
(41) Можно прятать в мокселе, тоже упарятся искать )
(42) нукась, поделись идеей.
мне оно, конечно, нафиг не надо, но ради спортивного интереса, хочется посмотреть как люди извращаются 😉
Ёпрст, если тебе неприятно то, что мы все отвлеклись от «покерка» и вдарились в извращения над формой, ты только свистни, мы сразу отвалимся.
(43) Ну ё… Посмотри, где в в том же покерке все картинки, и куда делось всё присвоение глобальных переменных…В том числе заполнение таблицы значений самими картинками, и т.д и т.п…
🙂
(44) Наоборот, мот еще кто чего полезного подкинет.
(0) Написал бы статейку для продвинутых:
1. Что какой флаг означает в Dialog Stream?
2. Как что-то спрятать в мокселе?
и т.д 😉
(48) Писатель из меня хреновый, я даже описание к игре написать не могу… да и лень впереди планеты всей 🙂
жжешь
Очень круто!
Жаль что я играю только в безлимитный холдем =))
(50) Тогда нужно было бы писать игру как минимум за комп, или по сетке как-то прикручивать…
(22) > даже герои на 1с написаны
А какие Герои? Меча и Магии? 🙂
(52) Да. Могу кинуть, если надо.
Надо!
На почту или здесь выложите?
Если бы еще и Линейку…. 🙂
(54) качайhttp://infostart.ru/projects/2631/
Пасиба!
Это жесть как она есть, все что могу сказать.
(57) В каком смысле ?
(58) В смысле — «Тихо, шифером шурша, крыша едет, не спеша…»
Смена шифера на жесть… 🙂
——
А вот интересно, если бы кто сляпал аналог виндовозной cards.dll, то, зная алгоритмы разных пасьянсов
(они давно известны), можно было бы склепать 1С-ный аналог, скажем, знаменитого пакета SolSuite 2008… 🙂
(59)
Всё можно, если лень перебороть…
Впечатлило, улыбнуло 🙂
Теперь осталось покопаться, как оно все нарисовано. С первого взгляда пока не нашел.
Сама логика игрушки где-то упущена. Со временем (выиграл 2300$) игрушка
начинает жутко тормозить и на цифре 2300 1С ка вывалилась с критической
ошибкой…
(61)
«Сама логика игрушки где-то упущена»
Да нет там вообще логики никакой…Тупой рандом при раздаче и подсчет очков кратный 500 … всё.
А нет, еще не добил… и это возьмем, клас, молодцы авторы!
(20) От безделья, говоришь …
А что тогда у эттих рюских получаться, если они НЕ безделничать?
Их бин в полный аут … +
Мама дорогая !!
Это даже не увлечение программированием.
Это — страсть.
Я бы даже сказал «нездоровая» страсть.
(65) Это показательный мастер-класс с красочными иллюстрациями.
Слушай Ёпрста (с) Чебур.
(65) Это ностальгия… по казино..
Ильич улыбнул 🙂 плюс однозначно
Пасьянчик бы, хотя бы YUCON
ППЦ, где картинки? У меня крыша едет…
Про перехват клика — идея понравилась 🙂
их вообще штатными средствами найти можно?
(70) Конечно можно..
Там вообше всё штатно сделано.
+71 не найдешь — кричи.. покажу..
Да, Сильная вещь. Для меня много нового.
……, то есть Здорово!
Ну чувак ты крут, придумал же. Я бы тоже хотел писать игры на 1с — не, но за это никто не платит. Респект !!!!
Даже не думал что это возможно.
Прикольно, сыгранём
Давай напишем на 1С покерного бота, я скажу как он должен играть а ты будешь писать код)
(79) я слишком ленивый для этого..
Да и.. Для какой из 1000 разновидностей покера будем писать бота ?
Для техаса ?
Забавно)
Ха-ха, прикольно) Люблю играть в покер на покерстарс, но не думал, что запилят в 1ску)
Ет просто гениально, всегда любил в покер поиграть ….
Скачаю Шефу, он в интернете сидит за покером, а так хоть посмотрит, как дела в фирме идут
Можно модифицировать покер, раз он работает в 1С — играть на зарплату :))) Ставки делать с зарплаты 🙂 Здорово же)
Не понятно из описания. Игра с ботами или можно с коллегами на работе рубануться?