<?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.0.
Завести журнал выполненных обновлений, в котором указывать время выполнения обновлений для каждой базы.
Это позваляет вне планировать загрузку по времени, когда выходит новый релиз.
У меня это происходит следующим образом:
1. У меня есть список клиент-база (платформа, тек.релиз у клиента)
2. У меня есть список последних релизов, который автоматически обновляется при входе в программу.
2.1. Для этого в выполняяю парс. и разбор сайта 1С, страницы с новыми релизами.
3. Поле обновления сведений о новых релизах, программа, в списке клиентов-баз подвечивает красным те строки в которых релиз стал не актуальным.
4. Предположим я обновляю по удаленке очередную базу и после этого записываю в таблицу выполненных работ какую базу я обновил и сколько часов это заняло.
5. После того как в списке выполненных работ появляется хотя бы одна запись по конкретной базе, можно строить оценку последующих обновлений этой базы в будущем. Причем здорово то, что не нужно собирать статистику что бы расчитать средее значение, потому что очень большая вероятность того что следующее обновление займет как минимум столько же времени, но не как не меньше. По этому среднее значение здесь не нужно, а нужно последнее.
6. После того как в списке выполненных работ появятся записи о затраченном времени на обновление каждой базы моя программа выводит сводную информацию о том сколько времени еще нужно потратить на обновление остальных, еще не обновленных баз.
7. Таким образом когда я захожу в свою базу, пограмма актуальзирует список релизов — после этого я открываю список клиентских баз и программа мне отображает красным, какие из них устарели, а вподвале я вижу статистику о том сколько ьаз на поддержке, сколько актуальных, сколько не обновленных и сколько времени нужно потратить на обновление оставшихся.
8. Теперь после выхода нового релиза я знаю что мне нужно обновить 20 баз иа это уйдет 40 часов, значит я неделю буду заиматься только обновлением. Значит текущие задачи нужно отложить на неделю а новые брать на следующую неделю. Таким образом у клиентов и у меня спадает напряжение. Все знают когда получат то, чего хотят.
Вот кстати моя статья про 1С:Деньги, в которой я немного описываю этот блок. Там есть картинки
http://infostart.ru/public/155307/
Интересно… Пока мои пять копеек:
Геолокация — это энергозатратный функционал. Будет кушать много батарейки. А вот заполнение отчета по работе на мобильном устройстве и в офисе пригодится…
Еще 5 копеек — Название конфигурации при запуске «Библиотека стандартных подсистем»
лично я использую бесплатный архиватор 7-zip. у Вас возможно использование только winrar
При добавлении нового клиента и создании нового контактного лица указал только ФИО. Вышла ошибка при сохранении. {Справочник._Tools_КонтактныеЛицаКлиентов.Форма.ФормаСписка.Форма(68)}: Поле объекта не обнаружено (КонтактнаяИнформация)
Результат=Элементы.Список.ТекущаяСтрока.КонтактнаяИнформация.Найти(ПолучитьВидНаСеревере(«EmailКонтактногоЛица»),»Вид»);
Версия 0.2.1.0 от ноября 2014
Ничего себе, вот это сервис) Очень понравился ваш сайт, и сама идея сделать такое API. Хоть о релизах новых конфигураций узнаю из рассылки 1С, а за даже копеечные смс — жаба душит. Красиво и удобно сделан, видно что с душой. Блок мне очень понравился, который можно себе на сайт повесить — порекомендую своему руководителю.
А как у Вас обстоят дела с интеграцией с основной учетной системой? Ведь бух. учет в организации ведется в БП 3.0 вероятно? Вы изначально решили что они не должны быть связаны между собой — отдельно учет деятельности 1С:франчайзи и отдельно бухгалтерский? У нас например для целей внутреннего учета деятельности франча были сделаны дописки непосредственно в БП 3.0. Не скажу что это сплошные плюсы… типовые обновления выходят с такой периодичностью что при текущей загруженности порой некогда свою нетиповую БП обновлять. Но однако же налицо общие для двух «контуров» учета справочники — Контрагенты, Контактные лица, Сотрудники. Да и появляется возможность ввода типовых бух. документов на основании франчевских «движений».
Вот примеры пересечения двух контуров:
1. Учет проданных коробок по рег.номерам — у нас реализован через доп. реквизит в ТЧ документа Реализация — продали коробку — рег. номер «привязался» к Контрагенту.
2. Учет договоров ИТС. У нас существуют в виде документа. Все руки не дойдут в эксель выгружать заявку на регистрацию ИТС, но когда дойдут явно поможет тот факт что в справочнике Контрагенты подавляющее большинство данных для заполнения бланка заявки имеется.
3. Опять про ИТС — явно на основании документа «ознаменовывающего» будущее продление договора (грубо говоря заявка на ИТС в статусе «план») может быть автоматически создан счет на оплату.
Думаю этот перечень можно было бы продолжать. Так что по моему мнению тут просится некая интеграция, желательно «бесшовная» :). Если при этом сама типовая осталась бы в «типовом» виде — это согласитесь было бы вообще сказкой — обновляй хоть с закрытыми глазами! К сожалению тема интеграции и обменов далеко не мой конек, но вероятно здесь подошло бы COM-соединение из самописной конфигурации для франча к типовой БП 3.0 / УТ / УНФ (смотря в чем ведется учет).
Простите за некоторую сумбурность изложения.
Очень полезный и удобный ПП для 1С франчайзи.
Подумать о добавлении следующего функционала:
1. Создание и обработка заявок от клиентов (учесть возможность срочности решения поставленной задачи) и дальнейший контроль с выводом напоминаний о выезде или о просрочке задания.
2. Плюс к п.1. оповещение сотрудников о новых заявках от клиентов по почте или через мобильное приложение 1С (МП). Причем настройка двустороннего обмена:
— БД->МП, для выгрузки оповещений сотрудников о новых заявках
— МП->БД, для внесения в БД информации о выполненной заявке (для оперативности получения информации в офисе, это в дальнейшем можно использовать например для системы менеджмента качества выполненных работ специалистами)
Еще придумал…)))
http://v8.1c.ru/lawmonitor/lawchanges.jsp
1. Может быть то уже излишне, но..
Раз уж храним информацию о релизах, то было бы интересно знать об «Учете изменений в конфигурациях», который можно получить и отслеживать
2. Хранить информацию о количестве ПК на которых запускается 1С, т.к. часто при обновлении релизов 1С, необходимо обновить и платформу. Буквально вчера обновил релиз БП 3.0 и платформу на одном ПК, а на втором по «спешке» упустил и сейчас приходится отвлекаться от задач доделывать вчерашнее.
(10) Logarifm_Andre, Именно изменения в конфигурации есть, для каждого релиза качается файлик с изменениями. «Изменения в версии».
По поводу сбора информации со всех ПК на которых запускается 1С, я думал над этим, но пока не собираюсь реализовывать.
(11) Наверное не правильно высказался)))). Не изменения в обновлениях, а информация о «Мониторинге изменений законодательства и планы по их реализации в программах фирмы «1С». Это разные вещи.
По поводу сбора информации о ПК: тут даже достаточно сделать поле, где вручную указывается количество ПК, на которых стоит платформа. Чтобы просто знать на скольких ПК необходимо обновить платформу.
В тексте публикации на картинке, где изображен телевизор с клиентами — Названия контрагентов замазаны. А в скриншотах к публикации, в списке, эта картинка изображена с названиями контрагентов. Похоже, туда залили не отредактированный файл.
В настройках программы увидел закладку «Asterisk», хотелось бы узнать какие планы были на данную программу АТС или может что-то уже реализовано?
Интересная разработка. Решил зайти на Ваш сайт(сайт проэкта) и зарегистрироватся. Но при регистрации выдает ошибку на капче: Не выводится проверочный код. Пожалуйста исправте данную ошибку.
Не качайте, проект явно мертв.