<?php // Полная загрузка сервисных книжек, создан 2025-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С наконец перейдет на chromium.
(3) ivanov660, и что это нам даст?
Это полезная обработка +
Как сделать, чтобы изменения интерфейса вступали сразу, а не после перезапуска конфигурации?
Что-то не заметил изменений. Тестировал на Бухгалтерия предприятия, редакция 3.0 (3.0.33.19), платформа 1С:Предприятие 8.3 (8.3.4.482)
(7) gorevg,
А для кого написано «начиная с релиза 3.0.34»?
В 33тьем 1С во все формы вкорячило принудительно режим компактности «Обычный» что по сути отключает возможность использования этой настройки… вот «обычный» и все.. никаких вариантов.
По этому и написано черным по белому — начиная с релиза 34го… где 1С свою оплошность исправила.
Скорее всего, начиная с 34 релиза в свойствах конфигурации был изменен режим совместимости интерфейса с «Версия 8.2» на «Такси. Разрешить Версия 8.2». Поэтому у формы появилось свойство «Вариант масштаба». Ну и возможность изменять масштаб, за что автору, заметившему эту фичу, благодарность.
Очень надеюсь, что возможность переключение режимов сделают прямо в клиенте.
(9) такси с 33тьего же вообще появилось.
просто в 33тьем релизе у всех форм стоял режим компактности «Обычный» — просто руками выставили. не «Авто» а именно «Обычный». По этому обработка на 33тьем не работает.
В 34ом этот косяк исправили и у всех форм стоит «Авто». Соответсвенно теперь можно обработкой задавать режим компактности сразу для всей базы.
(11) Да, Вы правы. Сейчас развернул 33 релиз — там в формах установлено значение «Обычный».
«Заметках из Зазеркалья» это описано подробно.
Ну, и если кому-то интересно, то в
(2) Неистово плюсуюсь, редкие отморозки. Думал, хоть в «такси» сделают нормальное юзабилити. Попробовал интерфейс — хрен вам, как говорится. Мне просто интересно, где они таких дебилов набирают, которые всё это конструируют? Почему раньше можно было открыть несколько закладок и по одному щелчку между ними переключаться, а теперь нужно трахаться с этой «историей»? Господи, да пошли ты им уже людей с мозгами.
+(13) И да, ну нахрена ж они убрали из быстрого доступа кнопку копирования в подменю?? Раньше один клик мыши, теперь опять трахайся с подменю. И это у них называется охрененное юзабилити. Нуралиев, купи им книжек умных что ли, может они не в курсе, что та
Написалиб хоть чем отличаются режимы, и на картинках выделили
(15) Посмотрите по ссылке, которую я указывал в (12). Там все подробно разрисовано.
(13) wolfsoft, а если просто расположить панель открытых в нужное вам место? Меню «Вид — Настройка панелей…»

(13) wolfsoft, в «ТАКСИ» это можно настроить… Настроив под себя — поработав так, очень быстро привыкаешь и начинает нравиться
в (17) скрин как
Я ещё раз повторю вопрос (а то он походу затерялся):
Как сделать, чтобы изменения интерфейса вступали сразу, а не после перезапуска конфигурации?
Пересадил всех бухгалтеров на интерфейс такси 2 месяца назад, сначала плевались, а теперь даже нравиться стало….. Так что не так уж он и плох)))))
у меня в общем то тоже работают, обратно УФ не хотят.
Такси им нравится — каждый себе сам менюхи раскидал и сидят работают..
единственный минус — нельзя два отчета рядом открыть тчобы сравнить…
Огромное спасибо
(21) и выход какой ? Открывают две 1с-ины рядом для этого?
(23) Только это и остается. Неудобно, а с другой стороны куда деваться.
Полезная обработка +
Возможно, что это ускорит мой переход с БП 2.0 на БП 3.0
на мой взгляд такси работает быстрее обычного интерфейса на УФ, все настраивается под себя, в общем ко всему привыкнуть можно. Где то то ли на баше, то ли еще где на просторах инета писали про Office, но к 1с это тоже можно отнести: при появлении нового интерфейса, пользователи не высказывают своего восхищения от удобства пользования, а просто говорят «херня, привыкнем» .
(23) Ёпрст,
Сохранить каждый в файл и нажать «Файл/Сравнить файлы». Что за атавизм вообще — глазами сравнивать?
Однозначно, полезная вещь. Спасибо автору.
(28) AlX0id, а если разные отчеты, просто ряд цифр сравнить надо?
(30) hotey,
Тогда практически все равно, как они будут размещены по сути — рядом или в отдельных вкладках.
Да, этот случай не удобен в Такси, но он достаточно редок.
Если нужно сравнивать постоянно какие-то контрольные показатели — лучше уж написать отчет, сводящий их в одну форму.
(0) Есть просьба.
У некоторых пользователей не хватает прав при запуске обработки.
Прошу при изменении режима компактности добавить в начале и конце изменения компактности:
Дабы избежать проблем с правами.
По идее, должно помочь «бесправным».
На ЗиКБУ 3.0 тоже работает!

Обработка несомненно может пригодится.
Автору спасибо.)
Идея очень хорошая. Немного доработал, чтобы можно было менять любому пользователю на выбор, т.е. администратор решает кому что и удалённо это делает (заодно и решилась проблема с отсутствием прав у некоторых пользователей)
Спасибо.
Как-то можно программно установить для отдельного окна режим масштабирования? Разработчики платформы не удосужились по-человечески добавить свойство формы.
Есть бесплатные такие обработки, например:http://olegon.ru/showthread.php?t=17403
Нужная вещь для работы. Плюс
большой ПЛЮС
Добрый день! Кто подскажет не понял как включить обработку, релиз 3.0.39.60 ? Подключил интерфейс остался в режиме обычном.
Спасибо автору за обработку, очень помогла.
Спасибо. Но все же допилил для себя, сделал чтобы можно было выбрать пользователя. Т.к. обычно меня не себе, а юзерам, а у них обычно нет права открытия внеш.обработок 🙂
В Управлении холдингом не взлетело , но смысл понятен из обработки.
Небольшая доработка УстановкаПараметровИнтерфейса() — и все ОК