<?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='\
Вставлю свои пять копеек:http://www.1c-pro.ru/index.php?showtopic=26882
Не могу понять из примеров, как подключить дополнительный отчет или отчет прикрепляемый к объектам. В дополнительные отчеты и обработки загружаются, но вызвать ниоткуда невозможно. Непонятно, Спилберг!
Проверил на конфигурации Управление небольшой фирмой — работает,
надо на Документооборот 1.0.8 — НЕ получается.
Дополнительный отчет 8.2 — Указать разделы командного интерфейса — нет разделов.
Внешний Отчет 8.2 — Назначение обработки — не цепляется ни справочникам, ни к документам.
Внешние печатные формы работают,
МассивНазначений.Добавить(«Справочник.ВнутренниеДокументы»);
РегистрационныеДанные.Вставить(«Назначение», МассивНазначений);
проходит нормально.
1С:Предприятие 8.2 (8.2.12.96)
Управление торговлей, редакция 11.0 (11.0.5.4)
СЛОМАЛ всю голову вид: ДополнительнаяОбработка
«запускаю по расписанию»
не хочет выполнять процедуру «ВыполнитьКоманду», точнее ни чего не делает только в конце вываливается по ошибке :
{ОбщийМодуль.ДополнительныеОтчетыИОбработки.Модуль(369)}: Значение не является значением объектного типа (Метаданные)
ЗаписьЖурналаРегистрации(НСтр(«ru = ‘Дополнительные отчеты и обработки'»),
осталась одна надежда на Вас
Подскажите, пожалуйста, что делаю не так, всю голову сломала: нужно поменять печатную форму для ТТН в УНФ
создала внешний отчет (.erf) с видом «Отчет», и вызовом клиентского метода
нужно из модуля формы открыть форму отчета и передать значение реквизита Документ
делаю так:
&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт
Если ИдентификаторКоманды = «1» Тогда
ФормаОбработки = ПолучитьФорму(«ВнешнийОтчет.ПечатьТТН.Форма.Форма», Новый Структура(«Документ», ОбъектыНазначенияМассив[0]));
ПараметрыПечати = ОткрытьФормуМодально(ФормаОбработки);
КонецЕсли;
КонецПроцедуры
в модуле формы отчета есть процедура
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Объект.Документ = Параметры.Документ;
КонецПроцедуры
Но при создании формы ошибка:
Форма.Форма.Форма(32)}: Поле объекта не обнаружено (Документ)
Объект.Документ = Параметры.Документ;
в структуру Параметры ничего не передается судя по всему, хотя при создании формы я передаю ссылку на документ
в чем моя ошибка?
почему-то не передается структура параметров в открываемую форму
Проверить, открывается ли отчет как внешний отчет, т.е. «Файл-Открыть-…». Если нет, значит в параметрах или в реквизитах отчета действительно не хватает объекта «Документ». Потому что при таком коде
«ФормаОбработки = ПолучитьФорму(«ВнешнийОтчет.ПечатьТТН.Форма.Форма», Новый Структура(«Документ», ОбъектыНазначенияМассив[0]));
ПараметрыПечати = ОткрытьФормуМодально(ФормаОбработки);»
если все объекты существуют, форма должна открыться.
Здравствуйте!
Не могли бы Вы выложить обработки на внешний ресурс.
К сожаление не могу скачать с инфостарта.
У меня при попытке установить файл ZagruzkaSpav_82.epf выдается ошибка:
Возможно, обработка (отчет) устарела или не является дополнительной:Метод объекта не обнаружен (СведенияОВнешнейОбработке)
программа УНФ Управление небольшой фирмой, редакция 1.3 (1.3.1.4)
Спасибо, нашел то что нужно.
спасибо! пригодилась. Пока еще не привычно писать такие обработки после 8.1
спасибо, тоже помогло.
То ли в УТ11 косяк, то ли лыжи не едут, но ДополнительныйОтчет не работает — вернее не виден ни для кого.
Люди, человеки, хелпните мне по доброте душевной)
1С 8.2 УТ (баз) 10.3
Пытаюсь прикрутить к документу (ну, допустим, к Заказу Покупателей) кнопку Внешней обработки (не печатной). Делаю все по статье (даже по «пяти копейкам» из первого поста сверялась), а в результате в документе не появляется ничего нового нигде (а может, не там ищу… но вроде б во все уголки заглянула, даже туда, где априори быть не должно)
Спасибо
PS файл скачать не могу (мелко плаваю), может быть там есть какая-то подсказка, пользовалась только статьей.
(14) Это для Управляемых приложений, т.е. для УТ 11.
Спасибо за ясность (пусть даже и псисимистическую))
PS посмотрела, что за зверь такой — пишут, что переход с базовой не планируется даже((
За пояснение спасибо.
Только начал внедрение Розницы 2.0.
Захотел добавить внешнюю обработку, да не тут-то вышло …
Еще раз спасибо надеюсь поможет.
Спасибо
Огромное спасибо, воспользовалась для создания веншних обработок для заполнения табличных частей. Помогло! У 1С не так много где описано, как создавать свои — и для примера ничего не проводят
Спасибо! помогло разобраться!
Сейчас скачаю посмотрю, что это за зверь. 1с-цы как то перемудрили с внешними формами, в этои плане 8.1 проще, возможно если бы была более подробная информация, что, где и как делать, возможно было бы проще. А так полезную информацию днем с огнем не найти 🙁
Пытался на основе примера «Печатная форма 8.2.epf» вывести печ.форму c помощью макета, но никак не принимается команда ПолучитьМакет(). Пишет: Метод объекта не обнаружен. Хотя в описании языка стоит такой метод у внешнего отчета. У кого нибудь есть отчет с использованием метода ПолучитьМакет()?
Автор, а что не так с внешними обработками и отчетами в 8.2? судя по скринам — реализован функционал подключения в 8.1.
И понравился список в Заказах — это на ДС сделано? что там за раскраска доков?
да, еще случайно теперь узнал благодаря файлу автора, что формат docx — это на самом деле зазипованный набор xml-файлов и каких-то шаблонов…
вот оно как, однако… ))
Имею 1С 8.2 конфигурация Управление торговлей. Есть необходимость использовать внешнюю обработку в формате .epf. Не могу понять, как это осуществить… Ранее работал с 1С 7.7 — там все было просто. Может быть и здесь все просто, но пока чего-то не улавливаю. Если можно — поясните…
Полезная статья, автору респект!
просто и всерьез
Надо было срочно вставить обработку в конфу с этой статьей за 5 мин. написал=)
Ищу внешние печатные формы заказа поставщику, внутреннего заказа с ВЕСОМ товара для УТ 10.3
Очень надо знать общий тоннаж заказа, чтобы заказывать транспорт
Здравствуйте.
Конфа УТ11.0 (11.0.7.8)
В общем из типовой конфигурации сохранил как внешний отчет «Отчет Прайс-Лист», внес некоторые изменения, работает через «Файл — Открыть …»
Почитал Вашу публикацию и добавил Экспортную Функцию «СведенияОВнешнейОбработке()» в модуль объекта, все хорошо, как Внешний отчет я её прицепляю, указываю в каких разделах должна появиться, НО НЕ ПОЯВЛЯЕТСЯ.
Ну то есть на нужном (как и на любом другом, если для всех интерфейсов разрешить) щелкаем «Дополнительные отчеты» и пишет что вообще нет дополнительных отчетов для данного раздела.
кто сталкивался, подскажите.
Решилось обновлением до последнего релиза
Сейчас 11.0 (11.0.7.19)
Сдесь же на инфостарте нашел, мол связано было с тем что настройка не записывались в регистр «Пользовательские настройки доступа к Обработкам»
сейчас все пишется, проверил.
Нужна внешняя обработка «Групповая обработка справочников и документов». Взял с Бухгалтерии. Пытался подцепить к УТ 11.0.6.7. Упорно выдает ошибку: Метод объекта не обнаружен (ВыполнитьКоманду) ВнешняяОбработка.ВыполнитьКоманду(ИдентификаторКоманды). Может ваши примеры помогут или прояснят…
(50) sirm,
Что-то никак… Туплю наверное…
У меня есть внешняя обработка с формой. Нужно, что бы она вызывалась. Как сделать не пойму.
Вроде все проставил как в примере… Что-то так и не догнал.
Сейчас скачаю и заценю))
Спасибо
А кто ни будь знает случайно как подключить дополнительный отчет со всеми его вариантами? в УТ 11. И как разместить его на страничке отчетов, а не через Дополнительные отчеты?
!!!Вопрос!!!
Надо запустить обработку по расписанию.
Пишет
«Команда используется только на клиенте.
Регламентное задание можно настраивать только для команд выполняемых в серверном контексте»
У меня обработка? которая делает обмен с Базой данных SQL, все процедуры выполняются &НаКлиенте
Объясните пожалуйста что делать!
Разобрался, спасибо
Спасибо за статью и примеры.
Вопрос: они все теперь будут открываться через меню «Дополнительные печатные формы». никак нельзя настроить что бы как в обычном приложении, формы добавлялись в меню каждая отдельной строчкой?
У меня старый релиз УТ11, добавил в регистр «Пользовательские настройки доступа к Обработкам» вручную — заработало.
спасибо за работу=)
Хоть какая то информация, а где можно более полно почитать? Здесь как то очень сжато все.
спасибо за данную публикацию
Спасибо. Буду эксперементировать.
Спасибо афтару. Похожа на баян…Все это (полная версия)- давно лежит на ИТС «ДополнительныеОтчетыИОбработки»
Спасибо автору
Спасибо за статью, первый раз столкнулся с УТ11, оказался в шоке, после того, как не смог подключить внешний отчет 🙂
Ни один из режимов запуска обработки не даёт возможности настроить расписание отчёта..
Не применимо — команда используется только на клиенте
Что делаю не так или куда копать?
Копать никуда не надо 🙁
Запрещено программно использование расписания для дополнительных отчётов, по крайней мере на релизе 11.0.8.11
ну как бы вещь полезная, и как примере, и как описание
+1
Ты бог! :)))))))))))))
Ну а где же пример использования именно Отчета (не Дополнительного отчета)? Хотел понять, как привязать отчет к документу и передать его в качестве параметра в СКД.
Спасибо за информацию, очень помогла в работе, для понимания.
Исправьте, пожалуйста, опечатку «//ПечатанаяФорма»
Отличная статья. Еще бы код разукрашкой раскрасить — было бы вообще супер.
Спасибо!
Весьма поучительно!
Вот спасибо! Еще бы про ограничения по использованию в ролях упомянули, было бы вообще бесценно!
Просто и наглядно. Очень помогло, спасибо !
Спасибо, разобрался с дополнительными отчетами, бухгалтера довольны.
Скажите, как можно разметить кнопку Заполнить в табличной части?
Т.е. для обработки «Заполнение объекта 8.2.epf» появляется кнопка в шапке, а я хотел бы ее перенести в командную панель табличной части. Такое возможно?
(80) Только если перекурочить конфигурацию или документ, то есть об этом лучше забыть и пользоваться тем, что есть.
Отличная статья! Новые возможности очень интересны.
(81) Поручик, Идея хорошая!
Именно по этому ищу обработку к Розница 2.0 для загрузки данных из ТСД. Есть готовые ,но только для Розница 1.0, никто браться написать не берётся!
Подскажите, где взять такую обработку?
(83) PovAndy, а что, если открыть готовые обработки не через «дополнительные обработки», а просто через «файл открыть» ? Операция работы с ТСД вроде разовая.. Стремлюсь делать, как нормальные люди, если правильно открывать через «дополнительные обработки», так, наверное и произойдет. Как удобнее? Спасибо.
(84) Bublik2011, Поддерживаю
«Вот спасибо! Еще бы про ограничения по использованию в ролях упомянули, было бы вообще бесценно!» — поддерживаю
На УПП не взлетит?
Попробовал интегрировать в розницу 1, ничего не получается, хоть убейся.
(88) EugenLiquor,
Так Розница 1 не на управляемых формах. Там всё гораздо проще.
(46) invalid,
Спасибо, в типовой бухгалтерии 3.0 та же беда. Внес записи вручную — заработало.
Хорошая статья.
Добрый вечер!
Это всё-таки для 8.3? Ил на 8.2 тоже можно внешние отладить?
Спасибо!
Ничего хорошего не увидел!
ПараметрыРегистрации.Вставить(«РассылкаОтчетов», Истина);
для возможности добавления отчета в рассылку отчётов (УТ)
(0)
Блин, автор!!! а нельзя было всё в один файлик кинуть???
Ну или хотя бы не дублировать описание статьи в доковский файл?
Ты бы ещё все внешние отчет/обработки по отдельности кинул, так больше СМ заработаешь…
Думал хоть в обработках что-то полезное будет…
Нафига такую ерунду разрешать выствлять за СМ??? Админы!!! Вы с ума сошли что ли? Где адекватные проверки файлов???
Коллеги, не качайте doc-файл — зря потратите СМ. Это просто тупо копия текста данной статьи.
Фу как некрасиво.
Гораздо более ценным источником является документация на ИТСБСП-пример_внешняя_печатная_форма
Статья классная, информация на ИТС здесь:
Почему при записи внешней обработки в справочник внешних обработок происходит вызов СерверногоМетода (не по расписанию)?
»
Можно вводить на основании и заполнять объекты сразу на основании нескольких объектов, а не одного
»
Подскажите, где почитать подробнее об этой возможности?
(101) Проблем никаких нет, подключаете обработку «Ввода на основании» (Создание связанных объектов), и если выделите в списке несколько документов, то в команду ВыполнитьКоманду будет передан массив этих документов ОбъектыНазначения. Далее делаете всё, что вам нужно.
В обработках в этой статье в качестве примера ввода на основании используется команды как на сервере, так на клиенте (в форме)
Не то. Это аналог Защиты от опасных действий для пользователя в конфигураторе.
Из описания:
БезопасныйРежим — Булево — Признак подключения внешней обработки в безопасном режиме.
Значение по умолчанию Истина (обработка будет выполняться безопасно).
В безопасном режиме:
Игнорируется привилегированный режим.
Запрещены внешние по отношению к платформе 1С:Предприятия действия:
COM;
Загрузка внешних компонентов;
Запуск внешних приложений и команд операционной системы;
Доступ к файловой системе, кроме временных файлов;
Доступ к Интернету.
Необязательное свойство.