<?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='\
где скачать? 1c.ru?
(1) wtlz, на v8 есть online демка… в принципе может она устроит…
СППР в первой версии была та еще «разработка». Честно признаться я было обрадовался и подумал, а почему бы ее не вставить в нашу конфигурацию, но в итоге идея умерла толком не родившись, просто на этапе анализа что такое СППР.
Вторая версия — это уже другое дело. Сейчас я понемногу занимаюсь анализом совмещения собственной разработки и СППР, если удастся объединить получится большое решение покрывающее множество задач.
К чему я это, спасибо за полезную и интересую статью, я хоть понял что не один страдаю проблемой отсутствия нормальных инструментов проектирования и разработки. В общем тебе плюс, а как у меня будет более менее что-то готовое я думаю поделюсь с сообществом.
Спасибо, за интересную статью. Она будет еще одним аргументом в деле уговоров руководства о её необходимости. И автору плюс.
(0)
Это не совсем так, в одной из промежуточных версий (ранние версии на управляемых формах) был фукнционал тестирования (в двух словах: пишем сценарий, тестировщик по нему идет и отмечает «работает» или создает ошибку).
В финальную версию данный фукнционал не вошел.
(5) BabySG, это разные продукты, которые почему-то у 1С совершенно друг с другом не связанные.
Например: СППР + Автоматизрованная проверка конфигураций + Тест-центр, но минус хранилище, т.к. в хранилище интеграции никакой в принципе нет.
(6) pumbaE,
+ 1С:ITIL бы ещё + «Центр контроля качества» и тогда уже получим некое решение подобное буржуйским, вроде SAP Solution Manager 🙂
(6) Нет, это не разные продукты, а именно СППР. Те, кто участвовал в пилотных проектах по СППР могли видеть данный фукнционал именно в СППР. Мы сами его использовали, но трудоемкость, конечно, весьма большая. Не каждый клиент будет готов этим пользоваться (вопрос цены), но для разработки, а-ля отраслевой — очень полезно, конечно.
Кажется, часть статьи я слышал на Инфостарт Event. =)
Спасибо за статью.
Жалко конфы приложенной нет, очень пригодилась бы ((
Сам все планирую что-то подобное разработать, а то все распихано по разным документам, приходится как то вертеться…
сапожник без сапог(
(7) ALM?
Очень рад появлению статей такой тематики. Растем.
Спасибо за статью. Сам к этой конфигурации присматриваюсь давно) Просто я программист по неволе) Поэтому решил сначала освоить IDEF0
(11) pumbaE, Ну или ALM если у на Dynamics или VS TFS
(13) help1Ckr,(12) WanGoff,
плохие рассуждения. Главное нам не «дорасти» до того как в SAP, а то будет «полгода пишем бумажки» а потом «3 строчки кода» и ещё «полгода бумажек».
(10) Gureev, она денег стоит, вы в курсе?
(15) горы бумажек — это все, что Вы знаете про SAP? Давайте честно признаем, что у них там может не все хорошо, но все же есть чему поучиться.
Я считаю, что очень плохо, что разработчики… да что там разработчики, архитекторы — и те не знают, что такое IDEF0, UML и прочие слова.
(17) WanGoff, А когда архитекторы кроме слов IDEF0 больше ничего не знают ИМХО это ещё хуже 🙂
Проектирование — вечная тема! Автору однозначно плюс.
Чтение статьи напомнило публикацию из «Зазеркалья»
сослаться на книгу Эрика Эванса «Предметно-ориентированное проектирование (DDD)».
(20) Evgen.Ponomarenko, Зачет 🙂
(20) Evgen.Ponomarenko,
Странно, что это выделено жирным, ведь это и так реализуемо в 1С)
Спасибо за статью, освежил в памяти 🙂
с твоей легкой руки приобрели 1С:СППР и активно используем её,
правда не так, как вы, но если честно, то сейчас я с трудом представляю работу над проектами 1С без 1С:СППР 🙂
в одной базе 1С у меня «сидит» 4 проекта 1С, зафиксированы все этапы доработок/разработок, расписание, пул задач в разрезе процессов и функций, задачи летят исполнителям на почту и в наш корпоративный сервис-деск… красота! 🙂
(22) qwinter,
Дополнительные реквизиты реализованы, но реализация далека от совершенства.
В какой конкретно конфигурации??? Частичные настройки я видел. А так, что бы полностью можно было бы создать транзакцию с нуля любой степени сложности — не видел… подскажите, где посмотреть с удовольствием разберу на запчасти.
(24) Evgen.Ponomarenko, ну прям с нуля и любой степени сложности пока не видел, а вот в рамках регистра бухгалтерии это реализовано в Бухгалтерии государственного учреждения редакция 2.0 (но переложить эту логику на все движения можно, было бы время))). Хотя если учитывать возможность использования внешних обработок то по сути и по другим регистрам можно делать движения не вмешиваясь в конфигурацию. Ну и там же дополнительные реквизиты, дополнительные колонки табличных частей, дополнительные табличные части.
(25) qwinter,
Большая просьба ко всем, кто видел хорошие решения данного вопроса — делитесь. Как раз сейчас занимаюсь этим вопросом. Решение есть, но оно какое-то не очевидное в плане наглядности, нет в нем красоты. А так хочется совершенства. Внешние обработки — это как вариант, но хотелось бы чтобы программирование как таковое происходило только в обработчиках событий, а логика приложений лежала в структурах настроечных таблиц. Как пример удачного решения можно привестиhttp://wpmag.ru/2014/sql-wordpress-query-monitor/ увы… это не 1С.
(26) Evgen.Ponomarenko, в контексте ссылки могу сказать, что плагины вордпресс равносильны внешним и внутренним доработкам. И их реализация не отличается от 1с. Разве только в том, что не требуется выгонять всех пользователей при установке.
(27) qwinter,
Ага… согласен… но внутренним механизмам wordpress присущи два свойства это простота и красота, изначально заложенные в систему.
1С пошло по пути наращивания функциональности и усложнению системы.
(28) Evgen.Ponomarenko, если бы у 1с ничего кроме одной конфигурации не было бы, тогда можно сравнивать, а так сравнение несравнимого.
(23) pt_olga,
из всего перечисленного к прямому назначению СППР относится только «в разрезе процессов и функций» :))))
(16) spetzpozh, ой, точно. Я думал это типа конвертации.
(17) я еще в школе научился рисовать блок-схемы, а оказывается это что-то типа IDEF0…
UML странная фигня, не знаю… если кто-то покажет пример реального использования, то можно это слово запомнить.
Вообще, хороший архитектор должен знать «куда забить гвоздь», а не «чем его забивать».
Инструмент всегда вторичен. Плохо когда об этом забывают.
Это как автоматизация ради автоматизации, или проектирование ради проектирования.
Вместе с конфигурацией 1С:ERP Управление предприятием 2.0 поставляется готовый заполненный шаблон СППР:Проект «УП (ERP), ред. 2.0».
В нём содержатся уже готовые ER- и IDEF0-диаграммы, функциональное описание по блокам и с приличной декомпозицией. Так же многие функции уже связаны с метаданными конфигурации.
Считаю, что 1С на правильном пути, данная формализованная информация позволит более результативно и эффективно (цена/качество) начинать проекты по УП 2.0.
(20) Evgen.Ponomarenko,
Открываем БГУ2 и видим, что там это сделано. Исходя из опыта запуска (мы пилотный проект запускали, когда официально еще даже конфигурации не существовало) — для средней и большой системы это нафиг не надо. Для ларьков — самое то. (Разговор о пользовательском режиме).
Теперь смотрим УП2 — уже лучше, но тоже есть свои грабли.
Доброе время суток!
Подскажите, пожалуйста, есть ли в СППР встроенный механизм загрузки/создания в отдельной группе объектов метаданных отчетов/обработок , внешних по отношению к описываемым в проектах конфигурациям? Не в группах объектов метаданных проекта (конфигурации) под названиями «Обработки» и «Отчеты», а в отдельной группе объектов метаданных (например, с наименованием «Дополнительные/внешние обработки, отчеты»), но в рамках одного подраздела проекта («Объекты метаданных»).
(34) Нет, в типовой нет.
Вообще, СППР по своей идее не предназначен для такого.
Коллеги, кто использует СППР более чем на 85% и находится в Москве, можете организовать мастер класс, частному лицу, с описанием процесса работы и как используется данная система в процессе?
По документации сложно разобраться 🙁
Естественно, оплата обсуждается.
Ребята, а может кто нибудь может поделиться документацией? буду очень благодарен 🙂
IDEF0 там конечно не ахти. Если объединить с ОптимаСофт:ПРИМАhttp://www.optimasoft.info/index_prima.html то можно получить нормальную декомпозируемую модель бизнес-процессов автоматизируемой организации в IDEF0 + eEPC + use case (uml).
Прошло пол-года с момента публикации статьи. Есть какие-то существенные измененияулучшения в последних релизах системы? На вопросы и пожелания в конце статьи была какая-то реакция?
(31) Gureev, «UML странная фигня, не знаю… если кто-то покажет пример реального использования, то можно это слово запомнить.»
Ну обрывочно можно что то зафиксировать в UML диаграммах, но так чтобы комплексно отрисовать весь проект от реальных бизнес-процессов до программного кода, то я не могу себе представить как это возможно. Мы даже раз попытались это сделать. Неудобно моделировать и непонятно выглядит. В результате увязать разные уровни представления между собой оказалось попросту невозможно…
ARIS очень мощный инструмент для формализации бизнес-процессов. Использовал в ряде проектов.
P.S.: 1С правильно сделала позаимствовав нотацию eEPC у ARIS.
Завидую автору… У меня сейчас нет клиентов, готовых оплачивать «рисование картинок» 🙁
(38) Steelvan, «можно получить нормальную декомпозируемую модель бизнес-процессов автоматизируемой организации в IDEF0 + eEPC + use case (uml)»
Зачем скрещивать ежей с ужами ? Нотация eEPC полностью покрывает потребности моделирования бизнес-процессов.
(39) V_V_V, только косметические изменения пока приходят, увы
(37) profnet, Документация — ни о чем. Даже сканить стыдно.
Когда последний раз щупал СППР все было очень сыро. Сперва переводил ее на управляемые формы. Объекты метаданных это, конечно, хорошо, но хотелось бы еще заполнять объекты данных, отделить методологов от разработчиков. Допилил объекты данных. Типовая загрузка грузила не все, так и пришлось свой загрузчик конфигураций писать. Печати в ворд не хватает очень и очень сильно, свои шаблоны писал. В общем, намаялся довольно сильно. Сейчас используем, но не очень активно. Имеет смысл новую версию ковырять, принципиально много поменялось?
(32) а шаблон это сама конфа СППР? Или что-то что в нее надо загрузить?
И с ERP 2.1 тоже поставляется?