<?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='\
Можно было и прикрепить 1CPP.dll какую использовал!
лоСервис = СоздатьОбъект(«Сервис»);
{Глобальный модуль(14)}: Неудачная попытка создания объекта (Сервис)
Добавил в архив используемый в конфигурации 1Cpp.
О, я с помощью этого же АктивИкса делал раскраску таблиц-мокселей в отчетах. А то доставали конкретно, то сделай таким цветом, то таким, а то верни всё как было…
Что за…. хотел поюзать, но как видишь!!!!
лоСервис = СоздатьОбъект(«Сервис»);
{Глобальный модуль(14)}: Неудачная попытка создания объекта (Сервис)
Не тот билд 1С++ приложил. Исправлено, теперь пристегнут 1С++ v 2.0.3.1
Добавил регистрацию ActiveX, используемого КОП, по запросу при старте 1С:Предприятия.
Неплохо! Респект за то, что хотелось возится над конфой!)
красиво, реально красиво!
одно замечание: не у всех системный диск именно С: и не у всех Виндовс находится в папке C:Windows
чтобы было более-менее универсально, предлагаю попробовать ФС.WindowsКаталог()
например,
Показать полностью
По подсказке eazy123 добавил анализ местонахождения каталога Windows.
Всем добрый день. Прошу прощения за флуд. Но не как не могу найди документацию как установить компонент и примеры…
Прошу Вас, киньте мне пример как установить данный компонент, и как использовать его в справочнике..
Еще раз, прошу процения что пишу не по теме…
PS. Мне срочно надо сделать чтобы выделять строки разными цветами в справочнике.
Буду ждать ваших ответов на e-mail admin@te.spb.su
(могут лешить меня работы — помогите плз!!!)
+1 по любому
Вопрос автору. Нет возражений, если возьму за основу для своей разработки?
Класс открытый, любой может его использовать без всяких ограничений.
Добавил поддержку 1С++ версии 2.5 (версия, в которой отсутствует FormEx). Для работы самого класса наличие FormEx не обязательно, но для работоспособности демо-конфигурации — необходимо! К конфигурации прилагается версия 1С++ 2.0.3.3 (вместе с FormEx).
Занес данный класс с примером использования в специальную конфигурацию с различными мощными и полезными классами 1С++
http://www.1cpp.ru/forum/YaBB.pl?num=1169222935/80#80
Причем занес очень давно, с момента создания упомянутой конфигурации.
опупеть!
+1
1.В 1:Бух 7.7 (ОСН и УСН) работает все, кроме Журнала Операций
2.В ТиС 7.7. выделение работает только в нескольких журналах: Общем, СФ (выданных и полученных),Чеков ККМ, Ввода нач.остатков и Доверенностей. Моя ошибка или баг?
Автору +1
Для созданных ВРУЧНУЮ бухгалтерский операций включить раскраску не получиться (ИМХО), т.к. нет возможности ввести реквизит шапки для хранения в нем настройки цветового выделения. Для остальных документов цветовое выделение будет работать, если в документы введен реквизит хранения настройки цветового выделения и в журнал операций вставлена графа отображения этого реквизита.
по п.1 — это понятно
по п.2 — Непонятно:
Модули Журнала Платежные Документы и Доверенностей в форме списка имееют одинаковый код:
Перем СписокДействий;
//добавляем функционал Цветности
СписокДействий = СоздатьОбъект(«СписокЗначений»);
СписокДействий.ДобавитьЗначение(«Структура подчиненности»);
СписокДействий.ДобавитьЗначение(«Ввести на основании»)
В Журнале Доверенностей все ОК, в Платежных Документах — не работает. Делал все аккуратно и не один раз.
Не совсем понял что значит приведенный код:
Показать полностью
Если текст в модулях журналов один и тот же, тогда вопрос: в форме журнала Платежных документов была ли добавлена графа, содержащая цветовую настройку, если да, то какой по порядку?
Обсуждение (ИМХО) уже выходит за рамки комментариев, поэтому предлагаю решать этот вопрос общением напрямую через ICQ или по почте. Результат при желании затем можно будет отразить в коментариях (если он будет полезен другим).
Написал в личку.:-)
Исправил «баг»: в случае если Идентификатор какого-либо журнала документов содержал слово «Документ», раскраска в таком журнале не работала.
Вот теперь в ТиС все заработало )))
Спасибо за оперативное исправление бага!