<?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='\
В очередной раз понадобилось, а от 1С пока ничего такого нет.
Сделал свой аналог, который был для 8.1
Ах, да, забыл дописать — это первый ПЕРЕНУМЕРАТОР на управляемых формах 😀
ты как всегда впереди планеты всей ))) Так держать.
p/s Когда пиво пить пойдем под коньячок 😉
(3) Ну так мне не хватало инструментов универсальных, пришлось написать, дабы ускорить свою дальнейшую работу.
ЗЫ: предлагаю на следующей неделе. Готов в любой день, но красивее — в пятницу 🙂
По поводу пивка, пожалую в пятницу тоже полторашку возьму.
🙂
(5) Так присоединяйся 😉
(6) В душе я с вами. *DRINK* — жалко что такого смайла нет.
(1) Вообще-то от 1С такое уже есть… На диске ИТС, например.
(8) Да? Серьезно? И давно?
(9) Не, с февральского ИТС.
Но зато давно есть КонвертацияВнешнихОбработок82. 🙂
(10) Февральский я не видел. А что даст эта конвертация?
(10) Можете сюда выложить с ИТС-а обработку. Или кинуть мне в личку, очень интересно посмотреть, что сваяли 1С-овцы.
(11) Конвертация дает вполне рабочую ту же самую обработку. Правда, может быть, размером чуть больше.
С ИТС скину, только как? Через файлообменник?
Сюда выкладывать вроде как не серьезно…
(13) Да через тот жеhttp://narod.yandex.ru/disk/all/
А ссылку мне в личку. Буду благодарен.
(13) Даю ссылку на ИТС-овскую обработку с февральского диска:
(15) Спасибо, но это вообще не серьезно. Это обыкновенная, сконверченная обработка из 8.1. А я-то понадеялся…
И губы раскатал на конвертер — подумал уж, что обычные формы конвертит на управляемые…
Разговор идет именно про управляемые формы.
(16) А зачем для обработок подобного рода управляемая форма?
Я не знаю…
Но я не думаю, что эта — просто сконверченная, потому что я конвертировал — у меня получилась больше по размеру файла. Скорее всего, просто одного производителя и одного алгоритма.
Хотя, — кто ж его знает…
А ваша сделана с управляемыми формами? Я просто не смотрел. И что это дает?
Я чёт-даже не понял, как открыть внешнюю обработку в режиме управляемого приложения?
(17) >зачем для обработок подобного рода управляемая форма?
Не все же работают в 8.2 в режиме совместимости. Есть и те, кто только на управляемых формах. В скором времени все конфигурации будут только управляемые.
>А ваша сделана с управляемыми формами? Я просто не смотрел. И что это дает?
Это дает возможность использовать обработку в конфигурациях, типа Управление небольшой фирмой и Управление торговлей 11, и т.п.
(16) А зачем для обработок подобного рода управляемая форма?
Я не знаю…
Но я не думаю, что эта — просто сконверченная, потому что я конвертировал — у меня получилась больше по размеру файла. Скорее всего, просто одного производителя и одного алгоритма.
Хотя, — кто ж его знает…
А ваша сделана с управляемыми формами? Я просто не смотрел. И что это дает?
Я чёт-даже не понял, как открыть внешнюю обработку в режиме управляемого приложения?
Кстати, я и вашу обработку не могу открыть как внешнюю, а вот с диска ИТС — обычным образом открываю, через менюшку «Открыть файл». В чем проблема?
(19) >Кстати, я и вашу обработку не могу открыть как внешнюю, а вот с диска ИТС — обычным образом открываю, через менюшку «Открыть файл». В чем проблема?
Потому, что она на управляемых формах и ее открывать надо в режиме управляемого приложения или в вашем случае — тонкого или веб-клиента.
(20) А-а-а, вона как!
Симпатично.
Ну, возьму и вашу на вооружение — вдруг когда надо будет именно через тонкого клиента запустить?
(18) а при чем тут режим совместимости?
И без режима совместимости можно всегда запустить в толстом клиенте.
Например, бухия 2.0
(22) Бухия 2.0 полностью на управляемых формах? Не в режиме совместимости?
(22) Нет, она не в режиме совместимости.
Но она может окрываться и как управлемое приложение, и как обычная.
А вот Управление небольшой фирмой может окрываться только как управляемое приложение.
(24) А что тогда по Вашему «режим совместимости» ?
(25) и по-моему, и по 1С-овски это то, что написано в конфигурации — в свойствах, в графе «режим управления блокировкой данных».
(26) В конфигураторе — меню «Сервис» — «Параметры» — закладка «Общие»
…И в толстом кдиенте (обычное приложение) можно легко открыть обычным способом 1С-овскую обработку у той же Управление небольшой фирмой.
(28) вы, видимо, путаете режим совместимости и режим открытия в 1С.
Режим совместимости указан именно в конфигураторе в Свойствах, и его нельзя изменить, не разрешив предварительно изменения в конфигурации.
Смотрите в Свойствах конфигурации в самом низу — «Совместимость»
(27) у вас в голове каша.
Под совместимостью понимается именно совместимость с 8.1.
И режимов открытия гораздо больше — так, есть еще режим открытия Толстый клиент (обычное приложение). — Смотрите в Параметрах на закладке Запуск 1С Предприятия
(0) Вы правы — удобно будет иметь такую обработку, как эта ваша — сделанную под управляемое приложение. Чтобы не морочиться с запуском обычного приложения для новых программных продуктов, сделанных изначально под работу в управляемом приложении.
Я оценил.
Не нашел даты и номера в реквизитах документа в отборе, а так круто!
И думает как-то очень долго помойму. Хотя функции свои выполняет )
(33) В отборе — раскрыть «Объект», как и в 8.1.
(34) Это уже пропускная способность сервера, IIS и т.п.
+35 Ах да, забыл сказать — касперский очень не любит тонкий клиент. Душит его, как может (при включенной проверке 80-го порта)
Спасибо за обработку, на ИТС-ках ждал ждал, искал искал, а тут — БАЦ уже есть!
Спасибо большое!!! 😀 💡
Спасибо за хорошую обработку!
Правда с дисков ИТС не видел — нет под рукой. Но эта мне понравилось — все красивенько и выполняет свои функции.
Но и скажу свои замечания:
1. Открыл обработку, выбрал справочник Номенклатура (УТ-11), задал отбор, выполнил действие, закрыл обработку. Опять ее открыл — справочник остался в поле Объект поиска. Нажимаю Настройки отбора … и ничего не происходит. Пока не перевыбрал справочник.
2. Иконки типа объекта в списке Объект поиска не помешали бы — а то как-то сливается 🙁 Да и вообще выбор объекта предлагаю по удобнее сделать — сразу выбрать из группы Справочники или Документы, а в группе уже сами объекты.
3. Не совсем понятна кнопка Изменить в списке Найденные ссылки. В поле Наименование (для справочника) и Объект (для документа) показывает лупу — можно открыть карточку элемента справочника/документ, на других столбцах — ничего не делает. Так может быть тогда сразу открывать карточку элемента/документ? Или есть какие-то расширенные функции?
4. Не понял что такое «Произвольный алгоритм» — можно пример или описание?
Надеюсь мои замечания не обидят — работа действительно хорошая!
А как установить реквизит в табличной части документа? Написал вот такой код:
Для каждого Кол из Oбъект.Товары Цикл
Кол.Количество = 1;
КонецЦикла;
Объект.записать();
Но количество не устанавливается.
Не могу разобраться как пользоваться этой обработкой.
Выбираю объект поиска — Номенклатура,
Обработки-Установка реквизитов, выбираю галкой СтавкаНДС 18%, жму выполнить — пишет обработка <Установка реквизитов> завершена, обработано объектов:0
Почему не стал ничего обрабатывать?
полезная обработка
очень пригодилась!!! спасибо!!!
А возможно ли сюда включить и обработку регистров тоже?
Огромное спасибо. Вот и будет народу счестье по массовому изменению данных в документах….
Спасибо — очень помогла !!!
Спасибо, очень полезная штука
Спасибо! Помогла 🙂
Спасибо программеру-автору)
(1) Спасибо
Очень пригодилась обработка. На ИТС-е пока ничего подобного нет
регулярно пользуюсь
Скажите, а возможность регистрации в плане обмена, не собираетесь прикрутить?
Полезно также было бы иметь возможность выполнить произвольный код
Посмотрим — надо перенумеровать реализации — они связаны с сф номерами?
одно дело справочники, а вот перепроведение документов
может потянуть за собой..
ну да ладно — потестим.
а вообще надо закрыть для редактирования номер и делов, а то как зададут какой-нибудь номер..
не.. реализация не хочет…
ут11. и смысл?
Спасибо, хорошая вещь
да — пригодилась
(61) madway,
http://vk.com/club35947497 .
Похоже правда. Уже и страница в контакте
Никогда не знал его лично. Но ощущаю, как потерю. Очень жалко.
(61)(62)http://forum.infostart.ru/forum1/topic54460/
Продолжение разработкиhttp://infostart.ru/public/120464/
спасибо:)) очень выручили
Прочитала последний комментарии:(( очень жаль
Никогда не знала лично человека, но его обработки всегда выручали
Светлая память
Большое спасибо разработчику данной обработки, действия твои долгое время ещё будут служить народу.
Очень пригодилась групповая обработка, странно всё таки что на итс пока ничего подобного нет, да и впринципи с обработками под управляемое приложение дела обстоят сейчас не очень хорошо.. сама правда только недавно начала работать с управляемыми, зиуп и бухня на обычных используются.. видимо в массах ещё не так распространены управляемые
Спасибо, чтож 1С забыла про нас, на управляемых формах.
Обработка хорошая, но расстроила скорость работы. Нужно было пометить на удаление 40 000 документов, обработка показала что будет это делать 20 часов, написал простенькую свою и она пометила за 20 минут. Наверное замедление из-за индикатора.
Светлая память.
Будет ли работать на 1с предприятие Ут 11 для Беларуси?
Понравилась, но не хватает пункта в действиях — Печати документов
пригодилась ……………… плюсую!!!
Отбор по реквизитам табличной части не работает или работает плохо, пытался отобрать документы по дате в табличной части…нифига неотобрала…вывалила все. Пришлось пользоваться типовой обработкой. Большой плюс данной обработки что можно данные отобрать запросом, остальные навороты мне не особо нужны.
Кстати, автору, лично меня раздражает что при постановке в режим произвольного запроса…вываливает запрос ко всему объекту со всеми полями…который мне нафиг ненужен. Приходится делать лишнии телодвижения по очистке. Можно же написать типа «выбрать * из …» либо в отдельных случаях вообще ничего неписать.
Пригодилась…
Плюс.
попытался отобрать по наименованию элемента справочника (наименование содержит текст) — вывалил все элементы справочника
Добрый день!
А у меня обработка открывается криво — на форме только кнопки «Все действия» и «Помощь». Почему так?
Платформа 1С 8.2.19.83. Конфа самописная.
Основной режим запуска: Управляемое приложение.
Режим управления блокировкой данных: Управляемый
Режим совместимости: Версия 8.2.13
(78) Ссылка на продолжение обработки вверху.
Автора оригинала уже давно нет в живых.
Выбираю Номенклатура, далее настройки отбора. Добавляю отбор по Наименованию для печати -> содержит -> далее фрагмент текста из наименования товара. Данные товары не отбирает — отображает все. Такая же история и с фильтром по текстовому описанию. На фильтр по весу отбор сработал.