<?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='\
Вопрос автору: что значит умеет работать с большими объемами справочников?
Ответ автора: не знаю, как сейчас, а в 2003 году эта обработка с ИТС использовала при работе объект «Текст», который, по крайней мере тогда, работал с файлами не больше определенного размера (точно размер не скажу, не проверял). В результате чего, если объем выгружаемых данных превышал этот лимит, то 1с (21 релиз) жестко вылетала. В моей версии используется объект «AddIn.V7TextFile» (расширение V7PLUS.DLL), который умеет работать с файлами больших размеров.
Натолкнулся я на эту проблему, когда с помощью этой обработки попытался перенести данные одного клиента. Пришлось переписать код, то, что тогда получилось, и выложено здесь.
Вообщем-то, конечно, не Бог весть что, но простым пользователям может пригодиться 🙂
Я делал выгрузку из ЗиК и забыл отключить спр. Адресный классификатор, ждал часа 2 и все вроде выгрузилось, файл занимал 15 метров (посчитал сколько городов, улиц, … у нас в России). +1
Спасибо за отзыв и плюсик 🙂
Оптимизацией скорости работы этой обработки, увы, не занимался 🙂
Из моего, там только ограничение выгрузки истории периодических реквизитов и работа с большими объемами.
Все остальное — авторство 1С 🙂
2 (Maniac) Ни за что! :)))
а мне понравилось, спасибо
Спасибо за отзыв 🙂
Не являюсь зарегистрированным лицом. Но эта обработка очччень нужна.
А разве так сложно зарегистрироваться?
Хорошая обработка, оч полезно
очень неплохо
В общем +1, вот бы еще и документы прихода и расзода переносились было бы вообще супер!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Посмотрим чья лучъше?
to Egles:
http://infostart.ru/projects/index.php?id=181&ref=987
Посмотри вот это, может чем пригодится
to Константин: Смысл? Я всего лишь подправил обработку от 1С. Я ее не писал.
Я начинающий программист С 1с не работала Язык в стадии изучения Кто поможет?!
Есть обновление tranref.ert от 26.02.2006
И что там изменилось? 😉
Спасибо всем, кто оставлял комментарии и плюсовал рейтинг 🙂
Не плохо!!!
Я её уже встречал, вот только она была? или похожая?
2 МАСТЕР: «Переделанная стандартная универсальная обработка с диска ИТС», ее можно «встретить» на ИТС 😉
Спасибо!+1
попробую
Отличная прога… а главное много вопросов не задает +1
Дал бы +2 да неразрешають
пробую
Спасибо !+1
Спасибо всем, кто голосует! Особенное спасибо тем, кто еще и комментарии оставляет! 🙂
Ошибка при выполнении метода компоненты c:grivaze1SBDBv7plus.dll
В чём может быть ошибка????
Попробуй поставить «v7plus.dl»l посвежей.
Я взял с 484 релиза!!!
Дату длл-ки озвучь.
Елки! Похоже мне пора выкладывать wrap.ert с отключенной пометкой удаления. Во рейтинг подскочит! 🙂
O-Planet:
Вы считаете эти изменения равноценно-полезными? 😉 Тогда — вперед.
А что за неё голосовать, если она закрыта, и её нельзя посмотреть в действии?! За кота в мешке, что ли?
Что за тайна? Можно обойтись и стандартной, в таком случае…
2 Stan: Если лень регистрироваться, чтобы скачать обработку, то уж регистрироваться, чтобы проголосовать точно не будешь. Так зачем мне ее тебе открывать? Пользуйся стандартной.
пробую.
Подскажите бестолковому буху, почему пишет при попытке загрузить курсы валют с сервера http://www.rbc.ru в 1СПредприятие (7вер) — Не удалось обнаружить компоненту V7Plus.dll что Это значит и где взять данный длл
Это значит, что у Вас нет компоненты «V7Plus.dll». Взять этот длл можно у того, кто ставил Вам «1С».
Очень нужное дополнение к стандартному функционалу!
Обработка нужная каждому!
+1=100.
Здорово, что есть люди, которые делятся своими трудами)))))
Спасибо! Помогло, только РНН не перенсло, но ето скорей наше дополнение, типа вашего ИНН а так все чего ожидал!
1с только учу, было оччнь надо, пасиб! +1
Полезная маленькая фенечка… 🙂 Спасибо !
Хорошая вещь !!!
Скачал, при случае попробую, спасибо автору.
Вот еще кто-бы рассказал, например Типовая ТиС — как перенести номенклатуру с базовыми единицами измерения в такую же базу ТиС…?
спасибо
Че такое?
«»»»»»Не удалось обнаружить компоненту v7plus.dll!»»»»»»??????
2 Сhe Burashka: «Вот еще кто-бы рассказал, например Типовая ТиС — как перенести номенклатуру с базовыми единицами измерения в такую же базу ТиС…?»
А в чем проблема? Это Вы про циклические ссылки? 😉 Вот этой штукой можноhttp://infostart.ru/projects/181/ 🙂 Она конечно тормознутая, не спорю, особенно при переносе документов, но со справочниками проще, потому по-быстрее.
2 Virus_exe: У вас не установлена длл-ка v7plus.dll. Если не ошибаюсь, можете найти ее в дистрибутиве конфигураций 1С.
2 всем остальным: Большое спасибо за все комментарии!
не, я не про циклические ссылки…
я про то — как синхронизировать подчиненный номенклатуре спр.единицы — если в единицах нет кода и наименования, а синхронизацию надо делать как минимум по паре ОКЕИ+ШК
аа?
2 Сhe Burashka: Ясно, тогда моя обработка, увы, не поможет.
Полезно.
Нужная обработка
Отличная обработка давно искал +1
+1
Справочник номенклатуры из ТиС в бухгалтерию перенесся, но цены стали нулевыми (видимо их не перетаскивает) ?
Проверил на типовых ТиС и Бух при полностью автоматической установке соответствий без каких-либо дополнительных настроек. Цены перенеслись.
хм.. как и предполагалось…
Если СпЗнач.Получить(«ТипЭлемента») = «Элемент» Тогда
{G:1С\_МАГАЗИНИГРУШЕК.DIRTRANREF.ERT(649)}: Значение не представляет агрегатный объект (Получить)
— попытка переноса между двумя идентичными конфигурациями ТиС.
переносятся 2 справочника — номенклатура и Цены номенклатуры, свернутые на текущее число.
Ага! Вроде поборено: перед выгрузкой текстовых значений хорошо бы их проверять на «нечитаемые» символы типа РазделителяСтрок
+1
в чистую базу номенклатура, цены и единицы номенклатуры перенеслись корректно
2 Сhe Burashka: Да, совершенно верно, если в текстовых полях есть символы типа «РазделительСтрок», то будет глюк — поскольку сохраняется все в текстовый файл по-строчно и считывается по-строчно (Если в одном из сохраняемых полей есть символ «РазделительСтрок», то в текстовом файле при сохранении «организовывается» две строки вместо одной. Соответственно, при считывании обработка получает только первую строку, т.е «огрызок» данных, который она в принципе не может «понять»).
И выход Вы предложили абсолютно верный.
Более того, у меня самого даже был такой момент в работе, но — лень-матушка: мне было проще «набросать» обработку, которая подправила в справочнике «Номенклатура» многострочные текстовые поля, заменив «РазделитьСтрок» на «пробел». На этом и успокоился 🙂
Сейчас подумал… А ведь там всего одну строчку подправить в «tranref.ert»! Вот что значит, работать тупо, не думая…
Лопухнулся я кажется 🙂
> но — лень-матушка: мне было проще «набросать» обработку, которая подправила в справочнике «Номенклатура» многострочные текстовые поля, заменив «РазделитьСтрок» на «пробел». На этом и успокоился 🙂
+1
я тоже так сделал… 😉
кстати — судя по всему из-за аналогичной фигни ругалась универсальная выгрузка/загрузка XML mcexp.ert — типа что-то «группа должна содержать element — из-за чего собственно и ломанулся сюда, а когда здесь разобрался — проверять уже лень было…
Добавлю в свою коллекцию.
Хорошая обработка, я ее использовала для переноса справочников 1С Комплексная конфигурация 7.7 For sql, для такого конфига тока так ))
(63) Самокритика — это есть ошен карашо +1
ДАЖЕ В КОМПЛЕКСНОЙ СРАБОТАЛА ЗАМЕЧАТЕЛЬНО … ХОРОШИЙ ТВЕРДЫЙ ПЛЮС
Суперская штучка!!! Спасла от утомительного переноса из упрощенки в бухгалтерию. Огромное спасиб!!
Пользую данный продукт давно но не знал автора.
Спасибо ему за труд :))
Перенес всю номенклатуру в комплексной,все нормально.Полезная вещь.
сегда нужна такая вещь
Попробовал. Классно!
Было бы очень полезно добавить возможность обновления реквизитов выбранного справочника.
Например: Необходимо обновить штрих-коды в параллельной базе.
Огромнейшее спасибо, очень помогла!!!
Удобная обработка особенно когда нужно перенести данные а времени как всегда в обрез
Закиньте пожалста сабж на soundforum2@e1.ru
Хорошая обработка
Давно искала, большая благодарность от измученного пользователя.
Почему-то не перетягивает подчиненные справочники?!
Напр., в ТМЦ проигнорировала цены, единицы!
А в периодич.реквизитах проставила только дату?
(81) Ответ на Ваш вопрос здесь
http://www.1partner.nnov.ru/forum/index.php?fid=3&id=12008231447837
Хорошая обработка
Молодец!
Плюсы мог бы и не просить, такие классные обработки все равно все заплюсуют… 😉
Давно искал такое!
Хорошая обработка
не скачивается!!!!!
>>В противном случае — при несоответствии рейтинга количеству скачиваний — доступ к обработке будет ограничен.
А что, если я скачал, а оказалась фигня, то я тоже должен «+» ставить?
Непонятно нафига козе нужны подобные баяны, когда еще в 2004 году был написан Универсал 2.7 ? Да еще автор мнит себя чуть ли не благодетелем всей земли при этом :))) Переписав пару строчек чужого и при этом примитивного кода.
Размер 0.24 kb, скачивается файл empty.txt, в нем:
Данная разработка «убрана» с сайта «инфостарт.ру».
Скачать данную обработку Вы можете здесь:
http://www.1partner.nnov.ru/develop/
Обсудить, задать вопрос, оставить отзыв можно на «Партнерском» форуме:
http://www.1partner.nnov.ru/forum/
по указанным ссылкам файлы существуют, конкретнее здесь:
tranref.zip (~18 Кб, 08.07.2007)
par_attr.zip (~6 Кб, 08.07.2007)
но — лень-матушка: мне было проще «набросать» обработку, которая подправила в справочнике «Номенклатура» многострочные текстовые поля, заменив «РазделитьСтрок» на «пробел». На этом и успокоился smile:)
+1
я тоже так сделал… smile;-)
кстати — судя по всему из-за аналогичной фигни ругалась универсальная выгрузка/загрузка XML mcexp.ert — типа что-то «группа должна содержать element — из-за чего собственно и ломанулся сюда, а когда здесь разобрался — проверять уже лень было…
Спасибо добавлю в нашу коллекцию обработок, протестируем, если конечно время будет
Много лет пользовался….автору 5+
Вообщем то не плохая обработка я поставлю плюс
Вообще не плохая обработка. Удобно, когда надо обработать большой объём.
Спасибо, хорошая обработка!
Удобная вещь, жаль уже не надо.
Хорошая обработка!
автору спасибо за старания
(60) что добавить в обработку то подскажите?