<?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='\
Интересно, а что это за кнопочка:
«Выделить все для объединения»?
Эта кнопка ищет все ссылки в иерархии к выбранным объектам. Можно и объеденить так, но тогда размер конфигурации сильно увеличится. Нам нужно отметить галочками не все в иерархии объекты к выделенным, а лишь те, которые в иерархии на первом уровне.
Если хотите попробуйте воспользоватся даной кнопочкой, а потом сделайте все как я описал, и увидете огромную разницу.
Именно потому что отмечаются не все ссылающиеся в иерархии объекты а только те, на которые ссылаются «нужные Вам» объекты (лишь первый уровень иерархии), при втяжке в базу у клиента нужно втягивать эти же «нужные Вам» объекты, и кроме их никакие.
В противном случае потеря даных неминуема.
на русском плиз картинки
Довольно очевидное решение. Может кому пригодится. Плюс только за то что пошагово расписано.
(3) Сам-то на каком языке слово «плиз» сказал? Какая разница на каком языке картинки? Ясно же что написано. Текст на русском. Этого достаточно.
(5) Ну и ничего, мы же москальский язык понимаем, ты тоже потренируйся. А вообще, язык называется «украинский». Надеюсь для тебя будет не слишком сложно быть более культурным?
(5) предупреждение за «хохляцкий»
(6) предупреждение за «москальский»
(7) Пусть не по теме, но указанный термин был выбран, дабы указать товарищу gilv на его заблуждения и отсутствие культуры общения.
Можно выгружать измененные объекты с помощью буфера обмена (команда clipbrd), а у клиента через промежуточную базу закидывать. Но наверное этот способ больше подходит для новых объектов (т.е. сразу загрузка в конфигурацию из буфера)…
Также поставлю минус за картинку на языке, отличном от русского.
Автор в русском описании ссылается на картинки, т.е. картинки — это важная часть публикации.
Пожалуйста, исправляй публикацию, тогда минус уберу.
(9) нехороший способ. Подойдет только для новых объектов
Минус не заслуживает!
ОФФ. Свое мнение ты высказал плюсом, а я минусом, на то нам и дан рейтинг.
(6)
именно эту позицию и заминусовал, а не суть содержимого
(12) сделает на русском, минус заменю на плюс
(10), (14) А для англоязычных программ на русских сайтах ты тоже минусы ставишь? ❓ Может у чувака только украинский фейс установлен.
Вот из принципа и вредности сейчас плюс поставлю. Статья написана на РУССКОМ (и правописание поприличнее, чем у некоторых). Что, человеку надо было специально 1С переустанавливать, чтобы надписи на кнопочках стали русскими? А как с метаданными быть? Придирки по картинкам считаю абсолютно неправильными.
(15) (14) я высказал свое мнение, вы — свое
уважаю Ваше, НО
давайте тогда на вьетнамском тоже сюда постить (1С поддерживает и такой интерфейс),
и код 1С писать на английском, чтобы англоговрящие заходили и им было все родное 😀
(16) поскольку сам писал техническую документацию для разноговорящих аудиторий, то отвечу — ДА, доустанавливают ВСЕ НЕОБХОДИМЫЕ интерфейсы
еще раз, точек зрения может быть сколько угодно
(17)
Не так вже велика різниця в мовах, щоб не зрозуміти простих написів на картинках 😀
(5)
правильно пишется украинский язык — и не нарушай правила.
автор даже на сайте своем в зоне ua статью выложил на русском языке (и мог вообще картинок не выкладывать)
идея и статья и имеют право на жизнь.
(19) вот это чистейшей воды флуд.
(19) я скрыл 😉
А в общем, тут все комменты флад, завтра потру на хрен 👿
(21) На мой пользовательский взгляд, все нормально.
кто-то плюсанул за, а мы вдвоем против — на то и система рейтингов.
Пусть автор решает, нужны ему в загашнике два минуса или нет 🙂
а на мой модераторский взгляд 🙂 — также норма.
(5) все-таки не слишком сильно отклонился, а далее пошло нормальное обсуждение, правда, все-таки не в тему топика.
(0) Если автор захочет, могу скрыть все, что не относится к теме статьи. На рейтинг, естественно, это не повлияет 🙂
😀
Блин, ну вы даете! Четыре картинки — это окна которые всем знакомы! Если кто в эту статью заходит, он полюбому знает эти окна идля чего они, а также для чего предназначены эти все кнопки.
Я думаю нет такого человека который не понял о какой кнопке я говорил в тот или иной момент. Просто придираетесь изз-за принцыпа (всетаки к англиским скриншотам наверно не будете придератся).
Знаете, вот хочеш с кем-то поделится чем-то полезным, а так лень бывает. Думаешь потратить время.. нехочется. Я заставил себя, скриншоты поделал. НУ не русский интерфейс у меня на 1С. Клиентам всем на украинском ставим… НУ что мне снести и русскую поставить? а потом назад украинскую? Так для каждой статьи делать? Или компьютер отдельный купить и поставить эску для скриншотов?
Мне просто эти скриншоты вообще поудалять, сдесь и так все по шагах расписано.
Мне даже в личку написали все ошибки, которые нашли в моей статье, чтоб я исправил.
Ладно, ошибки я исправлю, но скриншоты менять не буду. Могу только под каждым скриншотом перевод написать.
Тока зарегался, первая моя статья, и так вы меня, да? Ну ладн 👿 … (Спасибо тем, кто статью защищал, отдельно модератору)
а как вариант: делать *.cfu (только изменения)?
давно оценил такой способ
Так это ж вроде если поставил конфу на свою поддержку?
да) оч удобная штука)
на самом деле в поставке ничего можно не менять…
опишу свой вариант.. один совершенно другой человек обслуживает чью-то конфу, просит меня переделать какой-то док. Я беру типовую того же релиза и вношу в нее необходимые изменения… делаю файл обновления и усе) тот человек берет мой cfu и видит только этот док (случай если он сам ранее его не менял) в случчае, если он его менял ранее понадобится не типовая конфа, а рабочая
Я не могу понять в чём проблемма восприятия украинского интерфейса на кнопках ? Я например на въетнамском интерфейсе объеденял конфигурации и как-то не очень меня напрягало то что я не понимал надписи.
PS Из-за специфики экзаменов 1С набор пунктов меню, кнопок на форме и в пунктах меню в конфигураторе, а так же порядок и тип сообщений приходиться зубрить. Так что будем терпимы к украинскому :).
(26)
Выше нос! 😀 Первая публикация, 9 плюсов уже имеешь, принципиальной критики не было — так что все нормал.
Спасибо за поддержку 🙂
Ребята-минусовщики, в чем проблема? У человека украинская конфигурация (!!!!) — действительно не переделывать же ее на русский интерфейс. А хорошо у меня — часть на русском, часть на украинском (я пишу исключительно на русском, но заставлять своих коллег делать то же — увольте)? Это тихий ужас. Но мы уже привыкли… Претензии к содержимому изложенного есть (не к форме и языку!!!)? Если да, то критикуйте и соответственно оценивайте, а минуса за надписи на формах при каких хырах?
И еще. Вот не надо меня дразнить особенно во вторник с утра, не надо… И не надо этих шивинистических словечек «хохляцкий». У меня тоже есть много чего сказать — уж будьте уверены! Запас слов у меня приличный, а нецензурных — просто кладезь. Но не будем опускатся до уровня тупого безграмотного быдла.
PS: Ставлю плюс для уравновешивания незаслуженных минусов.
Я тоже поддержу чисто потому, что место рождения у меня Украина, Киевская область г. Белая Церковь ❗
Есть другой вариант, приведенный на этом сайте, только ссылку не могу дать, т.к. сам забыл.
Если есть удаленная база, к которой все время делаются правки, то выгоднее делать на основе программки bsdiff. Делаем один раз выгрузку конфигурации и считаем ее за эталон. Потом через bsdiff сравниваем эталон с новой выгрузкой и получаем файл-патч, который накладываем у клиента в обратном порядке и получаем нашу версию. Патч получается минимального размера, который только возможен.
Пользуюсь этим уже давно в полуавтоматическом режиме через ftp, кому интересно — пишите в личку, сподвигнусь на статью 🙂
(34) скажи все что думаешь не стесняйся
(35) прям «евровидение» какое то )))
Господа, вы меня удивляете 🙁 Толковая статья, все оформлено как нужно, есть картинки… и 41 комментарий, по существу — единицы.. Чего Вы придрались к картинкам?
Кому нужно пообсуждать язык, поздравить друг друга с праздником — заведите тему на форуме, не засоряйте здесь.
Abadonna, обещал стереть весь флуд — так сотри.
мда…. я надеялась, что какой-то оригинальный способ будет… 🙁
Пусть 1 Мбайт стоит 2 рубля. Тогда стоимость передачи файла будет 124 рубля. На подготовку обновления согласно этой инструкции уйдет полчаса. Вопрос: оно того стоит?
Всё-таки через .cfu — лучше. И быстрее, и риск потерь данных заметно меньше.
А по сути ни у кого нет замечаний? Только из принципа — русский/украинский? Вы похожи на наше (украинсеое) оранжевое правительство. Если по существу статьи нет нареканий, тогда от меня плюс. Мне статья понравилась, считаю полезной. ПЛЮС.
В связи с разгоревшейся дискуссией просто вынужден поставить плюс — статья выгодно отличается от «русскоязычных» публикаций тем, что написана по-русски, т.е. с соблюдением русской орфографии и (почти) пунктуации.
Ставлю плюс.
Хотя таки да, bsdiff или xdelta намного безопаснее будут. Ими даже в 3 часа ночи после пьянки ничего не испортишь 😀
Хоть на китайском. По сути — статья написана хорошо, но! Автар, ваше подпольное имя не капитан очевидность, случайно? Просто глаза на лоб лезут за какую фигню на этом ресурсе пользователи плюсов наставлять готовы!
Спасибо, для меня подход новый!
(Киев) 🙂
(49) Ad absurdum:
Все, что описано в документации 1С — ОчеВидно. Поэтому все курсы, учебники, консультации — прикрыть немедленно.
Все, что где-либо описано — ОчеВидно. Научим ребенка грамоте в детском саду, и не будем тратить государственные деньги на образование.
Словом, пока не получил патент на открытие — помалкивай.
(27) и (45) — я тоже пользовался один раз *.CFU, но клиенту наша фирма полностью переписали конфигурацию. Для обычных клиентов (которые вчера у одних, сегодня у тебя, а завтра по знакомству у третьих) ставить конфигурацию на свою поддержку не корректно.
Пока читал публикацию пришла в голову идея про более быстрый способ с помощью бинарного сравнения конфигураций, но (36) и (48) — тоже светлые головы 🙂
За публикацию (тем более первую) «плюс» и поздравления. На минусантов не обращай внимания — они демонстрируют свое невежество и гордятся этим. В конце-концов, у нашего украинского языка символы кириллические в отличии от того же упомянутого вьетнамского.
(37) Не провоцируй. Думаешь, если грузин выспыльчивый — его дразнит можно, ДА? Зарэжу. 🙂
Это не евровидение (не обижай Ларису), сами же цирк устроили — просто минуса, согласись, за уши притянуты. Честно говоря, публикация оформлена очень качественно — многие уже существующие явно до нее не дотягивают. Вот такое мое ИМХО.
Автору БОЛЬШОЙ ПЛЮС за статью. Сам пользовался *.CFU, но не всегда удобно. Но из коментов узнал много нового про сравнение бинарных файлов.
А по поводу скрина, так всем 1С-никам они понятны и не надо издеваться над автором.
(54) Скрины не всем понятны, а жаль. Используемый продукт можно было бы и узнавать и по скринам на других языках — кнопочки-то и окошки-то те же, небось.
(55)
Кому скрины не совсем понятны — добро пожаловать вот сюдаhttp://pereklad.online.ua/
При помощи его я поразил Кушнира безупречным владением украинским 😀
(56) и как копипастить текст со скринов? 🙂
(57) А если OCR на них натравить 🙂
Давайте уже прекращать этот флуд — ну сколько можно.
Кому не нравятся скрины уже поставили минуса, кто-то защищал автора плюсами.
Дебют автора удался с хорошим результатом.
Все остались довольны.
ОФФ. Кстати, автор проставиться должен нам, минусовавшим 🙂
без наших минусов столько плюсов ИМХО не получил бы 🙂
(59) Нет худа без добра. или наоборот…
А зачем где-то переводить? Пусть автор после каждой формы поместит перевод ключевых реквизитов. Делов-то… Глядишь и минуса уберутся, да и плюсов добавится. И это будет правильно — сайт русскоязычный, надо соответствовать.
(49) Осмелюсь скромно спросить: есть предложить вариантов получше? Колхоз дело добровольное: не вступишь — растреляют ( 😉 ). Считаешь, что тебе это не нужно, все очевидно — ради бога!, но почему сразу «фигня»? А промежду прочим именно с фигни (курсовой работы) паренек из Боснии сделал офигенную приблуду — IrfanView (идин из лучших вьюверов на сегоднешний день). Зачем же так коллегу сходу «мочить»?
Поздравим лучше еще одного нашего коллегу с хорошим почином (нашему полку прибыло!). К чести автора хочу заметить: не стал ввязыватся в разборки и перебранки, не ушел в обиду, проявил сдержанность. Споемся! 🙂
(34) гдеж тут про сравнение бинарников много? (0) Статья толковая, хотя подобными вещами часто на 7.7 занимались, но там проще все намного. Что касается минусов (сори за флуд) ну народ пошел сейчас такой, все по картинкам да по картинкам… Да еще неужто украинский русскому понять сложно? Неверю! И давайте уже прекращать эту около -нацианалистическую хрень: хохол, маскаль…
Недавно, кстате, использовал этот метод и поставил лишнюю галочку… в результате у клиетна полностю слетел обмен с периферийками.
Этот метод следует использовать очень осторожно!
В общем-то пригодилось, благодарим =]
через .cfu — лучше. Я сам гражданин Украины,но хохляцкий язык не поддерживаю даже на картинках. Но минус не поставлю, потому что к делу не относится.
Спасибо автору за идею, пригодилась.
Можно добавить угрожающее «Использовать на свой страх и риск!», иначе будет ошибка сапера)
А впрочем, бэкапы никто не отменял…
Любопытный, но опасный метод однако.
Давно пользовался таким методом, только не заморачивался на добавлении стилей и общих объектов…
Для сохранения ссылок в реквизитах нужножного документа лишь заливал в пустую конфу справочники.
Единственный момент — к такой обрезанной конфе нужно обязательно писать описание, какие объекты можно объединять. Особенно актуально если обновление рабочей базы может отложиться на некоторое время и/или производиться будет другим человеком.
В общем решение рабочее и не является «ноухау». Весьма полезно для удаленщиков.
Можно добавлять в подсистему только те объекты которые можно обединять, и втягивать по подсистеме.
Красным шрифтом, большим шрифтом сделай слово НЕОБРАТИМА
Может быть кто-то подскажет, как получить файл измений конфигурации для УРБД. мне нужна УРБД с одинаковыми конфигурациями ЦБ и ПБ, но обмен мне удобнее делать по правилам обмена данными, а когда их делаешь — отключается обмен изменениями конфигурации
нормальная статья для начинающих
А мне понравилась статья. Автору спасибо
Хорошая статья и нечего придиратся к человеку. Я украинский понимаю, но тут суть не в том, что нужно на скриншотах что-то вычитывать — они созданы для общего примера!
(26) Да если бы не комментарии, я бы и внимания не обратил, что с надписями на кнопках что-то не то…
В данном случие придерживаюсь мнения что замечание с языком верно. Всеголишь дававайте культурно оформлять работы. А раз доскреблись только до языка то значит с остальной частью все ок :)… просто до идеала не хватает одной мелочи …
(0) Статью с своим вариантом написал — молодец…
ПС. А cfu в 1С отменили?
Я обычно делаю более типовым механизмом…
Конфигурация/ПоставкаКонфигурации/Создать файлы поставки и обновления конфигурации.
И там выбираю.. либо создаю файл поставки..
Либо мне нужен только файл последних изменений, значит беру только файл обновления.. указываем конфигурацию, для которой делаем обновление — и готово)))
(79) а можно где то подробней почитать про такой способ?
Конфигурация/ПоставкаКонфигурации/Создать файлы поставки и обновления конфигурации.
А что именно обновлять там указывается?
а если такие изменения как описано проводить на конфигурациях с разными релизами что будет?
Хороший вопрос. Покажет какие изменения произошли. Но если так обновить, то потом все равно надо будет стандартно обновлять наверное, чтоб1с-ка увидела, что все-таки релиз поменялся.
(83) Gendalf_beliy, Ну да.. сначала свои изменения создаем в файл. А потом уже обновляем этим файлом.
Если конфа типовая но пиленная, то потребуется свой файл конффигурации объединить с файлом поставки, и потом уже обновлять конфу)))