<?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='\
Bejeweled теперь и в 1С — без комментариев…
комментируйте вы , все для вас и для вашего досуга !
У разделителей поставь доступность=Ложь
ПолеКартинки = ЭлементыФормы.Добавить(Тип(«ПолеКартинки»), ИмяКартинки, ИСТИНА);
Плохо!!! Утечка памяти!!
Меняй просто изображение
(2) изменил.Спасибо
Не понятно, как играть то? В одном ряду подряд 3 одинаковых не выпадают, два подряд и один не рядом, нажимаешь на любой из перечисленных, ничего не меняется и ничего не исчезает. Подсказка показывает на камушек и тоже ничего. Что я делаю не так?
(5) В одном ряду подряд 3 одинаковых не выпадают
правильно — они и не должны выпадать
Ваша задача собрать по вертикали или горизонали группу фигур >=3
для этого Вам нужно сделать 2 клика
1 клик по той фигуре которую хотите переместить
2 клик по тому месту куда ее хотите переместить
если сделали правильно поле с одинаковыми фигурами удалится
(6) Вооот, теперь все ясно, спасибо 🙂 (в том числе и за доступ — ВСЕ)
Остаются артефакты от старых картинок, + тормоза..
Ну и «пробелы» между самоцветами — а должны падать по идее, + происходит не замена одного на другой, а тупо 1 перемещаем, а на месте второго — «дырка» остаётся..
Что-то недоделано, не помню, как оно в оригинале было ужо.
(8) ничего не остается
(9) у меня они падают — т.е. 3 удаляются и на место их падают другие сверху
тормозов не замечено.Странно
Артефакт:
Пустые клетки, + перемещаем…
Было:
Стало:
Ну и куда делся красный квадрат + почему висят все остальные кристаллы ?
+11 + игра всё время на время, в не зависимости от галки.
У меня вот так было:
(11) Согласен. Перезалил обработку
добавил еще одну проверку на перемещение фигур из разных столбцов и строк. Исправил и время
(13) почему у тебя появляются горизонтальная и вертикальная полоса прокрутки не понял.
(14) Видимо потому, что камни перемещаются за поле.
(15) Скачайте заново файл и проверьте пожалуйста. Вроде все устранил.
(16) теперь половина не работает — не перемещаются элементы..
(17) все работает.
Перемещать можно только из соседник строк или столбцов
(18) ??
Раньше было с любого места в любое.
Правила на ходу меняешь ?
Сделай нормальное описалово тогда.
Ну и на время так и осталось, ничего не делаешь и .. Финиш
(18) >Перемещать можно только из соседник строк или столбцов.
Да, теперь работает. Но все же интереснее и приятнее было бы из любых мест перемещать (на дальнейшее развитие игры).
Таймер все таки не отключается. Вернее с определенного количества ходов он запускается и «финиш».
(19)(21) Нет ! Во первых не я придумал правила и не мне их менять.
Да и подумать — если как вы предлагаете — играть было бы не интересно со всем — что такое набрать нужное количество одинаковых фигур, а тут самая перчинка в том что нужно НАЙТИ на поле где можно сделать ход. Посмотрите под этим углом и все станет на свои места.
посмотрите в сети полно версий этой игрушки , у меня такая есть на телефоне — было интересно продумать ее алгоритм и реализовать на 1С
Время поборол. Файл перезалил. Спасибо за комментарии
(22) у тебя так было изначально.
А правила ты нигде не удосужился описать..
А как там в оригинале было, я уже не помню..
например.
(24) Правила добавил в описание, более расширенные
Игра сама по себе [:|||||:] уже не нова, по простоте душевной думал что правила давно известны.
(24) теперь кнопка доступный ход хню показывает..
(25) Не знаю, у тебя называется хню
у меня показывает все правильно как и было задумано
или что переставить или место куда переставить
«такой большой и подсказками пользуешся 😀 «
+ Иногда дает недопустимый ход..
да и не подсказками пользуюсь, а твои ошибки тестю..
🙂
(28) не может быть, сам посмотри алгоритм проверки
если ходов нет то поле перерисовывается и заново ищет.
просто иногда кажется , что хода нет
(28) ну за это отдельное спасибо.
+ неверно показывается рамка, какие ячейки будут удалены для вертикальных кубиков — всегда горизонтальная «полоска»
+31 и только на 1 кристалле, а не на 2-х..
А при горизонтальном «удалении», рамка съехана в сторону.
Bejeweledfor1C8v3.epf от 22.10.2010 15:30 увечил значение задержки — шарики изменили свое движение (странно вчера на 300 тупило, сегодня на 800 летает — взаимосвязь не могу понять)
(31) что за рамка ? количество очков ? она всегда горизонтальная — примерно по центру удаленных
(31) нет, рамка подсветки удаленных кристаллов — нужно у вертикальных вертикальную лепить, у горизонтальных — горизонтальную.. и на 2 кристалла, а не на 1..
(34) честое слово , не могу понять про какую рамку удаленных кристалов ты говоришь. Про «доступный ход» ?
Нет, когда кристаллы удаляются — ты подсвечиваешь их рамкой желтой..
(37) 😀 😀 😀 да нет, это не подсветка удаленного
это по идее рамка с очками за удаленные фигуры
(рамка желтая, фон красный, и цифры) но иногда только одна рамка вылезает
я постил тему:
Вчера на досуге написал игру Bejeweled
вроде все красиво получилось, но осталось два вопроса
1.объект ПолеКартинки с прозрачным фоном (сама картинка тоже с прозрачным фоном) красиво смотрится на форме, но при наложении на другой объект ПолеКартинки — прозрачность пропадает (ни руками, ни программно не получилось сделать) т.е. картинка по форме «скользит» красиво, но если на ее пути попадается другой объект прозрачность проподает.
2. Кнопка «Подсказка» или после окончании хода (нужно же проверить если еще ходы для игрока).
вот вопрос есть заполненный цифрами массив (8,8),т.е. поле 8х8 , как наиболее быстро найти возможный ход (чтобы образовалось поле по горизонтали или вертикали >3 фигур)
(36) я (38) пост скрыл, только из-за того что косяк с картинкой — долго не отображается
да я понял о чем ты говоришь
но посмотри в конфигураторе — это НЕ РАМКА
и на разных компах она ведет себя совершенно по разному ))))
(39) В процедуре УдаляемПоле() Сделай Выигрыш.Видимость = Ложь; В обоих блоках.
(40) поконткретнее если можно, где ?
там есть в обоих блоках пробовал и так и сяк
чтобы хоть как то видно было
Н=0;
для сч =1 по 1000 цикл
Выигрыш.ПорядокОтображения = 93;
Выигрыш.Видимость=Истина;
Н=Н+1;
КонецЦикла;
Выигрыш.Видимость=Ложь;
Н=0;
для сч =1 по 1000 цикл
Выигрыш.ПорядокОтображения = 93;
Выигрыш.Видимость
Истина;Н=Н+1;
КонецЦикла;
Выигрыш.Видимость=Ложь;
+42. Ни при каких условиях эту рамку не должно быть видно, счет баллов от этого не пострадает.
(43) что не пострадает счет — это понятно
хотел сделать как в оригинале
если поле сходится — шары «взрываются» и исчезают и появлеяется поле с заработанными очками.
Еще раз повторяю — раз на раз не приходится (иногда все отлично кажет, иногда только рамка) почему не знаююю….
а показывать нужно
(44) Тогда вот так:
А вверху заремить.
+45 И попробуй число ПорядкаОтображения повысить, например до 150, тогда всегда сверху будет, и вообще идеально все будет.
(46) да вот….. нет
сначала так и думал, что оно так будет отрабатывать
но нет….максимальное число = количество элементов на форме
попробуй сам проверить
Выигрыш.ПорядокОтображения = 100;
Сообщить(Выигрыш.ПорядокОтображения);
«приятно» удивишся
+45 Правда пришлось ЗадержкаДвижения 500 поставить, иначе вертикальные разделители иногда накрывают края поля с цифрами.
(47) Да уж.. Совсем убрал — раз все равно никак не регулируется.
Вертикальные разделители накрывают, причем тогда, когда вылетает 2и более окошко с цифрами (((
Даешь каждую неделю по одной новой игре на 8-ке !
Что , Юра ? Слабо ?
(51) да мне то не слабо… но хобби превращать в график — не по мне
игрушка должна быть от души и для души
Bejeweled for 1C8.2.epf от 17.05.11 17:00
(толстый клиент) со звуком.
Классная игра, автору респект!
Поставил бухгалтерам, так у них глаз выпал 🙂 щас втихую играют
теперь жду пока директор игры в 1С запрещать начнет 😀
(56) Играть тоже нужно — стимулирует умственную деятельность.
Там же есть кнопочка «Шеф идет»
Пусть это останется нашей маленькой тайной
(57)
кнопкой пользуются 🙂 но шила в мешке то не утаишь.когда-нибудь спАлит.:)
я думаю, наиграются, сами перестанут
Даже боюсь такое ставить засосёт невырвусь. И неувидит директор обещанного отчёта.
А сколько времени ушло на создание? Просто интересно очень))
(60) ilonnaa,
плюсую. наверняка простые обработки автор пишет за получасы 🙂
(61) LND_gaz69, простые, то понятно) а на эту
Плюсанул за сам факт реализации, но от скачивания воздержусь. Боюсь затянет)
Спасибо, интересная реализация. Подчерпнул несколько идей.
Автору +1. Хорошая реализация классического «убийцы времени». Попробую скачать и не втянуться 🙂
(65) Sagirus, Пиаришься ?
(66) AlexSunS, ошибочка… Вместо аватарки приложился файл к сообщению. Спасибо, что ткнул носом.
Здорово
На какую версию платформы расчитана обработка?
На платформе 8.3.8 выдает ошибку «Ошибка чтения внешних метаданных…»
Почти 8 лет назад. А сегодня случайно увидел и партнеров и играют )