<?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='\
Будет ли работать на Ут11?
(1) alexandr851c, под управляемые формы пока не сделал. Ждите через пару дней. Единственный вариант — запустить программу как обычное приложение. Тогда обработка функционировать будет.
Спасибо
https://w1c.ru/epf-1.html
Как раз то что мне нужно в данный момент
.
Хорошо бы «прилепить» эту обработку как плугинчик к
(3) CheBurator, Согласен, было бы неплохо. Как-нибудь займусь )
Скачал обработку.
Вроде работает, но очень не хватает групповых операций над выбранными строками.
Например как удалить выбранные строки из регистра? Сейчас приходится мышкой во все записи тыркать в колонку удален.
А что если таких записей 100/1 000/10 000?
Тоже самое и с значениями реквизитов, надо бы сделать групповое изменение на один выбранный реквизит, аналогично стандартной «Групповая обработка справочников и документов»
(5) gfoods, Согласен, просто к сожалению все руки не доходят. Ближайшем будущем обязательно сделаю. Может в течении недели
(6)
С удовольствием скачаем обновление, если появится!
Здравствуйте.
А в групповом изменении нельзя добавить что-то вроде заменить значение одного поля значением другого поля? Например во всех записях заменить СуммаУпр на Сумма.
(8) AntonB, Как то не было необходимости. Сделать конечно можно, правда не знаю есть ли смысл. Если вы программировать умеете — можете сами доделать. Если нет — будет время — сделаю.
Неделя затянулась на 2 года. Групповая обработка — так и не сделана.
В УТ 11.3 не работает ваша обработка Изменение записей регистров сведений и накопления 8.2-8.3 (УФ).
Невозможно подключить дополнительную обработку из файла.
Возможно, она не подходит для этой версии программы.
Метод объекта не обнаружен (СведенияОВнешнейОбработке)
(11) Она не подключаемая. Просто через файл-открыть открываете и все.
Если программа ругается на открытие — значит вам для пользователя нужно назначить профиль «Открытие внешних отчетов и обработок»
(12) спасибо, уже разобрался.
Все еще ждем и надеемся на групповое изменение реквизитов, биг дата эра наступила!!!
(14) Дождались )
на УФ некорректно работает.
тестировал на «Рознице» 2.2.5
регистр Штрих-коды
мне нужно исправить записи, у которых измерение Упаковка заполнено.
отбираю. отбор сработал правильно.
устанавливаю Упаковка в пустую ссылку. выполняю. на экране — всё так, как надо.
нажимаю записать и… получаю дубль записи: заполнена и не заполнена Упаковка.
а это, мягко говоря, совсем не, что я ожидал 🙂
не охота было разбирать код.
обработку Поручика . без проблем сделал то, что нужно
скачал
(16) Надо посмотреть. Может где то ошибся. Упор был сделан на регистры, подчиненные регистраторам. Перепроверю механизм. Спасибо за информацию, и прошу прощения за потраченный стартмани )
Как решение удалить записи, которые не удалились,через эту же обработку. Хотя это не решение, а так — латание дыр.
(17) эта обработка Поручика может делать групповое изменение реквизитов Регистров сведений для 8.3.10?
(19) да, конечно.
(20) спасибо!
(19) и ЭТА обработка может сделать групповое изменение. Косяк был но он давно исправлен
(22) понятно! Спасибо!
Не получилось с помощью обработки добавить новые записи в регистр сведений. Это возможно?
(24) В дополнение: Отмеченные записи не сохраняются в регистре.
(25) Сергей, проверю.
Должно работать. Чуть позже отпишусь.
(20) А у меня что-то вообще не получилось добраться до Регистров сведений в УТ 10.3…
Этот режим доступен только на управляемых формах?
Правильно ли я понял, что функционал обработки за 2 стартмани точно такой же, как за 1 см для 8.2?
А отличие только в том, что она работает на УФ?
(28) Все верно
(29) Пытаюсь открыть обработку «Изменение записей регистров сведений и накопления 8.2-8.3 (УФ)» под 1С 8.3 УПП 1.3 — не открывается. Формы управляемые. Мне нужно под 8.2. Можете прислать? Под 8.2-8.3 не нужно. Зря скачал.
(30) все, ок. автор помог)
Добрый день!
Правильно ли я понимаю, что если в подчиненный регистр (например, сведения об алкогольной продукции для справочника номенклатура) не добавлена запись, то обработка добавить запись не сможет?
(32) Можно руками добавить запись в любой регистр. Просто в случае с подчиненными нужно еще и регистратор указать.
Руками то можно, но обработка этого не делает, например для выбранной группы номенклатуры?
(34) Чтобы автоматически создались записи с различными номенклатурами из определенной группы? Не, так получиться )
Вообще идея конечно хорошая… Возьму на заметку для следующего апгрейда. А пока только ручками…
Вопрос с созданием новых записей решила стандартной загрузкой данных из табл документа.
Добрый день, скачала обработку для управляемых форм, запустила изменение РС (изменяю головную организацию) и смотрю в журнал регистраций, почему-то там изменяется не только выбранный регистр, но и попутно куча других, вопрос зачем? например 8000 записей выбранного регистра обрабатывается около часа, т.к. идут какие-то изменения и в других регистрах.
(37) Обработка меняет только указанный регистр.
Такое возможно если при записи регистра срабатывает еще какое то событие. Но это уже в модуле набора записей вашего регистра прописывается.
Какая конфигурация, какой регистр?
(38) ЗУП КОРП 3.1 РС например ПлановыеНачисления
И еще выбираю РС ДанныеОВремениДляРасчетаСреднегоФСС, отбор делаю по Головной Организации и по Регистратору, нажима отобрать — думает около часа все равно выдает все записи.
респект автору и уважуха. В копилку!
Добрый день!
В ERP не работает отбор по Организации в регистре ЗаданияКРаспределениюРасчетовСПоставщиками
В регистре есть записи с не заполненными полями Организация
В отборе ставлю Организация Равно (значение не заполнено)
Отбор дает все записи, выбираю по другой организации — тоже самое .
Что делаю не так?
Супер!
(42) Добрый день. Сложно сказать. Пока не могу проверить.
Автору большое спасибо!
Хотел поменять значение измерения регистра. Процедура завершилась ошибками, в следствие которых 408 записей удалены. Ошибки заскринил
(46) Явно проблема в конкретном регистре. Предполагаю что у вас там какие то процедуры в наборах записей.
Что за конфа? что за регистр? Типовой или самописный?
УТ 11.4.6.188
Регистр сведений: ИсточникиПервичногоИнтереса
Такое чувство, что отбор вообще не работает. Вывел чуть ли не все записи.
(48) Проверю
(49) Добрый день Григорий.
очень нужна эта обработка для УФ. для изменения регистров сведений — штрихкоды. надо поменять тип штрих кода на 10 тысячах объектах в базе.
Отсюда скачать за стартмани не представляется возможным.
Помогите пожалуйста. моя почта r0xx0@mail.ru
могу скинуть денег на яндекс или еще куда.
Заранее благодарен.
Жду ответа
(50)
(49)
Спасибо огромное. нашел в интернете.
(0)
Скачал для «версии 8.2».
Нет УФ.
Что делать?
(30) А давайте поменяемся?
Я скачал якобы «8.2», но по факту там обычные формы.
(52)на почту напишите r0xx0@mail.ru
напишите на почту, если не сложно ri2werst@gmail.com
Здравствуйте Григорий.
очень нужна эта обработка для обычных форм (8.2). для изменения регистров накоплений. Скачать за стартмани не представляется возможным.
Помогите пожалуйста. моя почта zhilenko@inbox.ru. напишите реквизиты у сумму куда перевести оплату за обработку. Заранее спасибо.
Просьба к автору скинуть обработку для УФ на trein58@mail.ru. Оплачу 4 стартмани любым удобным способом. Спасибо.