<?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='\
ошибка
из бух 77 в нее же вчерашнюю
Документ ‘Завершение работ’: загружено 0 элементов
Документ ‘Закрытие месяца’: загружено 0 элементов
Если СчетФактура.ДатаДок < ‘01.01.2006’ Тогда
{Документ.ЗаписиКнигиПокупок.Модуль Документа(222)}: Операции сравнения на больше-меньше допустимы только над значениями совпадающих базовых типов (число, строка, дата)
Документ не проведен! :Формирование записей книги покупок 00000001 (31.01.08)
Документ ‘Формирование записей книги покупок’: загружено 1 элементов
ИначеЕсли СчетФактура.СчетНДС = 2 Тогда
{Документ.ЗаписиКнигиПродаж.Модуль Документа(117)}: Поле агрегатного объекта не обнаружено (СчетНДС)
Документ не проведен! :Формирование записей книги продаж 00000001 (31.01.08)
Это ошибка возникала не в данной обработке, а в документах Формирование записей книги покупок и Формирование записей книги продаж. А ошибка возникла из-за того, что в данные документы не перенеслись счет-фактуры. Чтобы ошибка не возникала, надо сначало загрузить счет-фактуры, а потом уже документы Формирований.
Спасибо, пригодилась, все работает :)))
Запарился искать по сути стандартную обработку для Зик, перекинуть то надо было документов штук 100, наконец нашел — работает без ошибок.
Опупунная прога, все работает в ТиС, спасибо автору.
однозначно + !!!! супер весч, подмогла 🙂
Супер!!! спасибо!!!
Я счастлива!! спасибо автору! весь день мучаюсь с переносами данных, «универсалом» не смогла перенести, все что надо было (мож в настройках не разобралась, конечно) да и зачем разбираться, когда тут такая прелесть! простая обработка, и все то она перенесла, и никаких ошибок нет! отлично!
Кажется всеми обработками с инфостарта уже пытался пользоваться.
Эта единственная, которой мне удалось перетащить документы. Спасибо автору.
Воистину — просто работает, то что нужно без затей.
Все работает. Переносятся документы, создаются товары, но коды товарам присваиваются по порядку если кому кретично надо поправить :)))
Аффтор — Благодарю!
В смысле — коды товаров получаются разными в базе источник и базе приемник :))) из за этого возможно и дубли товаров появляются…. (не проснулся еСчё 😉
Выгрузка документов завершена
Документ ‘Банк. выписка’: выгружено 0 элементов
И такое по всем докам. В чем вопрос может быть?
Надо указать период в котором есть эти документы.
Работает без нареканий. Автору — спасибо!
Хочу выгрузить во вчерашнюю базу операции по лицевым счетам, мне выдает Документ ‘Операция’: выгружено 0 элементов
Документ ‘Операция по л/с’: выгружено 0 элементов
Выгрузка документов завершена
Хотя период я указал верно и даже с запасом.В чем может быть проблема? Мне после свертки базы будет необходимо перенести документы за день который я пропущу, ищу подходящую обработку.
Данная обработка не переносит операции, только документы.
Спасибо. Очень пригодилось. Работает!!!
Большое, пребольшое спасибо. Очень помогла, в трудный момент
Огромное спасибо, очень нужная вещь!!
бух справки не переносятся. а именно субконто
(21) в какой конфигурации?
там такая штука, что из копии базы в копию переносится все, а если в чистую переносить, то субконто пустые. Ну а для копий хорошая обработка
(23) это естественно, обработка справочники не переносит, только документы. Для переноса справочников используй Универсальную обработку по переносу справочников с диска ИТС tranref.ert
Проверил на ЗиКе — работает!
А у меня на ЗИКе выгружаются только документы без движений в журнале расчетов, так что за прошлые периоды нет смысла выгружать
Я счастлива!! спасибо автору! весь день мучаюсь с переносами данных, «универсалом» не смогла перенести, все что надо было (мож в настройках не разобралась, конечно) да и зачем разбираться, когда тут такая прелесть! простая обработка, и все то она перенесла, и никаких ошибок нет! отлично!
Супер!!! Очень пригодилась….
Спасибо, очень нужная вещь, так как работаю в двух базах.
Очень пригодилась
Автору спасибо
Даеш такую же для 8.2!? 🙂
(31) если базы одинаковые, то можно воспользоваться обработкой из КД ВыгрузкаЗагрузкаДанныхXML82.epf
Пригодилась. Спасибо автору
из бух 77 в нее же вчерашнюю
Документ ‘Завершение работ’: загружено 0 элементов
Документ ‘Закрытие месяца’: загружено 0 элементов
Если СчетФактура.ДатаДок < ‘01.01.2006’ Тогда
{Документ.ЗаписиКнигиПокупок.Модуль Документа(222)}: Операции сравнения на больше-меньше допустимы только над значениями совпадающих базовых типов (число, строка, дата)
Документ не проведен! :Формирование записей книги покупок 00000001 (31.01.08)
Документ ‘Формирование записей книги покупок’: загружено 1 элементов
ИначеЕсли СчетФактура.СчетНДС = 2 Тогда
{Документ.ЗаписиКнигиПродаж.Модуль Документа(117)}: Поле агрегатного объекта не обнаружено (СчетНДС)
Документ не проведен! :Формирование записей книги продаж 00000001 (31.01.08)
AndreyBuka Закрытие месяца не переноси, а просто вручную создай и проведи. Так лучше будет.
1с7((
31) если базы одинаковые, то можно воспользоваться обработкой из КД ВыгрузкаЗагрузкаДанныхXML82.epf
Ответили: (32)
шибка
из бух 77 в нее же вчерашнюю
Документ ‘Завершение работ’: загружено 0 элементов
Документ ‘Закрытие месяца’: загружено 0 элементов
Если СчетФактура.ДатаДок < ‘01.01.2006’ Тогда
{Документ.ЗаписиКнигиПокупок.Модуль Документа(222)}: Операции сравнения на больше-меньше допустимы только над значениями совпадающих базовых типов (число, строка, дата)
Документ не проведен! :Формирование записей книги покупок 00000001 (31.01.08)
Документ ‘Формирование записей книги покупок’: загружено 1 элементов
ИначеЕсли СчетФактура.СчетНДС = 2 Тогда
{Документ.ЗаписиКнигиПродаж.Модуль Документа(117)}: Поле агрегатного объекта не обнаружено (СчетНДС)
Документ не проведен! :Формирование записей книги продаж 00000001 (31.01.08)
(37) — (38) накручиваем себе очки здесь? Зачем копировать предыдущие комментарии?
Супер! Все работает! Очень пригодилась
Спасибо автору!
За три года опечатку на главной можно бы и исправить.
(41) Это какую?
(42) «Сужествуйте» и дальше так.
Спасибо за обработку! Попробую и обязательно отпишусь в комментариях.
Отличная обработка! Все быстро, просто и понятно :)!
Только вот..
К сожалению, обработка мне не подошла, так как не загружает справочники по ссылкам =(
Замечательно ! Срочно понадобилось перенести данные из сбойной базы, искал, нашел. Автору — респект ! Тем более, что история этой обработки заслуживает отдеьного внимания. Всем рекомендую сначала прочитать комментарии к этой обработке — много интересного почерпнёте.
мда, судя по описанию и комментариям обработка весьма полезная и функциональная. Автору большое спасибо.Будем тестить
из бух 77 в нее же вчерашнюю
Документ ‘Завершение работ’: загружено 0 элементов
Документ ‘Закрытие месяца’: загружено 0 элементов
Если СчетФактура.ДатаДок < ‘01.01.2006’ Тогда
{Документ.ЗаписиКнигиПокупок.Модуль Документа(222)}: Операции сравнения на больше-меньше допустимы только над значениями совпадающих базовых типов (число, строка, дата)
Документ не проведен! :Формирование записей книги покупок 00000001 (31.01.08)
Документ ‘Формирование записей книги покупок’: загружено 1 элементов
ИначеЕсли СчетФактура.СчетНДС = 2 Тогда
{Документ.ЗаписиКнигиПродаж.Модуль Документа(117)}: Поле агрегатного объекта не обнаружено
доброго времени суток) подскажите как пользоваться этой штукой)
(50) выгружаем документы в базе отправителе, загружаем в базе приемнике. Ничего сложного. )
извините за назойливость, но поконкретнее можно?)
(52) открываем базу из которой переносим, запускаем обработку TranrefDoc.ert На первой закладке Выгрузка галочками указываем какие документы выгружать, указываем период выгрузки и указываем файл выгрузки. Жмем Выгрузить. Дожидаемся окончания, затем и идем во вторую базу приемник. Запускаем обработку TranrefDoc.ert, переходим на 2-ю закладку Загрузка, выбираем файл загрузки и жмем кнопку Анализ, затем жмем кнопку Загрузить. Всё.
Перед всеми этими манипуляциями делаем копии баз!!!
спасибо большое))) ещё вопрос) на 8.2 бухгалтерии пойдёт?)
(54) нет конечно. Эта обработка только для 1С 7.7
А если документ уже существует в результирующей базе — он перезапишется или пропустится?
(56) пропускаются. Сопоставление идет по номеру документа.
Хорошая вещь! Несколько раз выручала! А для 8.2 аналогичной нет?
потребовалось перенести документы из Торговля и склад в аналогичную конфигурацию, универсальной обработкой почему-то не получилось, надо скачать и попробовать вашу. По результатам переноса отпишусь.
Хорошая обработка, документы выгружены , выбрал период и запустил. Потом загрузил из сформированного файла. Теперь бухгалтерии осталось провести нужные документы. Автору спасибо! Выручил.
Спасибо, очень полезная обработка, часто встречаются ситуации, когда необходимо перенести именно документы и желательно не затрагивать справочники, что не сбить периодические реквизиты, поэтому — огромное спасибо, за такую удобную обработку!
Пользуюсь подобной вещицей очень долго, даже не помню, от кого она мне досталась, но по скрин- шоту вижу, что она. Замечательная обработка и спасала не раз, в глазах окружающих творя чудеса!
Из ТиС в Бух тоже переносит?
(63) переносит документы из любой конфигурации 1С 7.7 в любую.
Только настроить надо сопоставление.
Опробую
Почему переносятся документы без наименований товара? Просто проставлен порядковый номер и цены.
(67) скорее всего у вас не сопоставлена номенклатура по КОДАМ. Поэтому обработка не может найти товар по коду.