<?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) Закрой базу, открой конфигуратор. Там какой-то глюк платформенный, у меня тоже иногда не останавливается. И проверь, запускается ли у тебя 1С Предприятия в режиме отладки из конфигуратора.
(2) Да нет всё нормально, если где то в общем модуле ошибка можно остановиться посмотреть, а текст самой обработки не отлаживается.
(3) Тогда не знаю, сам разбирайся, как хочешь. Это обработкуhttp://infostart.ru/public/141777/ я с помощью неё отлаживал.
(3) Очистите кэш базы, и попробуйте запустите базу под админской учёткой пользователя операционной системы. Там действительно глюк или фича платформы, потому что обработка котороую отлаживаете помещается во временное хранилище. Наверное с этим связано.
(5)(3) Под ограниченной системной учёткой отладка тоже происходит.
Обработка адаптирована для Библиотеки стандартных подсистем последних релизов
Недавно столкнулся с отладкой кода внешней обработки печати в УТ11. Подобной обработки под рукой не было. Что я сделал:
1. Вставил в то место, где надо было посмотреть код в отладчике, заведомо ошибочную конструкцию, которую проглатывает синтаксический помощник.
2. Загрузил эту обработку через Администрирование обработок. Запустил. Получил ошибку.
3. Вошел по ссылка в режиме Конфигуратор и увидел название временного файла во временном каталоге пользователя.
4. Поставил в этом месте точку останова и вновь запустил обработку.
5. Отладчик послушно остановился в указанном месте, а у меня появилась возможность посмотреть результаты запроса и другие места в обработке.
6. Дальше всё просто…Скопировал из временной обработки то, что нужно в рабочую обработку и скорректировал код.
При этом есть возможность открыть обработку из конфигуратора во временной папке с ней работать.
При повторных запусках платформа продолжает работать с этим временным файлом.
…
Моё сообщение как еще один вариант отладки.
Ошибка при вызове серверного метода.
Вы запускаете обработку вызовом:
Но если посмотреть общий модуль БСП ДополнительныеОтчетыИОбработки.ВыполнитьОбработкуНепосредственно, то увидите в ней проверку: Если структура сведений о внешней обработке содержит параметр «ВерсияБСП», то все вызовы дополняются еще 1 параметром ПараметрыВыполненияКоманды:
Показать
Рекомендую добавить аналогичный код в вашей обработке
(9) Завтра учту.
Добавлен учет версии БСП и параметр выполнения команды.
Обновление. Текущая версия 1.1.0
[+] обработка адаптирована для использования с релизами БСП линии 2.1.3
Обновление. Текущая версия 1.1.1
[+] обработка адаптирована для использования в клиент-серверных базах.
Вернул всё назад.
Для отладки в клиент-серверном варианте следует использовать папку, доступную для учетной записи пользователя сервера 1С:Предприятия.
Обновления нет. Отредактировано описание.
очень помогла обработочка)) спасибо большое))
Исправлена незамеченная ошибка. Тоже никто не сообщил. Всем
…, как всегда, всё равно.(17)
Спасибо, так гораздо лучше!
Большое спасибо автору за обработку, только начинаю УФ делать и без нее с отладкой беда.
Здраствуйте подскажите что делаю не так….скачал вашу обработку по отладке внешних обработок на заполнения. открываю 1с конф + режим отладки, там через открыть открываю вашу обработку, в ней выбираю свою, команду и документ выполняю а он не заходит в точки останова хотя результат по ним выводит. комнаду выполняю на клиенте, да и вобще 1с-ка целиком открыта на сервере
(20) Не знаю, что вы там делаете. 500 рублей и займусь вашей проблемой.
берем обработку из ДЕМО БСП
_ДемоДополнительнаяОбработкаСозданияСвязанныхОбъектовНазнача емая.epf
меняем в ней Справочник._ДемоКонтрагенты на Справочник.Контрагенты
запускаем
выбираем команду «Создать копию и заполнить наименование (открытие формы)…»
выбираем любой элемент справочника
выполняем
ловим ошибку
{Форма.Форма.Форма(15)}: Поле объекта не обнаружено (ИмяФормы)
ИмяФормыВладельца = Параметры.ИмяФормы;
не робит обработка даже с примерами из БСП
(23) не понимаю чего ноешь ты.
Ты или заяви, что хочешь денег за скачивание, прислушивайся к жалобам или удаляй публикацию нафиг.
(24) У тебя не спросил.
Обновление. Текущая версия 1.1.4
[+] исправление некоторых ошибок при работе с БСП 2.1.3 и выше
Как «проголосовать за», в новом оформлении не нашла, говорю «Спасибо» так.
Не работает. Не останавливается в точке останова…
(29) Печально. Вкурись в описание, может дойдёт. Если не получится, выбрось её.
Вот по тому ты и поручик.. не быть тебе генералом 🙂
пробую заполнять табличную часть, строго по инструкции не получилось 🙂
думаю нужно добавить пункт перед «выполнить» — открыть форму документа на котором тестируем обработку
+++
Разобрался, это у меня обработка такая досталась, которая определяет обрабатываемый документ через открытые окна и если такого окна нет, то и обрабатывать ей нечего…
А на точке останова не останавливается никак 🙁
http://infostart.ru/public/238394/
тестирую вот эту обработку
там две формы, вторая предназначена для визуальных настроек, вот в ней не срабатывает точка останова
(33) С той обработкой только за деньги займусь.
(34) если деньги разумные, то можем обсудить
на самом деле точка останова не срабатывает ещё безо всяких заморочек той формы, т.е. при открытии формы тоже не срабатывает
работаю в БП 3.0 на платформе 8.3.4.389
(35) Прежде чем обсуждать финансовый вопрос, почитать очень внимательно описание тоже не помогло?
Класс =) Спасибо)
Не останавливается при отладке, хоть что делай. Тестировал на стандартной БСПшной обработке _ДемоДополнительнаяОбработкаЗаполненияНазначаемая.
P.S. Протестировал еще одну свою, остановился…
Почему то отладка работает только если установить в «ПараметрыРегистрации» внешней обработки БезопасныйРежим = Истина.
(47) Ну я как-то не задумывался. Нет у меня таких обработок.
Обновление. Текущая версия 1.1.8
[+] добавлена отладка обработок с методом «Заполнение формы» («ЗаполнениеФормы») без записи объекта.
В вашей обработке проблемы с модальностью. Планируете рефакторинг?
(50) Если не лень будет.
(22) Brawler, вероятно забыл обновить справочник идентификаторов объектов конфигурации.
Я использую другой подход к отладке внешних обработок БСП…
http://www.obrabotki.com/otladka-bsp-1s/
Поручик, добрый день. Есть вопрос, почему нельзя подключиться ни к одной из ваших обработок с методом ДополнительныйОтчет или ДополнительнаяОбработка? Как их отладить?
Подписка.
(54) (146) Обычно, в конфигураторе отладчиком.
Сделал по инструкции, не работает. Ошибок не выдает, обработку выполняет частично. Отлаживал обработку заполнения табличной части документов.
Файловый режим.
Платформа: 8.3.6.1977
Конфа: ут 11.1.9.66
Не работает (отладчик в точках останова не останавливается) на УНФ 1.5 и обработке заполнения объекта, подключаемой не в безопасном режиме.
БП 3.0.41.57
Платформа 8.3.6.2299
Версия обработки 1.2.0
{(1)}: Метод объекта не обнаружен (НовыйРезультатВыполнения)
СтандартныеПодсистемыКлиентСервер.НовыйРезультатВыполнения()
(59) Залил новый файл. Попробуй.
(58) Cyberhawk, см. (47)
(59) MaxS,
Здравствуйте. А модальностью так и не занимались?
(63) Не помню. Что-то сделал.
Полезная обработка
Отличная обработка! Выручила. Лайк поручику!
Спасибо за обработку! Использую в работе
И снова 1С подосрало…
В ЗУП 3.1 с БСП 2.3.3
такая бяка вылезла
{(1)}: Метод объекта не обнаружен (НовыйРезультатВыполнения)
СтандартныеПодсистемыКлиентСервер.НовыйРезультатВыполнения()
Тонны обработок по всей стране придется людям переделывать…
(70) Если вы про мою обработку, то исправлено ещё в сентябре прошлого года.
хорошая обработка, в отладку попадает, спасибо
небольшой минус, если открывается дополнительная форма из внешней обработки, то данные ЭтаФорма.ВладелецФормы не коректны, хотя может у меня обработка так написана
в БП 3.0.44 похоже надо переписывать, СтандартныеПодсистемыКлиентСервер.НовыйРезультатВыполнения() — эта функция всё.
(73) ты файл где скачал?
(74) Вижу, что уже исправлено. Спасибо!
Не работает((( Уже озвученная выше проблема появляется:
{(1)}: Метод объекта не обнаружен (НовыйРезультатВыполнения)
СтандартныеПодсистемыКлиентСервер.НовыйРезультатВыполнения()
Идея обработки очень классная, помогает сэкономить кучу времени.
Версия БСП 2.3.3.77
Версия обработки 2.1.5. скачивал отсюда 24.10.2016
(76) Исправил. Там надо было в двух местах, а я второе пропустил.
{(1)}: Метод объекта не обнаружен (НазначаемыеОбъектыМетаданныхПоВидуВнешнегоОбъекта)
ДополнительныеОтчетыИОбработки
.НазначаемыеОбъектыМетаданныхПоВидуВнешнегоОбъекта(ВидОбработки)
ЗУП 3.1.2.183
(78) Будет время, исправлю. Вы бы ещё версию БСП в ЗУПе 3.1.2 сказали, чтобы мне не шарить по юзерсу лишний раз.
(78)
Не знаю, что там в ЗУПе, но в БП 3.0 последних релизов версия БСП 2.3.5., то есть за полгода почти ничего не поменялось в подсистеме дополнительных обработок.
тоже не работает в БП 3.0.44.204
{(1)}: Метод объекта не обнаружен (НазначаемыеОбъектыМетаданныхПоВидуВнешнегоОбъекта)
ДополнительныеОтчетыИОбработки.НазначаемыеОбъектыМетаданныхПоВидуВнешнегоОбъекта(ВидОбработки)
Удивительно. Проверю на неделе.
(81) А посидеть, ошибку поискать, не пробовали? Поправил немного код и все работает на ура, автору спасибо
А будет она работать в БГУ 2.0.54.31 с БСП 2.4.5.80?
(84) Не знаю. Я же не многостаночник.
(85)Тогда по другому, с такой версией БСП будет работать?
(86) По-крайней мере с той, которая была на 20.06.17. Я ею нечасто пользуюсь
(87) Ясно, спасибо
(88) Вроде работает.
Бухгалтерия государственного учреждения, редакция 2.0 (2.0.54.32)
По крайней мере, при открытии ошибок не выдаёт. Я пользовался СозданиеСвязанныхДокументовУниверсальнаяУФ.epf
(89) у меня при отладке ругается
{ВнешняяОбработка.ЗаполнениеТаблицыРаспределенияНДС.Форма.Форма.Форма(27)}: Значение не является значением объектного типа (Объект)
ВладелецФормыОбъект = ВладелецФормы.Объект;
это какой-то нюанс обработки проверки?
(90) аналогичная проблема.
тестирую внешнюю обработку вида ЗаполнениеОбъекта с типом команды ВызовКлиентскогоМетода, обработчик команды размещен в модуле формы внешней обработки:
при попытке отладить внешнюю обработку выдает ошибку:
«{ВнешняяОбработка.ЗаказКлиентаРазбить.Форма.Форма.Форма(25)}: Значение не является значением объектного типа (Объект) ДанныеФормы = ВладелецФормы.Объект; »
в общем, предложенная автором обработка для отладки внешних обработок не может вычислить выражение «ВладелецФормы»
1С:Предприятие 8.3 (8.3.12.1529)
Управление торговлей, редакция 11 (11.4.5.71)
Значит, что-то поменялось в БСП.
(91) Посмотрите в отладчике, какой-тип у ВладелецФормы. У меня нет релизов УТ 11.4.
(91), (92), (93)
В общем, я нашел способ как через вашу обработку отладки достучаться к владельцу формы моей тестируемой обработки (то есть к форме документа, к которому привязана обработка заполнения, в моем случае — к документу ЗаказКлиента).
Вместо выражения «ВладелецФормы» в коде модуля формы своей обработки временно использую такую конструкцию:
При этом документ, на котором тестируется обработка заполнения (в моем случае — заказа клиента), лучше открыть, чтобы видеть текущие изменения с ним в процессе отладки.
После завершения отладки можно в код внешней обработки заполнения документа снова вернуть выражение ВладелецФормы для обращения к форме документа из внешней обработки.
Как-то так.
Если сделать поправки dklp (94) отладка работает.