<?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С:Предприятие 8.1: Разработан механизм «Настройка типов данных» для 1С:Предприятие 8.1. Механизм упрощает процедуру создания дополнительных атрибутов конфигурации, общих модулей и констант, позволяет описывать общие модули, константы и атрибуты, создавать формулы расчета значений атрибутов документов и справочников, привязывать формулы к событиям системы, настраивать свойства, оформление, поведение атрибута, назначать каждому документу системы список доступных печатных форм и дополнительных атрибутов.
.
Похоже, что оно и есть 🙂
Достигнуть вселенского щастья практически бесплатно?:)
+(4) Да. Сыр показали, а мышеловка где? Есть-ли демоверсия. Можно-ли сей продукт скачать и ознакомиться.
(7) Костя обещался, значит будет!
Уважаемые, Константин сегодня в командировке, завтра ответит на все вопросы.
И где же можно скачать наша светлое будущее…..
Красота! А теперь пощупать бы…
А сколько стоит и как сие чудо исследовать?
На сайте в новостях : «Выпущен первый релиз конфигурации для оперативного (управленческого) учета «СКАТ-Профессионал» на платформе 1С:Предприятие 8.1. Доработан интерфейс целого ряда документов, усовершенствованы отчеты по складу….»
А где смотреть. Жутко интересно…
Но все-таки плюс…
Идея оригинальная и перспективная. Собственно, витала в воздухе с выходом восьмерки. Думаю, поскольку патента на сие чудо не получить, будут и альтернативные реализации. По скринам видно, что все обставлено по полной, но как всегда, пользователю нужно нечто среднее, типа: взял кубики — сложил — заработало. Подключать программные модули — это несколько не для пользователя.
метеа-мета-мета-мета…..мета-конфигуратор… и вот она — БКК!!!!!! Большая Красная Кнопка!
по итогам:
п.3 и п.4 — вряд ли…
А к чему это все?
Всем добрый вечер.
Ввиду ряда объективных причин (одна из которых катастрофическая нехватка времени) — нет возможности выложить демо-версию сейчас.
Демо-версия несомненно будет выложена, но чуть позже.
Мета-конфигуратор (слух конечно режет, но другого названия пока придумать не могу) — нельзя просто взять и скопировать в свою конфигурацию (хотя конечно возможно, но очень затратно) — это скорее стиль написания конфигураций позиционирующих себя как «универсальный тиражный продукт».
Для создания универсального механизма — платформа 8.1 не обладает достаточным инструментарием (отсутствует ООП, но самое неприятное — отсутствует универсальный перехват всех возможных событий (аналог класса «перехватчик» из компоненты 1С++), без которого вообще сложно сделать что-то универсальное не затрагивающее изменение конфигурации)
(12) O-Planet — речь в первую очередь идет о внедренцах — людях далеко неглупых, которые зачастую обладают знаниями уровня разработчика.
(14) Душелов — можно почитать статью 🙂
(13) Сhe Burashka — Речь не идет о «большой красной кнопке» — речь о механизме позволяющем решить множество проблемм связанных с внедрениемсопровождением конфигурации.
Прочитал. Не понятно. Зачем все делать на справочниках, если есть конфигуратор и прочие возможности, которые он предоставляет?
(17) Душелов — если после прочтения статьи остался тот же самый вопрос то боюсь я врядли смогу на него ответить, к сожалению сложно отвечать на вопросы из разряда «зачем в предприятие обработка <консоль отчетов> ведь все можно сделать в конфигураторе да и возможностей там больше»
(15) Значит добавить в типовую не получится. Тогда, действительно, зачем всё это?… Зачем писать статью о решении всех проблем внедренца… бла-бла-бла… и всё такое. Это не более чем интересная возможность ВАШЕЙ конфигурации. Не надо вводить людей в заблуждение 🙂
(15) Мде… Как-то ожидал большего. Мы еще на семерке делали разные шаблончики, которые пользователь при желании мог оформить в собственные, дополнительные справочники и документы, не залазия в конфигуратор. Что мешает сделать некий универсальный, промежуточный блок, расширяющий возможности системы при создании своих копий документов? Указываешь исходный документ, список доп. реквизитов, схему проводок… Название «метаконфигуратор» вдохновило на идеи, но боюсь, что демка серьезно разочарует.
Такой механизм действительно необходим… правильная тема, правда возможности такие должны быть заложены в платформу, но к сожалению ничего подобного 1С пока не предлагает…остается ждать, когда разработчик прислушается…думаю необходимость наличия подобных вещей они понимают, но вот почему пока не реализовывают.. возможно что-то подобное будет в следующем поколении платформы…
Н-да… Насвистел пескарь… Наливают, отпускают…
И, что самое приятное во всем этом – при очередном обновлении Пользователя свежим релизом — никакой головной боли, ни у Внедренца, ни у самого Пользователя.
Терзают смутные сомнения насчет достоверности этого тезиса. Сдается мне, автор чего-то не договаривает…
Что будет, если, скажем, в новом релизе разработчик добавил в документ реквизит, наименование которого совпадает с мета-реквизитом?
20 (O-Planet)
>>Мы еще на семерке делали разные шаблончики, которые пользователь при желании мог оформить в собственные, дополнительные справочники и документы.
Шаблончики — это несомнено здорово (без них жизнь пользователя была бы еще сложнее), но шаблончики всегда останутся шаблончиками.
>> Что мешает сделать некий универсальный.
К сожалению мешает многое, не стану перечислять все — скажу лишь что возможности платформы 8.1 далеко не так безграничны как того хотелось бы.
23 (Палыч)
>> Что будет, если, скажем, в новом релизе разработчик добавил в документ реквизит, наименование которого совпадает с мета-реквизитом?
Ничего не будет — нет пересечения реквизитов конфигуратора и реквизитов добавленных пользователем — так что подобного рода проблемм точно не возникнет.
22 (wolfsoft) — судя по всему это намек на отсутствие демки?! если это так — то спешу заверить что демка будет выложена в течении текущего месяца.
21 (bumbarasch)
>> возможности такие должны быть заложены в платформу, но к сожалению ничего подобного 1С пока не предлагает
Все верно — основная идея была именно такой, но раз уж на уровне платформы нет такого механизма то почему бы разработчикам конфигураций самим не позаботится о пользователях?! вопрос разумеется риторический.
угарная штука )))
Идея действительно витала в воздухе. Реализовывал нечто похожее (по идее, а не по реализации, без пользовательского режима, но с упрощением сопровождения) для типовой конфигурации. Молодцы! И если 1С не заложила подобных возможностей в платформу, то, возможно, это послужит стимулом для выхода новых типовых релизов с подобным функционалом.
…и почем нынче опиум для народа? 🙂
идея интересна,
интересует вопрос скорости работы с большими массивами данных.
Думаю, пока, хотя бы демка не появиться обсасывать нечего.
Но, минимум, за идею, большой рахмат.
(26) Что-то уже и следующий месяц заканчивается, а демки нету.
(32.Asdam) Справедливое замечание, к сожалению публикацию демки пришлось отложить (по принципу пусть будет позднее зато с бОльшими возможностями) — демка будет выложена 1 декабря (совместим выход с выходом нового дизайна инфостара ;))
Юзаю альфа-версию демки от автора.
Лично у меня энтузиазма только прибавилось.
Очень здорово смотрится и юзается.
.
Доп.атрибуты на лету, удобная работа с печ.формами, встроенные и пользовательские регистры правил, куча различных событий и т.д. и т.п.
.
Конечно, есть нерешенные проблемы, куда же без них.
К самой большой проблеме я все-таки отношу необходимость довольно серьезного изменения конфигурации для поддержания данной подсистемы.
ИМХО пока здесь нужно обратиться к возможностям выгрузки/загрузки модулей/форм конфигурации, к возможностям Enterpise Integrator, V8Unpack и т.д., к возможностям сливания текстов с помощью 3-merge (Kdiff3 и др.)
Т.е. некоторые аналоги того, что уже давно существует для 77.
.
ЗЫ автор обещает завтра для всех выложить демку после исправления тех мелочей, которые мы сегодня обнаружили.
Вот ссылка на Альфа-версию конфигурации
http://webfile.ru/2443265
Р.S. к сожалению на инфостарте пока еще нет возможности закачать файл большого размера, поэтому скачать можно пока только по ссылке
P.P.S. конфигурация находится в разработке и выложена пока только для изучения возможностей, выход бета-версии ожидается в конце декабря начале января.
Ссылка не работает, а посмотреть очень хотелось бы.
собственно плюс я поставил давно. почти аналогичный функционал СКАТа использовал и дейсвительно РЕАЛЬНО решил многие вопросы без использования конфигуратора, таким образом возникает только один вопрос
Костя, гемороя много наверное с оконачтельнйо доводкой демо-версии?
уж очень не хочется мне корежить ЗуП, функционал востребован
(37) Привет Алексей, извини что не сразу ответил (отчетный период лишил свободного времени)
Демка есть, но нет времени, что бы ее выложить, могу скинуть тебе на почту если интересно.
интересно конечно
90% текущий задач можно закрыть подобным функционалом и отдать на сопровождение в техподдержку
почта allustin на яндекс.ру
ребят, так где демку то глянуть?
33lab, если демки не будет, тогда отпишись, чтобы напрасно не ждать.
Демо-версию можем выслать по эл. почте (80 мб.). Пишите, пожалуйста, на 33lab@mail.ru с темой «Демо», файлы архива отправим на обратный адрес.
За идею +. Очень хочется увидеть как это выглядит в реальности.
А где же комменты? пропали при обновлении?
Хочу посмотреть альфа-версию. Ссылка не работает. Пришлите пожалуйста на ящик slawaill@mail.ru
Очень хотелось бы попробовать. Где можно демо посмотреть? 🙂
головной боли может быть меньше, а может и нет.
При обновлении типовой конфигурации, где стоит данная надстройка, придётся проверять все свои формулы точно также, как при обычных внесённых изменениях, ибо если поменяли имя реквизита, то и в формуле его надо будет менять. Т.е. придётся отслеживать абсолютно все изменения конфигурации.
А как же строить отчёты? Нужные нам данные не имеются фактически в документах и регистрах, значит надо также переписывать их все, связывая получаемые данные с данными в этих надстройках?
Тема интересная, но как правильно описали в (47) — вызывает определенный ряд сомнений.
Так где же взять демо?
(48) DitriX, Демо-конфигурация у них на сайте лежит. URL под последним рисунком в статье.
На мой взгляд в наших реалиях такой способ разработки не взлетит.
Возьмем пример: Нужно доработать конфигурацию для того же молокозавода. Специфики у него очень много, начиная от особенностей при приемке сырья (пересчет в жирокилограммы) до трех единицах измерения при хранении сырья (в типовых конфигурациях одна). Теперь представим что некто (Разработчик) взял за основу мифическую УПП написанную по правилам мета-конфигуратора. Другой некто (Внедренец) взял и всю эту конфигурацию допилил напильником до требований заказчика. Теперь появляется третий, Сопровожденец, который и будет дальше поддерживать конфигурацию. Что он увидит ? Набор непонятных справочников, модулей созданных в пользовательском режиме, без возможности сравнения с типовыми наборами, без возможности описания и понимания логики разработки.
Более того, скорость работы также под вопросом. Если сейчас в задачи внедренца и сопровожденца кроме доработок входит и оптимизация, то в мета конфигураторе набор инструментов для оптимизации резко сокращается.
Дальше — больше. Захочет например бухгалтер учет автотранспорта в системе. Сейчас сопровожденец возьмет за основу тот же УАТ. Выдернет оттуда модули и документы, допилит под требования заказчика и готово. А в мета-конфигураторе будет до скончания веков переносить вручную код. С формами же он вообще застрелится,как я понял автора, сложные произвольные формы, сильно отличающиеся от родительских документов, нужно создавать программно.
Хотя с другой стороны, если мы посмотрим на тот же oracle, у них уже есть системы разработки конфигурации, работающие в режиме веб клиента. Сделать такой мета-конфигуратор на управляемых формах, и для некоторых конфигураций он станет незаменимым дополнением-ведь в этом случае можно один раз закинуть конфигурацию на сервер, и далее все манипуляции с ней производить уже через веб браузер, без использования громоздких средств разработки в виде конфигуратора. Но с увеличением сложности конфигурации пользы от мета конфигурации имхо будет все меньше.
(50) recon,
На мой взгляд в наших реалиях такой способ разработки не взлетит.
Не просто «взлетит» а успешно «летает» у всех наших клиентов уже несколько лет.
Возьмем пример: Нужно доработать конфигурацию для того же молокозавода. Специфики у него очень много, начиная от особенностей при приемке сырья (пересчет в жирокилограммы) до трех единицах измерения при хранении сырья (в типовых конфигурациях одна). Теперь представим что некто (Разработчик) взял за основу мифическую УПП написанную по правилам мета-конфигуратора. Другой некто (Внедренец) взял и всю эту конфигурацию допилил напильником до требований заказчика. Теперь появляется третий, Сопровожденец, который и будет дальше поддерживать конфигурацию. Что он увидит ? Набор непонятных справочников, модулей созданных в пользовательском режиме, без возможности сравнения с типовыми наборами, без возможности описания и понимания логики разработки.
Такая «мифическая» конфигурация написана довольно давно — называется «СКАТ». Для тех же молокозаводов (да и не только для них) многое написано именно через мета-конфигуратор и это успешно работает не один год.
Дальше — больше. Захочет например бухгалтер учет автотранспорта в системе. Сейчас сопровожденец возьмет за основу тот же УАТ. Выдернет оттуда модули и документы, допилит под требования заказчика и готово. А в мета-конфигураторе будет до скончания веков переносить вручную код.
Не совсем так. Скорее совсем не так. Дело в том, что все наши клиенты работают на одной единой конфигурации (т.е. никто из них ничего в конфигураторе не меняет) любые «хотелки» реализуются на уровне мета-конфигуратора именно для того, что бы не было никаких проблем с обновлением (обновлять конфигурацию может любой бухгалтер потому как достаточно сделать архив и «Загрузить измененную конфигурацию» и все, именно поэтому многие клиенты обновляются сами).
P.S. Реализовывать «хотелки» пользователей в конфигуроторе несомненно в несколько раз проще,удобнее и возможно быстрее чем в мета-конфигураторе, но это и есть некая плата за универсальность… Либо удобство разработки (конфигуратор) либо удобство обновление (мета-конфигуратор).
P.S.S. Наша конфигурация строится на 3 основных моментах:
1. Мета-конфигуратор (возможность внесения любых изменений без конфигуратора)
2. Типовые операции (выбор проводок в документах пользователем а не программистом в модуле проведения)
3. Регистры правил (права доступа, запрет редактирования, автоподстановка и т.д.)
P.S.S.S. Если интересно могу показать как это все реально работает (через аммитимвьер)