<?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. Она как раз построена с использованием БСП. Какие есть ещё конфы, не знаю.
В УТ 11 работает, в УНФ и ДО нет….
Ну извиняй, нет у меня их.
В чём выражается нерабочесть в УНФ? Там используется БСП версии 1.0.5, а я со свежаком работаю.
в Комплексной 1.1 вылетает с ошибкой
{Форма.ОсновнаяФорма.Форма(79,29)}: Переменная не определена (ДополнительныеОтчетыИОбработки)
(ВидОбработки);
ПолноеНазначениеЗначение = <<?>>ДополнительныеОтчетыИОбработки.ПолучитьПолноеНазначениеПоВидуДополнительнойВнешнейОбработки
а жаль … 🙁
(5)
Похоже на то, что обработка пока только для УТ 11 и, возможно, УНФ. Знать бы, почему в (3) не работает.
Для остальных конвертируйте в 8.2. обработку от poppy
http://infostart.ru/projects/833/
Теперь работает и в УНФ. В редакции 1.2 прикрутили механизм внешних (дополнительных) печатных форм
В ожидаемой в конце февраля — начале марта текущего года Рознице 2 (в режиме управляемого приложения) тоже работает.
Спс. Пригодилась пару раз
Спасибо
Для печати ценников пойдёт? а то в УТ 11 с печатью проблема (поля, размер — всё сбрасывает на 0)
(12) Не знаю, попробуй сам.
Загружаю пример внешней печатной формы из Документооборота, выдает сообщение ‘Возможно, обработка (отчет) устарела или не является дополнительной:, хотя эта обработка подключается нормально.
(16) И что дальше?
(17) А ничего, и тишина. Обработка не создается. Версия платформы 8.2.14.537.
(18) Ну нет у меня Документооборота. Разбирайтесь сами.
(20) Заголовок описания.
Обновление
Переработан интерфейс обработки.
[+] просмотр списка внешних печатных форм.
[+] возможность регистрации печатной формы в справочнике «Дополнительные отчеты и обработки».
[+] проверка файла при выборе на принадлежность к печатным формам.
Добавлена поддержка методов выполнения команд печати внешних печатных форм: Открытие формы, вызов клиентского метода.
Обработка адаптирована для Библиотеки стандартных подсистем последних релизов
Спасибо, очень пригодилась 🙂
А не пробовали просто открыть ВПФ в конфигураторе и в режиме отладки напечатать стандартным способом (БСП)? Эффект тот же. 😉
Решил протестить обработку на Бухгалтерия 3.0
Результат при открытии формы:
{Форма.ОсновнаяФорма.Форма(383)}: Метод объекта не обнаружен (ПолучитьПолноеНазначениеПоВидуДополнительнойВнешнейОбработки )
(ВидОбработки);
ПолноеНазначениеЗначение = ДополнительныеОтчетыИОбработки.ПолучитьПолноеНазначениеПоВидуДополнительнойВнешнейОбработки
Дальше смотреть не стал. 🙁
(29) Ну не знаю. Расширенный синтаксис-контроль ошибок не выдаёт, за исключением одного предупреждения о возможно ошибочном методе, но оно обрабатывается. При открытии ошибок тоже нет.
БП 3.0.18.9.
Подсистема дополнительных обработок в БСП уже давно кардинально не меняется.
Тестил на релиз 3.0.19.27
(31) Действительно, в БП 3.0.19.27 уже другая БСПятина. Там такого метода нет, вообще. Вот ведь гады! Was twaren sie?
Буду другую делать.
(31)
Обновление. Текущая версия 1.2.0
[+] обработка адаптирована для использования с релизами БСП линии 2.1.3
Аналитика: Документооборот выдает: «Возможно, обработка (отчет) устарела или не является дополнительной». Версия БСП 1.1.3.1. На старых версиях не работает?
(34) Тему с начала читаем. Вдумчиво. По строкам.
(35) понял. А мне все казалось, что уже видел ответ на свой вопрос, но невнимательно просмотрел и не заметил.
(36) Если хотите, за 500 рублей могу заняться вопросом. От вас демо-база документооборота. Я знаю где обработка спотыкается, но не знаю отчего.
Печатная форма может открываться как форма.
Тогда в обработке тестирования как минимум нужно сделать так:
Показать
(38) Как будто этого нет. Скачают старьё с какой-нибудь файлопомойки, потом мне втирают.
Обновление. Текущая версия 1.2.1
[+] обработка адаптирована для использования в клиент-серверных базах.
(34) По-моему, эта ошибка связана с тем, что база документооборота у вас клиент-серверная.
(39) Вы вынудили меня второй раз скачать вашу обработку, чтобы убедиться, что высказывание (38) верное.
Некрасиво поступаете.
Хотел помочь в доработке, привёл готовый код, но столкнулся с грубостью в ответ. Жалко тратить Вас своё время.
(42) Пальцы отвалились или маней жалко? Мог бы с сайта автора скачать, все мои работы там есть.
Скачал обработку, и столкнулся с такой проблемой:
База файловая. Точка останова во внешней обработки стоит, сама внешняя обработка открыта.
Дотрейсиваю до ВыполнитьСерверныйМетодОбработки в данной отладочной обработке, все хорошо. Дохожу до кода:
Становлюсь на ту строчку, где идет обращение к экспортной процедуре внешней обработки Печать() и! И почему то в эту процедуру захода нет. Вижу, что те глобальные процедуры, которые вызываются из нее — в общих модулях — трейсяться, но сама внешняя обработка вообще не открывается и по точкам остановам внутри нее — остановок нет.
Может бы Поручик, любезно порекомендовал — куда копать?
(44) Или никуда не копать или взять попробовать новый файл. Если результатов не будет, забиваем и ждём, пока я придумаю, что-нибудь другое. Забесплатно ждать можно долго.
(42) Этот готовый код устарел на год, новые версии надо скачивать
(45) да собственно, я последний файл и брал 🙂 Более того, какая-то из Вашей предыдущей версии, работала. И я даже ей пользовался. Видимо, за прошедшее время, что-то изменилось.
Ну не страшно. Я под себя вашу обработку допилил уже, все открывается. Насколько я смог по коду разобрать, у вас универсально и под файловую и под клиент-серверную базу. Я просто под файловую жестко допилил, все заработало.
В любом случае, за ваш труд спасибо!
(47) С универсальностью облажался. На клиент-серверной такая же ерунда. Если кто-то что-то предложит вменяемое, дам пряник.
Вернул всё назад.
Для отладки в клиент-серверном варианте следует использовать папку, доступную для учетной записи пользователя сервера 1С:Предприятия.
Исправлена незамеченная ошибка. Странно, что никто не сообщил.Всем, как всегда, всё равно .
Исправлена отладка печатных формы с методом использования «ОткрытиеФормы». Не передавались ссылки на объект для печати и ссылка на печатную форму в ИБ.
Спасибо! Работает. очень пригодилась.
(59) Сурово.:)))
Честно говоря, раньше мучился с этими доп. печатными формами и ее отладками. А оказывается одним кликом мыши это все легко решается.:)))
Спасибо, помогла. Порядок использования действительно важен)
Пользовался подобной обработкой для обычных форм, поэтому очень рад, что нашел такую для управляемых, автору большое спасибо за труд.
Обновление. Текущая версия 1.2.6
[+] исправление некоторых ошибок при работе с БСП 2.1.3 и выше
Подскажите последняя версия работает?
А блин читаю не внимательно ветку. Прошу прощения! Спасибо автору за прекрасную обработку! Очень нужна!
(74) Если нужна, купите у меня маней и скачайте.
(75) Как купить? Какие цены?
(76) Сто рублей на телефон и дам вам 10 маней. Скачаете сами, что хотите.
(77) как с вами связаться?
(78) Через личные сообщения
Пробовал обработку на конфигурации УНФ.
Печать в шаблон Microsoft Word не отлаживает…
Пробовал и так и сяк.
(80) 500 рублей и займусь вашей проблемой. У меня быстро всё отладит.
подскажите что означает «Отладка печати в этой папке не доступна. Используйте папку, доступную для учетной записи пользователя сервера 1С:Предприятия.» как определить требуемую учетную запись сервера?
это учетная запись от имени которой запущена служба ragent?
(82) Посмотреть параметры работы сервера 1С, от какого пользователя он работает. Как правило, это локальная учетная запись USER1CV82 или что-то типа того.
(83) или служба ragent.
Можно отладить:
1. Открыть внешнюю печатную форму (обработку, отчет и т.д.) в режиме конфигуратора
2. Добавить в начало модуля внешней печатной формы (обработка, отчет и т.д.) какую-либо стандартную процедуру или функцию из общего модуля. Например, ОбщегоНазначения.ПустаяДата().
3. Поставить точку останова на эту процедуру или функцию из общего модуля
4. В итоге «про шагая» стандартную процедуру (функцию) вы попадете в свой внешний отчет (обработку, печатную форму).
А можно в СсылкаНаОбъект сделать множественный выбор.
Ведь уравляемых формах можно печатать несколько объектов из списка.
Я думаю, что это было бы полезно.
(90) Наверное, можно. Будет стоить 500 рублей.
Отлично работает. Спасибо автору. И вопрос (может, не совсем в теме): как сделать, чтобы внешние печатные формы появлялись сразу после нажатия кнопки Печать вместе со штатными (сейчас после нажатия Печать нужно выбирать Дополнительные печатные формы…, потом нужную, потом Выполнить) ? Платформа 8.2.19.76, УТ 11.1.2.19 — если это имеет значение.
(92) В УТ 11.1 вашего релиза только если обновить БСП последнего на сегодняшний день релиза. То, что вы хотите, есть в БП 3.0.
(94) Потому что файл надо скачивать отсюда и читать описание.
Спасибо большое, очень полезная обработка, одна из немногих, в которой ничего не надо допиливать после того, как скачала. Большой плюс!
Пригодилась. Полезная штука.
Плюс за качественную обработку
(89) forever-lilya, платформа 8.3.4.389 — не помог ваш способ. Отладка пропускает код самой обработки, позволяя видеть только функции конфы.
(89) Пробовал и на платформе 8.2.16 и 8.3.4, в модуль обработки так и не зашло, отладка стопорится на конце функции общего модуля.
Версия 1.2.7.
[+] исправлены некоторые моменты для последних версий БСП и платформы 8.3
Спасибо автору! Отличная обработка. Эконимит много времени и нервов!
Пробую на БП 3.0
Платформа 8.3.4.365, в модуль формы попадаю, в модуль самой обработки не заходит, так и должно быть?
Подскажите, что со своей стороны можно сделать, чтобы исправить?
(103) Не знаю. Всё описано на странице.
Спасибо большое очень пригодилась обработка!
УТ 11.1.6.17, платформа 8.3.5.924 не работает.
(106) И в чём выражается нерабочесть?
(106) 8.3.5.924 платформа тестовая, так что ваши проблемы.
УТ 11.1 (8.3.4.482) не работает, не заходит в модуль обаботки на точках останова
(109) Выкиньте её, если читать не умеете.
объясните ???
так может она вообще не рабочая, зачем тогда людям стартмани тратить на вашу обработку …
а для внешнего отчета будет работать?
(109) lok78, если не заходит в модуль обработки на точках останова, попробуйте перезапустить конфигуратор.
(89) forever-lilya, это было возможно на обычных формах, на управляемых такое не прокатит
При выборе файла внешней печатной формы возникает ошибка:
{(1)}: Метод объекта не обнаружен (НазначаемыеОбъектыМетаданныхПоВидуВнешнегоОбъекта)
ДополнительныеОтчетыИОбработки.НазначаемыеОбъектыМетаданныхПоВидуВнешнегоОбъекта(ВидОбработки)
Конфигурация: Зарплата и кадры государственного учреждения, редакция 3.0 (3.0.24.144)
(172) Ничего не скажу. Похоже, в ЗиК для государственного учреждения какая-то своя БСП, если она там вообще присутствует.
Все конфы для гос. учреждений отдельная песня.
За обработку спасибо, но она перестала работать в УТ:
При выборе файла внешней печатной формы возникает ошибка:
{(1)}: Метод объекта не обнаружен (НазначаемыеОбъектыМетаданныхПоВидуВнешнегоОбъекта)
ДополнительныеОтчетыИОбработки.НазначаемыеОбъектыМетаданныхПоВидуВнешнегоОбъекта(ВидОбработки)
Конфигурация: Управление торговлей, редакция 11.2 (11.2.3.95)
(185) Так скачайте текущую версию.
Конфигурация УТ 11.3.4.124
При открытии выдается ошибка:
{(1)}: Метод объекта не обнаружен (НазначаемыеОбъектыМетаданныхПоВидуВнешнегоОбъекта)
ДополнительныеОтчетыИОбработки.НазначаемыеОбъектыМетаданныхПоВидуВнешнегоОбъекта(ВидОбработки)
Этой функции (процедуры) я вообще нигде не нашел 🙁
При выборе файла внешней печатной формы возникает ошибка:
{(1)}: Метод объекта не обнаружен (НазначаемыеОбъектыМетаданныхПоВидуВнешнегоОбъекта)
ДополнительныеОтчетыИОбработки.НазначаемыеОбъектыМетаданныхПоВидуВнешнегоОбъекта(ВидОбработки)
Зарплата и управление персоналом, редакция 3.1 (3.1.8.216)
(245) Не буду спорить. Какая там БСП? Я ЗУП ни разу в глаза не видел.