<?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='\
Подскажите, пожалуйста, ссылку на статью по РАУЗ, которая Вам помогла
Добрый день.
Можно по подробнее узнать про описанную конфигурацию. Посмотреть и может быть купить со временем.
А уважаемый автор имел какое-либо отношение к компании Инвестгазватоматика?
Вот статья про кэширование ключей в РАУЗ
http://infostart.ru/public/306109/
По-моему, что-то еще делалось…
>> А уважаемый автор имел какое-либо отношение к компании Инвестгазватоматика?
Да, один из проектов по Газпрому был связан именно с этим названием, под эгидой Газпром Автоматизации на Саввинской набережной.
А с кем имею честь?..
Большой и жирный минус за постоянное использование американизмов ! Автор, ты русский язык знаешь ?
(6) Steelvan, Вам с Вашей американофобией к доктору надо.
Скажите,пожалуйста, использовались в разработке методологии IDEF,UML?
+
Было интересно почитать. Спасибо!
(5) С бывшим руководителем отдела разработки вышеозначенной компании, в которой вы работали внешним разработчиком.
(6) Steelvan, работал в западной компании, где программист 1с был один я, остальные Java, PHP и т.п. Так вот в таких коллективах на «скрамах» общаются только на подобном «жаргоне» и люди уже привыкают и по русски даже не знают как сказать это. Проф деградация если хотите.
(8) vec435, конкретно в Газпроме по-моему нотация ARIS больше распространена — из тех компаний группы, где мне довелось общаться.
UML — для Java хороша, а в 1С-то из нее сущности как сгенерить? Изобрели какой-то инструментарий?
(10) Silenser, а где сейчас?
Спасибо большое за статью, было интересно ее читать
(13) Крупный холдинг, преимущественно пищевка. Название не скажу 🙂
Всё написано правильно. Но вот по поводу «Еще хочу сказать про разницу в отношении к коммуникационным проблемам у программистов и менеджеров.» хочу внести небольшое замечание.
У Менеджера единственной задачей на проекте является коммуникации. Всё остальное — от архитектуры до реализации возложено на других участников проекта. Да, менеджер еще должен обеспечивать планирование и контроль, управлять рисками, предвидеть всё в целом и так далее, но все эти функции — это частные проявления комуникаций Менеджера проекта с внешним миром (заказчиками, ключевыми пользователями, внешними консультантами, кураторами проекта от головной организации и т.д) и с внутренним миром — командой проекта (архитектором, аналитиками, методологами, программистами и т.д.) Отсюда и вся суть — программисту не только в силу его характера, в большей степени из за того, что комуникации не являются его функцией и да, пардон — не оплачиваются — нет никакого желания тратить на это время. Вот и всё. Другое дело что конечно Менеджеру удобней, когда часть его работы возьмет на себя программист. Проведет опрос, обучение, сдаст блок или согласует спорные моменты ТЗ, но это говорит только о том, что Менеджер плохо выполняет свои функции и получает деньги за то, что его работу проделали другие. Браво конечно. Программисту никак не заставить Менеджера проекта кодить за него.
Чем больше компания тем менее она поворотливая, никто не хочет брать на себя ответственность, а иногда чтобы что-то изменить нужна кипа встреч по поводу и без
«Но проблема в том, что мы не можем перевести на управляемые блокировки только один документ, мы должны перевести в этот режим все регистры, а значит, и весь функциональный блок. Это тяжелая работа, но, тем не менее, она оправдана.»
В УПП это в свойствах конфигурации одно свойство поменять…
В чем заключается «тяжелость» работы?
«программист сталкивается с организационной проблемой (главный бухгалтер у него не хочет принимать работу), он на нее обижается, объявляет ее ведьмой-чернокнижницей и говорит: «мы с ведьмами переговоров не ведем, мы их сжигаем на костре». Что он делает дальше? Он начинает искать единомышленников и собирает толпу, чтобы действительно эту ведьму сжечь. Но за последние 10 лет я не слышал, чтобы кого-то из управленцев сожгли, или хотя бы уволили из-за конфликта с программистами: они не достигают такой степени влияния в организации клиента»
Конфликтовать с сотрудниками заказчика не стоит. Даже если они не правы. Нужно просто постараться минимизировать влияние этих людей на проект.
Скока платят программистам 1С в газпроме?
И почему такой дурной тест на входе?
(17) alex_4x, я бы еще добавил вот что — автор статьи ставит, что программист ОБЯЗАН встречаться с представителями заказчика. И он такой-сякой будет с ними ругаться, сволочь…
Вообще то на мой взгляд, для встреч с заказчиком, составления ТЗ, тестирования, уточнения ТЗ и т.п., если это крупный проект — должен быть не программист-кодер, но программист-аналитик (архитектор, глава группы разработки — как хотите называйте, без разницы). А то кодеру порой правда некогда. Да и не его это работа, как вы совершенно верно заметили.
А то может быть ситуация — весь такой белый-красивый менеджер «общается», а во всех проблемах виноват… программист. Подход «во всем виноваты программисты» он конечно прикольный, но не неправильный — ибо заказчик с таким же успехом может быть невменяемым, обладать скверным характером, менять свои показания и т.п. А виноваты… программисты….
(22) Богатырев Артур, «А виноваты… программисты….»
Ну а кто ж еще? 🙂 Какие есть варианты? Будете доказывать заказчику что он не прав?
Год назад 1 БИТ презентовал похожий мега проект. И если покопаться на инфостарте найдется еще парочка похожих.
При всех плюсах за решения по оптимизации БД они сникли при простом вопросе — А зачем ?
Есть такое понятие как декомпозиция БД.
Да, требование заказчика, чтобы все данные были в одной базе.
Но он под этим подразумевает прежде всего отчетность, а никак не то, что например ему надо обязательно расчет себестоимости делать всем в одной базе.
Знатоки меня поправят, но в типовых решениях зарплата считается по организации, БП закрывает период тоже по одной организации и т.п.
Т.е. простым РИБ по организациям можно свести супер мега
дорогойсервер к нескольким.Это и пользователям облегчит жизнь и службе безопасности и бюджет подэкономит в разы.
И автоматом решится задача с журналами регистрации.
А если удачно написать правила обмена и уйти от РИБ, то в центральной базе будет сводная аналитика и все просто взлетит.
Правительству Москвы это может и не сильно нужно, оно
пилтратит бюджетные деньги, а вот акционерам Газпрома может быть интересноЗаумные красивости. Эффектные рассуждения людей в дорогих костюмах и галстуках.
Я тоже могу накатать такой трактат, исходя из сферических благих пожеланий в вакууме. А вот на практике у людей, красиво изъясняющихся на изуродованном русском, каковой они полагают профессиональным жаргоном, рисующих впечатляющие картиночки, схемки и графики, выходят всё больше кривые проекты с заваленными сроками. Опыт тут элементарный — изложены, в основном, моменты, которые лично мне очевидны совершенно, да вот только бесполезны.
…ах да, виноваты, естественно, программисты.
Я ставлю публикации [+]
Не в моем плюсе смысл, я просто хочу сказать, что написано по делу, простым и ясным языком, красиво в конце концов. К спорам и обсуждениям автор готов, а не закрывает комментирование, как некоторые другие, не буду приводить ссылки, вы их увидите в топе по управлению.
В целом мне реально очень приятно видеть тут управленцев и очень приятно что они допускают обсуждение. Так мы и до комунизма и синергии доживём!
Я могу написать короткий очерк. Важная роль руководителя проекта. Где его спина-ваша жопа. Где ваша спина — его жопа. Когда в команде «АДМИНИСТРАТИВНО» а не только по понятиям выстроены правильные внутренние коммуникации — начинается парадигма роста. Каждый, понимая суть, старается максимально улучшить продукт, каждый со своей стороны, барьера внутренних коммуникаций нет. Ах я забыл.Это уже плагиат. Это же А. Гарин. Гиперболоид Инженера Гарина.
(25) Yashazz,
>> людей в дорогих костюмах и галстуках
у вас откуда-то есть информация о стоимости моего костюма и галстука?..
единственный галстук который я купил задорого в Нью-Йорке, давно уже вышел из ротации, потому что был заляпан маслом из котлеты по-киевски.
остальные могут себе позволить все обладатели значка «1С: Специалист «.
или это вы какие-то свои комплексы продемонстрировали ненароком?
>>Я тоже могу накатать такой трактат
чтобы вы понимали, это не трактат, а стенограмма (с мизерными правками).
если вы можете, вам следовало 1) заявить на конкурс примерное содержание, 2) за него бы проголосовали люди, 3) вы бы выступили на конференции, и 4) потом бы вам предложили опубликовать стенограмму выступления.
если же вы как в том анекдоте, можете 30 раз за ночь, но только на словах — тогда да, остается писать такие посты.
>>красиво изъясняющихся на изуродованном русском
у вас в одном предложении — эпитеты «красивый» и «изуродованный», что является нарушением формальной логики. Марь Ивановна за такое сочинение вам влепила бы «2», уважаемый знаток русского языка, и хорошо еще если в психдиспансер не направила бы: «- мальчик считает, что изуродовать можно красиво.»
жаргоном является (я смотрел в словаре) уже тот набор слов, который понимают два пастуха в горах, а другие не понимают, потому что не пасут овец. один мой коллега пользователей называет «пользунами», а обработки — «обработинами», так вот, каюсь, я считаю именно это профессиональным жаргоном.
если вам нужен какой-то особый жаргон, прошнурованный и с печатью, и только он для вас будет «профессиональным» — ничем помочь не могу.
>>проекты с заваленными сроками
от сумы да от тюрьмы, как говорится, не зарекайтесь.
>>моменты, которые лично мне очевидны совершенно, да вот только бесполезны.
а вы под каждой статьей сообщаете в пол тыщи знаков, что она вам бесполезна, или только под моей?..
>> …ах да, виноваты, естественно, программисты.
в статье, кстати, про вину ни слова не сказано — озвучена проблема, и способ решения — больше общаться с заказчиком и не зацикливаться на своих эмоциях.
даже этот совет отдельные читатели умудрились принять на свой счет и воспринять эмоционально…
(19) ZLENKO,
>> В чем заключается «тяжелость» работы?
1. имеем конфу где нет упр. блокировок.
2. пытаемся точечно перевести 2 документа и 1 регистр на упр. блокировки. так как вид блокировки определяет верхняя транзакция, тут же начинают валится сообщения о других регистрах, которые стоят на автоматике, а документы делают по ним движения.
3. переключаем эти регистры на упр. режим и их — добавляя собственно код блокировок в кучу мест.
4. оказывается, движения по этим регистрам делает еще 5 документов
… проходит несколько дней …
впрочем, сам перевод галочками действительно элементарен. =)
Если статья позиционируется как опыт очень крупных внедрений, то оставляет странное впечатление.
1.Пояснения о том как «боролись» за производительность описаны как сказал однажды Лустин в «методичке бауманского института за 3 курс».
Посмотрите для сравнения видео о Деловых линиях.
Кстати, если уж пригласили в МВТУ для написания курса об управлении проектами, посмотрите есть ли там та самая методичка. Или Лустин всех «развел»?
2.Часть об управлении проектами — общеизвестные истины.
3. Последняя часть — обрывочные абзацы, как будто их писала секретарь с диктофона,
а не специалист которые постоянно работает с документами и съел на этом две собаки.
«Очущение» такое, что единственное достоинство автора в том, что он умеет договариваться.
Это отличное качество, и часто его достаточно для ведения успешных проектов.
Но если так, то автору и нужно об этом писать, показать как правильно нужно договариваться,
а не пересказывать то что ему рассказали его программисты при внедрении.
Во всяком случае такая статья была бы на инфостарте действительно оригинальной, а если «с опытом из первых рук» — так еще и интересна.
(28) «1. имеем конфу где нет упр. блокировок.
2. пытаемся точечно перевести 2 документа и 1 регистр на упр. блокировки. так как вид блокировки определяет верхняя транзакция, тут же начинают валится сообщения о других регистрах, которые стоят на автоматике, а документы делают по ним движения.
3. переключаем эти регистры на упр. режим и их — добавляя собственно код блокировок в кучу мест.
4. оказывается, движения по этим регистрам делает еще 5 документов
… проходит несколько дней … »
Галочку достаточно поменять всего одну 🙂 в корне конфигурации.
Блокировки прописывать не нужно — достаточно перейти на новую методику контроля остатков.
Все.
(30) ZLENKO, с таким подходом бюджет не освоить!) А как же переделка всех модулей и их дальнейшая поддержка?
Что подразумевает автор под паттернами ? Автор понимает вообще значение этого слова ?
Словоблудие какое-то.
(21) ture, Развенчаю миф о заработке программистов в Газпроме: большую зарплату там получают только люди с правильными фамилиями, которые подозрительно совпадают с фамилиями руководителей в головных организациях. В прямых дочках, зарплаты обычно не высокие, т.к. ограничены штатным расписанием, подвинуть которое есть задача на грани подвига. Поэтому, для того, чтобы нанять грамотного спеца используют дочерние организации (точнее, внучки), которые являются чисто коммерческими и штатка в них более лояльна к сотруднику. Зачастую может возникнуть ситуация, когда в отделе может сидеть несколько сотрудников из разных юр. лиц, но подчиняющихся формально одному руководителю.
Поднять зарплату потому, что повысилась стоимость специалиста на рынке — тоже довольно тяжелая задача. Поэтому обычно спецы, работающие в там получают выше среднего по рынку, под потолок рынка получают только те, кто являются ключевыми сотрудниками и руководство считает, что им нужно платить так, чтоб не ушли. Но чтоб таким стать, нужно отработать там от 3х лет и дольше и завершить пару проектов, которые запустили первые лица компании.
Однако, есть и плюсы. Обычно у сотрудников есть ДМС, оплачиваемый до 100% среднего заработка больничный, отпуск по ТК, ежегодная индексация оклада, нечастые переработки, премии ко дню газовика, на 8е марта и 23 февраля.
Резюмирую: Можно ли много получать работая в структуре Газпрома — да. Является ли это правилом, только на основании того, что вы работаете в одном из юр. лиц Компании — нет.
Спасибо огромное автору за статью. Читал на одном дыхании. В отличие от статей похожей тематики проста для понимания. Хотелось бы увидеть еще статьи этого автора.
P.S. Вопрос к автору: существует ли кратчайший путь (материалы, курсы и т.д.) чтобы обладать таким же опытом и знаниями как у вас?
(34) artemusII,
Здравствуйте, вам спасибо за добрые слова.
Не сказал бы, что обладаю каким-то недостижимым опытом/знаниями — если чем и обладаю, так это легкостью на подъем, благодаря чему оказываюсь в нужное время в нужных местах.
По 1С имеется не так уж много литературы, и если вы будете ее последовательно читать, вам никуда не деться от «Профессиональной разработки», и книги по «Эксперту».
Что касается курсов, я сам особо никуда не ходил, зато ввязался в преподавание, и волей — неволей пришлось изучить все на нормальном уровне (по зарплате, например, были серьезные пробелы в понимании механизмов вытеснения, перерасчетов).
Для расширения кругозора рекомендую не зацикливаться на 1С, а изучать другие языки — в моем случае Java, сейчас много читаю про Kotlin, думаю в нем есть потенциал.
Также рекомендую таки изучать предметную область, технологии производства, чтоб не выглядеть профаном, когда вы к примеру внедряя ERP, будете пытаться консультировать производственников на уровне «ты верно сосчитал овец, но оставь в покое мою собаку». =)
В моему случае это закончилось тем, что сейчас я пытаюсь на первом этаже дома из подручных материалов собрать фрезерный станок с ЧПУ, возможностями 3D печати из пластика и в будущем плазменной резки.