<?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='\
Сэнкс
может у кого пожилания будут
есть пожелание )) :
работа с табличной частью документа «корректировка записей регистров».
zakzai ок попробую выложу, только как быстро это надо
{Форма.Основная(164)}: Итератор для значения не определен
Для Каждого Кол из ЭлементыФормы.ДанныеЛиста.ТекущаяСтрока цикл
Обработка очень нужная, но пишет вот такую ерунду, когда вибираешь справочник или документ в который надо загрузитью Может формат таблицы должен быть определенным?
{Форма.Основная(204)}: Индекс находится за границами массива
нСтр[0] = «Код»;
да нет вродепроверял, щас посмотрю
{Форма.Основная(455)}: Преобразование значения к типу Число не может быть выполнено
Для к = Заг+1 по Строк цикл
И что с этим делать??? Не получается ни один файл экселя загрузить 🙁
Cyberboy щас проверяю на документах, платежное поручение раскажу что как
люди еще раз проверил все работает
(4) как получится… вещь нужная, для бухов бесценная ))
Serj kuban Да заработало!!!! Однозначно плюс. Кстати я много обработка для переноса таким методом смотрел но не одна не работала так как надо.
Serj kuban
У меня такой вопрос. Если я загружаю данные из экселя в документ, то когда он не находит в справочнике номенклатуру, он просто оставляет эту строчку в документе пустым и ни куда не правильную номеклатуру не добовляет?
На 3 шаге обработки можно сортировку объектов (спр.,доки) сделать
по алфавиту…
+14 на 4 шаге сопоставление с реквизитами можно пошире и фиксировать
столбец реквизит
Извиняюсь 15 можно снять))
В в сомой обработке можно указывать постоянный реквизит?? К примеру ед.измерения или коэффициент.
Cyberboy да, люди скидуйте пожелания к вечеру начну переделывать завтра кину обновление
пытаюсь загрузить справочник контрагентов пишет слудющую ошибку {Форма.Основная(207)}: Индекс находится за границами массива
нСтр[0] = Рек;
подскажите пожалуйстаааааааааааааааааааааааааааааааааа!!!!!!!!!!!!!
Заранее спасибо
Serj kuban
Что то не могу понять тогда как их устанавливать?
как импортировать с екселя в 1С 7.7 ?
сори за оффтоп)
gamer29 мыль мыло кину обробоку
или пиши на ICQ582246552
если что пишите наhttp://infostart.ru/projects/4037/index.php?p=2&clear_cache=Y&id=4037%2F%3Fclear_cache%3DY#comm
Было бы мне кажется разумно иметь некое соответствие для автоматического заполнения пропущенных реквизитов, ну например валюта по умолчанию, единица измерения… соответсвие по типу название реквизита -> элемент.ссылка
Привет! Мне надо из Предпринимателя 7.7 перекидывать отчеты по реализации в Управление торговлей 8,0 (10.2.13.1). Загрузила эту обработку, но УТ ее не открывает, пишет= Внешняя обработка не может быть прочитана текущей версией программы= Вопрос: какая нужна версия? Вся беда в том, что я не могу обновляться, не куплен диск ИТС, а сижу на работе… Можно что-либо сделать в моем случае? В конвертации пока не разобралась…
Svetlana1, конвертируй и все получиться, если что пиши на ICQ582246552 или на itt5082@mail.ru
А для 8.0 версия есть? или как еёе прикрутить к 8.0?
(28) конвертируй и все
нСтр=тзРеквизиты.Добавить();
нСтр[0] = «Код»;
нСтр=тзРеквизиты.Добавить();
нСтр[0] = «Наименование»;
{(1)}: Индекс находится за границами массива
Хоть ты тресни, да и как оно может работать???
народ да блин индекс убири и все
есче бы в регистр сведений штрихкод подсунуть сразу,цены бы небыло
при заполнении справочника номенклатура!
Привет!
Не получается загрузить значения с типом «Перечисление ссылка» — вид операции, форма оплаты и состояние.
Подставляла уже и имя и синоним. Ни в какую.
Подскажите, плиз, в чем может быть дело?
Ой, забыла сказать, это документ «Заявка на расходование средств»
народ, подскажите как убрать этот индекс плиз
Благодарю «плюсиком» же.
Очень хорошо, переезжал из сторонней досовой базы, справочники набил и остатки забил моментально
Спасибо, помогло!
Спасибо, полезная вещь.
Спасибо, помогла ,сижу гружу и не гружусь)))
Спасибо, помогла ,сижу гружу и не гружусь)))
Здравствуйте,будет ли работать в конфигурации «Платежные документы»?
Файл обработки имеет расширение ert — для 7.7, а в описании написано для 8. Автор верни деньги!