<?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='\
отрывки кода вывода реквизитов:
Показать
так и будем добавлять по желанию?
Автор, ты меня извини, но такая бесплатность нафиг не нужна.
мегалол :-)) я делал его под свои нужны, друзьям пользователям показал — им понравилось! JohnyDeath это ты меня извини, но мне лично больше 3-х не нужно, можеш тупо вставить цикл и этих ограничений не будет :-))) Хотя замечание принято, две кнопки нажать и проблема решена. Ждем еще 1-2-х замечаний и исправляю обработку, а то я ее уже 2 года не улучшал.
судя по скрину — можно исправить орфографические ошибки 😉
а вообще, для меня (наверное, как и для многих программистов) такие обработки интересов не вызывают. Подобное, как и «Анализ несоответствия цен в табличной части документа с ценами в справочнике», «Отчет по 41-му счету в разрезе НДС», пишется очень часто и обычно как «вспомогательное»
JohnyDeath Я уже давно понял что не с пользаком говорю 🙂 Для меня эти обработки тоже не вызывают интереса, так как это рутинная работа, которую хочется сделать с минимальными зартатами времени и потратить время на более серьезные вещи 🙂
(4) за сим откланяемся и ждем статьи.
Народ! Это оч. хорошо, что тут выкладывают вещи не только для программеров, но идля пользаков. Прогрммер, если надо и сам напишет. А нам, любителям по необходимости, каждая обработочка пригодиться может. Сама я что-то не сложное написать могу, но все равно КУЧУ времени на это затрачу. Как я своему программисту говорю, то, что у тебя займет 20 мин, я буду делать часа 3. Так что про нас, юзеров несчастных, не забывайте! 🙂
(4) > Для меня эти обработки тоже не вызывают интереса, так как это рутинная работа, которую хочется сделать с минимальными зартатами времени и потратить время на более серьезные вещи
Такую рутинную работу, имхо, не нужно здесь выкладывать… А то и так загадили хороший портал, чем попало.
Кстати, а где эти самые более серьезные вещи? 😉
Очень хотелось бы на них взглянуть…
(6) > Как я своему программисту говорю, то, что у тебя займет 20 мин, я буду делать часа
Вот из-за таких разработочек штатных программистов и сокращают, отбирают у них кусок хлеба…
Altair777 абсолютно с Вами согласен, что портал загадали. Смотрю полгода за новыми обработками — и только 1% интересного в нем нахожу — остальное никчемные вещи. Вот я и выложил всего 4 внешних отчета, но которые необходимы в работе обычного пользователя (хоть и они не представляют ценности для меня, так как рутина). На счет серьезных вещей — я передумал их здесь выкладывать, поскольку хочу ездить на более новой Toyote и жить в новой квартире, но с большей площадью 😉
Altair777, я кусок хлеба у программистов не отбираю. 🙂 Но вот когда его нет, то приходится выкручиваться как можешь. Ставку прораммиста пробила недавно, хорошую з/п смогла дать, а до этого — 12 главбухов-полных «юзеров», 31 бух. база, 30 ЗиК, отсутсвие единой сети по городам плюс общая управл. база и её доработка…. Вы не представляете как надоело финдиру сидеть ночами и заниматься пусть интересным, но абсолюно не моим делом! Я этого программера на руках готова носить, а бухи с него ваще пылинки сдувают! 🙂 Так то вот. Жить захочешь… будешь писать ночами, что можешь и как можешь, лиш бы работа шла. И еще момент, чтобы прораммер написал то, что улычшит работу, ему надо это… заказать! Угу. Если идеи есть. Для меня идея — это сразу анализ возможности её выполнения. Нельзя же заказывать то, что сделать нельзя. А в инете я иногда наталкиваюсь на такие идеи… пусть и не воплощенные в реальность, но проанализировав и поняв, как это сделать, я даю задание программисту и он его реализует оченно быстро. К сожалению, мы (финики и бухи) часто говорим с вами (программистами) на разных языках. Я — переводчик между этими жителями разных планет. А программер + бух (и финик) = страшная сила! 🙂 🙂 Так что спасибо инету и этому сайту в частности! И вообще, вам всем, за идеи! Идею ведь можно зацепить и в переписке между вами! 🙂
ENITA: программер + бух (и финик) = страшная сила!
Вот это точно сила, и мы с вами Enita — коллеги, у меня чуток другая формура программер + экономист 🙂 И за последнии три дня активного изучения этого сайта, я тоже понял что «голые» программисты не понимают всей картины области, которую автоматизируют, и видят только техническую сторону дела, причем еще заметил, общаясь, что многие закомплексованы устаревшими решиниями типа SQL, и думают что прямые запросы в SQL в 1C-е — потолок программирования 🙂 Аааа-хи-хи-ха-ха!! Ассемблер — вот потолок, а все остальное — это придумки людей знающих его плюс маркетинг 🙂
И на счет идей. Несмотря на простоту этой моей обработки «Универсальная печать..», которую, кстати, в три раза больше уже обсуждаю тут 🙂 — сама ценность идеи (или хотите секрет) заключается в самом скрин шоте — в нем видно начало структуры справочника «Статьи доходов/расходов», что уже является коммерческой тайной, поскольку эти статьи используются в других моих модулях учета ДДС, БДР и баланса МСФО для всех структурных ЦФО. Поэтому сама структура статей стоит немалых денег, так как первую версию структуры статей для я предложил еще в 2005 году для строительной корпорации, а далее дополнял и совершенствовал, для торговых и производственных компаний. Итого 4 года. Могу точно сказать, что даже с крутым финдиром что-то подобное можно получить только методом проб и ошибок и не менее чем через один год. И никакая теория вам не поможет (разве что на старте), говорю так потому в универе работаю лектором почти 10 лет…
Вот поэтому согласен с ENITA что идеи находятся больше не в размещенных обработках, а в «перемиске между вами!» 🙂
Ничего так отчетик. Один раз даже сгодился.
Почитал и ужаснулся.
Нет ничего хуже чем бухгалтер, думающий что он еще и программист, и программиста, думающий что он бухгалтер.
Вот такое мое имхо 🙂
Типа каждый должен заниматься своим делом, а ведь эффект как раз на стыке наук 😀
(14) И это пишет человек, имеющий две специальности: программист и бухгалтер 😀
(15) Каких наук? 🙂
Вспомните миф о глобальном потеплении. И где же оно? 😉
Немножко офф-топа. Работал я как-то на одном крупном производственном объединении. Должность у меня был зам.ГБ и я занимался автоматизацией учета. Это было в те далекие времена, когда 286-ые только стали появляться.
Все бы ничего, но меня подчинили экономическому директору, которая закончила инжэк. Если не ошибаюсь, специальность у нее была — организация механизированной(!) обработки экономической информации.
И она себя считала программистом. И напрасно 🙂
Написать дипломную работу на PL1 — это одно (я знаю, сам писал как-то для выпускницы этого же факультета), а атоматизиция нескольких отделов — это совершенно другое. Тем более, в те времена, когда до выхода 1С оставалось еще несколько лет.
В общем, палок в колеса она активно понаставила…
(16) Ты забыл что я еще и сисадмин 🙂
И я ведь не лезу в бухгалтерию со своими советами.
Зато готов прислушаться к их. Если это действительно советы, а не директивные указания.
Иногда офф-топ куда интереснее, полезнее и познавательнее!
Поскольку типа без истории нет будущего.
механизированной(!) обработки экономической информации — это же надо придумать такое в дипломе написать 🙂 «механизированной», видно в те года я еще в школе учился. В 87-м мне было 11-ть и я изучал бейсик ZX-Spectrum’а, а потом изучил ассемлер имея на руках только таблицу коп-кодов с мнемониками команд, потом полность дизасемблировал игру Saboteur2 с изучением каждой процедуры или блока данных…. ндаа, были времена, потом 8086, 80286,…. Помню в 95-м на 3-м курсе написал программу в Turbo Pascal 7, которая работала в MS DOS, но c Windows-интерфейсом (прямой доступ к видюхе) — экзамен автоматом, а Win95 я еще в глаза не вышел, только Win311 был 🙂 Да, это были времена становления IT-индустрии! А 1С-ку 6-ю версию я увидел только в 98-м, говорят она с 96-го появилась. Настольгия одним словом…
А на счет людей втыкающих палки в колеса, увы, «глупых», красивее сказать не компетентных -) , людей достаточно.
(19) В том-то и дело, что зачастую люди, имеющие отдаденное представление о предмете, как раз и считают себя компетентным.
Этими соображениями и продиктован мой (14).
P.S. А я начинал с машкодов КР-580 и бейсика ДВК-2 🙂
Если не считать, конечно, ЕС-ок.
И снова офф-топ 🙂
Приехал кто-то из ХИРЭ* в Москву по поводу работоспособности ЕС 1050, а ему открытым текстом, как сейчас помню:
«На Руси есть 3 вещи: царь-колокол, который никогда не звонил,
царь-пушка, которая никогда не стреляла и ЕС 1050, которая никогда не считала.»
* ХИРЭ — Харьковский институт радиоэлектроники имени академика Янгеля М.К.**
** опаньки! я за столько лет даже инициалы его не забыл… 😀
(14) пост я знакомому показывал еще 6 часов назад — весело и в тоже время сильно сказано 🙂 🙂 🙂 Вторая половина поста, видимо про меня, но я действительно по диплому экономист, и преподаю в универе экономику предприятия и инвестиции в стр-ве, и кандидатская тоже по экономике, а вот программирование для меня — инструмент, хотя нет — хобби и способ заработка 😀 Но, тогда получается что я не IT-разработчик (или программист), а IT-девелопер (и в том числе программист)… Нда, (14) пост сильный, так и запутаться можно.
И чего же вы тут такие все злые?! Видимо, вам жизнь финики-бухи-экономисты понапортили! Ну, не программер я. Что ж. Зато, когда общаюсь с программистами, они понимают меня, а я их. Я никогда не даю ЦУ программеру. Это все равно что давать ЦУ художнику. Я даю задание и совет, как достигнуть того, что я заказала, не затронув (или затронув, но учтя это) взаимосвязи в 1С-Бух док-тов и правил учета налогв. Я работала замом у финдира в БАЛЬШОМ холдинге, она дала задание ИТ-департаменту быстренько организовать единый справочник контров в упр. базе и бух. базах, ввод новых и корректировка — только в упр. баз, в бух — синхронизация. Вроде, простенько? А как начет того, чтобы предусмотреть, что в дог-рах у всех должна быть галочка «автоформирование книг покупо, продаж»? А ИНН/КПП у 7-10 контров одинаковый? А при синх-ции по кодам в бухню контр Х превращается в контра У ? А главбухи фирм в полуобоморочном состоянии в середине года с фирмами с милиардными оборотами, у которых НДС уехал вместе с их «кукушкой»? И т.д. и т.п. На вопрос, адресованны к ИТ-кам, у них был лаконичный ответ: была команда создать единый справ-к контров, мы его сделали. Про ИНН никто не давал задания, про дог-ра — тоже. И то, что юзеры-экономисты в УУ-базе создают контра путем копирования другого, оставляя ВСЕ, кроме кратк. наименования, … про это тоже никто не подумал! Финдир — потому что дал задание ИТ-отделу «создать», Ит-отдел — потому что «создал» (а т.к. они не знают элементарно, что если нет галочки в дог-ре, то будетпровал с НДС. А то что тока формирование книги по крупн. фирме занимкет 2-3 часа?! Нашел ошибку — исправил и жди 3 часа, нашел -исправил…. А вот если бы изначально финдир не просто дал ЦУ Ит-кам, а еще и посоветовал, что есть некие нюансы… то меня бы не увезли с работы по капельницу на 3- суток и не подсадили бы на реланиум! А каково вам узнать, что НДС не формируется? А если он к уплате под 150 млн.? А если каждый квартал ИФНС нас камералит как крупнейшего? Нет, ребята, девчата, ЧТОБЫ ВЫ ТУТ НЕ ГОВОРИЛИ, но работать надо всегда в команде! А не ссылаться друг на друга, одинн не предусмотрел, другой заданиие не дал, 3-ё ваще выполнил так…. что уши в трубочку! Я не претендую на лавры программера, но считаю, что правда… на стыке областей знаний. Я не знаю то, что программисты, но и они — то, что у меня от зубов отлетает. Надо уважать друг друга! А, NCCSOFT, спасибо за слова! За сим прощаюсь! Уйду опять в подполье, чтобы настроение себе тут не портить. Лучше буду опять просто читать… и черпать. ВСЕМ удачи! 🙂
(22) Не смог пройти мимо не плюсанув…
Noy, пасиб! 😉
(22) Да не злые мы. Иначе брали бы лицензии на отстрел 😉
Так, ворчливые слегка.
А ситуация, описанная в посте, показывает только то, что предприятия, объединенные в холдинги, вынуждены бороться не столько с рыночными угрозами, сколько с воинствующей некомпетентностью управляющей компании. Безграмотное внедрение УУ (очевидно, с откатом) + набор обезьянок на должности экономистов (по знакомству) + кидалово ИТ-шников (вариант — набор обезьянок в ИТ-отдел). «Синхронизация по коду» сколько-нибудь грамотному программисту в страшном сне не привидится. ИМХО либо неграмотность, либо саботаж.
Кстати, расплачивались за все предприятия холдинга…
(25) > Иначе брали бы лицензии на отстрел 😉
А что, их уже выдают? Ура! 😀
А про обезьянок это правильно! Судя по (22), у них именно такая ситуация.
Понабирали дешевых и/или «блатных», а потом льют слезы.
А хорошие спецалисты стоят дорого и относиться к ним надо бережно и трепетно. (см.ниже) 😉
Инструкция программиста
1. Обязанности
1.1. Пpогpаммист обязан выходить на pаботу в день заpплаты.
1.2. Пpогpаммист обязан пpоводить тестиpование pабочих станций, используя совpеменное пpогpаммное обеспечение.
1.3. Пpогpаммист обязан пpинимать спиpтосодеpжащие напитки для поднятия pабочего тонуса.
1.4. Пpогpаммист обязан обходить стоpоной сеpвеp, чтобы не залить клавиатуpу пивом.
1.5. Пpогpаммист должен аpгументиpовано доказать, почему задачу невозможно выполнить, если ему ее лень pешать.
2. Пpава.
2.1. Пpогpаммист имеет пpаво спать утpом до естественного пpобуждения.
2.2. Пpогpаммист имеет пpаво не выходить на pаботу в случае фоpс-мажоpных обстоятельств (лень вставать с кpовати, дождь на улице, плохое настpоение, не удалось влезть в автобус и т.д.)
2.3. Пpогpаммист имеет пpаво устpаивать 30-минутный пеpеpыв на чай каждые 20 минут.
2.4. Пpогpаммист имеет пpаво все свои ошибки свалить на компанию Microsoft.
3. Ответственность.
3.1. Пpогpаммист ни в коем случае не несет никакой ответственности.
(26) Кроме пунктов 1.5 и 3.1 абсолютно со всем согласна!
нО ТАКОЕ МОГУ ПОЗВОЛИТЬ ТОЛЬКО ТОМУ ПРОГРАММЕРУ, которого считаю МАСТЕРОМ! 🙂 🙂 🙂 Нету у нас (да я там и не работаю больше) таких «обезьянок», з/п нормальная, ну не супер, конечно. Программмеры — все отличные были на мой взгляд (за некоторым исключением). Директор ИТ-департамента — ОЧЕНЬ классный специалист!
Вопрос в другом! Вопрос в отношении к делу! И к людям, кооторые от тебя зависят!
Народ! А вы и вправду не злые! Ворчливые, правда, но оченно с вами интересно 🙂 🙂 !
Посмотрела — понравилось, надеюсь, бухгалтерам пригодится. Успехов!
(27) спасибо за добрые слова 🙂
Сделал поддержку неограниченного кол-ва реквизитов (раньше было не более трех)
Я не нашел или действительно нет никаких отборов? Грустно без них.
И кстати, вместо значения «Основного свойства» контрагента в ТиС, гордо выводится название вида свойства. Кажется так не должно быть.
А так, спасиб конешно, но не выручил
Добавил: 1) В качестве реквизитов можно добавлять значение из подчиненных справочников (например, печатать Цены или Единицы для справочника Номенклатуры). 2) Фильтр по текущему справочнику