<?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='\
Чтой-то видно данная тема никому неинтересна… Значит нет смысла дорабатывать на справочники и документы нескольких типов…
Печать без предварительного просмотра не работает -все равно выдает сначала просмотр а потом уже надо нажимать печать.
Это если не внешнюю форму выбирать?
+3 для внешних форм не предусмотрена сразу печать. Только с выводом на экран. А надо ли это делать?
Стандартная типовая итак печатает любую форму по-умолчанию даже внешнюю
(5) Какая именно печатает внешние?
У сотрудников ЕСТЬ вн.печ.форма (ИСТОРИЯ) в обработке не видно….
Можно отбор по спр. и докам сделать по алфавиту…
(7) См ограничение — по справочникам не подключает внешние формы.
А делать — не делать — говорят что уже есть (5). Смысл тогда «велосипед» дорабатывать?
Стандартная типовая итак печатает любую форму по-умолчанию (только ДОКИ…)?
А спр.тоже хочется…
Обработка доработана. Реализован весь функционал.
🙂
Или надо написать, что обработка только для ЗУП-8.1, т.к. обработка выдает ошибки в Бухгалтерии 1.6 (1.6.15.5): не работает печать документов(предварит.просмотр и прямая) + ошибку при печати внешних форм:
{Форма.ФормаВыбораВнешнейФормы(17)}: Поле объекта не обнаружено (ПиктограммаФайла_MXL)
ЭлементыФормы.ДеревоФормы.Колонки.ПредставлениеОбъекта.КартинкиСтрок = БиблиотекаКартинок[«ПиктограммаФайла_MXL»];
————
Пожелание(не обязательное): Было бы еще удобнее, если Обработка была бы с произвольным выбором печатной формы документа(в том числе и «внутренних форм).
(12) Изменил описание.
Справочники вн.печ.формы обрабатывает ….?
(14) Должон.
Подключил вн.обработку,
«История сотрудника (как в ЗиК`е) для ЗУП 2.5 © Armando»
не видет …
(16) Теперь печатает однозначно, проверил.
Есть проблемка с обычной печатью доков и справочников…
+18 извиняюсь только справочники…,
сотрудники-трудовой договор…
(19) Какая проблемка? Печатает нормально, тоже проверено.
извиняюсь ,значит проблемка у меня….
мероприятия орг-ции завел , но не вывел…
(21) Наверное, Вам стоит попытаться яснее выразить свои мысли, так как всё равно непонятно 🙂
+21 есть в ЗУПе спр. «Мероприятия предприятия»,есть там печ.форма…
обработка не выводит на печать ….
+21 можно в отборе выбирать элементы спр.группы…
Если установить у справочников флажок «обрабатывать ТЧ»,
то отбор не работает…
(23) Посмотрю как буду на работе.
(24) НИЧЕГО в типовой обработке не менялось. Были внесены только добавления. Но думаю, что при обработке ТЧ группы справочников не должны отбираться, если у нет ТЧ.
+24 В типовой обработке ошибки нет ,
если установлен у справочников флажок «обрабатывать ТЧ»…
то отбор проходит… ,
а в обработке выходит ошибка…
В типовой нельзя выбрать эл.спр.группу в отборе,а иногда
А внутренние печатные формы (по умолчанию) печатает?
Все нашел, печатает, Спасибо 🙂
(24) Ошибка исправлена.
(23) Печатать внутреннюю форму этого справочника не будет, так как данный справочник не включен в общую систему печати, т.е. в модуле данного справочника отсутствует функция «ПолучитьСтруктуруПечатныхФорм()», присутствующая в других справочниках и документах. Если в следующих релизах 1С это поправит, то будет печататься. Пока — увы…
Отбор с флажком «обрабатывать ТЧ» теперь ОК,
только, если есть список отобранных элементов с этим флажком…
вн.печатные формы пусты,а обычная печать не работает.
И есть проблемка в типовой обработке и у ВАС с изменение родителя у справочников,
(группа(родитель) для изменения не выбирается)
В 1С8.1 Бух. не печатает внешние формы, только встроенные. 🙁 Как исправить?
(31) Читаем описание «Гарантированно работает в конфигурации ЗУП 2.5.13. В других конфигурациях работа возможна, но не гарантируется. Возможна доработка «под конфигурацию» по требованию.»
Прежде всего могли бы уточнить точную версию конфигурации и платформы, а затем что именно и для какого объекта не печатает.
Конфигурация:Бухгалтерия предприятия, редакция 1.6 (1.6.20.6). Есть внешняя печатная форма: «Акты за поставщиков» в документе «Поступление товаров и услуг». Она хорошо печатается из самого документа. А из групповой обработки нет. Я подключила вашу обработку, выбираю «печать внешних печатных форм», когда хочу сделать выбор из «списка внешних печатных форм» мне выдается ошибка: {Форма.ФормаВыбораВнешнейФормы(17)}: Поле объекта не обнаружено (ПиктограммаФайла_MXL)
ЭлементыФормы.ДеревоФормы.Колонки.ПредставлениеОбъекта.КартинкиСтрок = БиблиотекаКартинок[«ПиктограммаФайла_MXL»];
А если без этого выбора нажимаю на «выполнить», то она выполняется, но печатную форму не выдаёт:Выполняемое действие: Печать документов
Режим: Печать внешних печатных форм
————————————————————
————————————————————
Выполнение обработки завершено
(33) Данная ошибка возникала в конфигурациях не имеющих определенной картинки (см. описание сверху).
Исправил, проверил в указанной конфигурации. Теперь работает нормально.
Спасибо большое! Теперь всё печатает, единственно не хватает печати внешних форм без предварительного просмотра, при больших объёмах это очень удобно.
(35) Никогда не пользовался. Но добавить не сложно.
(35) Добавил. Только что бы было видно что с просмотром, что без — лучше форму на полный экран разворачивать.
Ура! Всё получилось!!! Безмерно признательна!!! 🙂
В УПП редакция 1.3 внутренние формы печатает прекрасно…
а вот с внешними проблемма 🙁
Список внешних печатных форм — пустой…
(39) Одно из двух:
— либо что то не правильно поняли в действии обработки
— либо нет доступных внешних печатных форм.
Мне пока не попадалась конфигурация где есть стандартные механизмы, но обработка не работает.
печатные формы есть..аж целых две….
только их не отбирает именно в форму выбора внешних печаных форм
(41) Они зарегистрированы в справочнике внешних печатных форм?
Они зарегистрированы именно к тому объекту, по которому хотите распечатать?
У вас есть права на использование этого справочника?
При открытии формы выбора форм она пустая или всё выбирается но не печатает?
да зарегестрированы в справочнике
именно к справочнику Сотрудники
Права Полные
при окрытии форма пустая
то есть сами печаные формы корректные и прописано все верно (я попробовала в справочнике внешних печатных форм одной из обработок заменть «Умолчательную» все прекрасно распечаталось)…
вот уж и сама не знаю где загвоздка…весь код пролезла… или я где-то что-то не так делаю или одно из двух 🙂
(43) Можете приложить любую из этих внешних форм?
Извиняюсь за задержку
приложила внешнюю печатную форму
(45) Очень интересно…
1. Приложенная печатная форма в формате 8.2. Где нибудь обещано что на 8.2 будет работать? 🙂
Но работать будет, правда только в режиме обычного приложения.
2. Сконвертировал свою обработку, прицепил вашу форму в справочник внешних печатных форм с авторегистрацией.
Открыл свою обработку, указал справочник сотрудников, отобрал несколько сотрудников.
Выбрал действие «Печать документов» и параметр «Печать внешних форм (см просмотром)».
Выбрал саму печатную форму (установил галку в форме выбора).
Нажал на кнопку «Выполнить» и…
О чудо! Напечатались договора по всем выбранным сотрудникам.
Посмотрите порядок действий. Где я что не правильно сделал? 😀
Простите может туплю….
Делаю все как вы описали… еще раз проверила правильно ли стоит автрегистрация в обработке и переподключила…. все адекватно..1с сообщает что обработка содержит параметры авторегистрации и подключает ее к сотрудникам верно…
но в ваша обработка в форме выбора печатных форм…показывает Пусто… 🙁
может у меня прав нет?
или атроегистрация не верна или некорректно цепляется?
(47) Авторегистрация вроде правильная.
Может быть действительно проблема с правами.
Какие права сейчас у вас в базе? (все)
Проставлено: администратор, пользователей, администрирование допформ и обработок, полные, пользователь,право администрирования и внешнего подключения, право ввыода информации, право запуска внешних отчетов и обработок,просмотр движений и структуры подчиненности
(49)
В общем, Вы меня заинтриговали 😀 Пришлось устанавливать УПП 1.3, поскольку во всех остальных конфигурациях что у меня стоят — обработка работает.
И… Действительно, именно в этой конфигурации внешние печатные формы отличаются от других типовых.
Я склонен считать, что разработчики допустили ошибку. Хотя может быть они хотели поменять логику да не доделали?
В общем приладываю обработку специально для этой редакции. Всё работает. Пользуйтесь.
В целом универсальную обработку сделаю для 8.2 попозже, ибо с понедельника в отпуске 😉
Спасибо ПРЕогромное!!!
сбылась моя мечта 🙂
Здравствуйте! Скажите пожалуйста, обрабатывает ли она табличные части документа Операция(бухгалтерский и налоговый учет)? Мне нужно поменять СчетКт. Спасибо.
(52)В плане изменений объектов — полностью типовой функционал. Мной была изменена только печать.
Табличные части обрабатываются в ней точно.
Спасибо, что ответили, типовая не обрабатывает Операции (я имею ввиду табличную часть).
(54) Типовая табличные части обрабатывает.
Какая именно конфигурация?
Скорее всего, вы подходите не с того края:
Обычно у этого документа нет собственной табличной части. На форме документа отображаются проводки введенные данным документом.
Поэтому вам нужна будет обработка выполняющая замену реквизитов в регистрах бухгалтерии, с условием что записи введены определенным документом.
Да, Вы правы, нужно искать обработку, которая отфильтрует по счету регистры бухгалтерии и заменит на другой счет. Спасибо.
Конфигурация УПП . 1С 8.2
(57) Такая замена (обработка для замены или через универсальную консоль запросов) делается за несколько минут.
http://infostart.ru/public/21123/ , если нужно именно готовое решение.
Можете попробовать использовать вот эту обработку
СергейКа, огромное спасибо, буду смотреть 🙂
Все работает выбираю различные печатные формы внешние, свои. актуально для печати справочников (необходимо было печатать спецуфикации номенклатуры). Спасибо , то что надо допишу сам
Огромное спасибо разработчику скачал, попробовал, радовался). Вещь нужная холосая и умная)
Актуальна групповая печать именно справочников и с возможностью использования внешних печатных форм. Это сделано в обработке?
(62). Если у этих справочников включена поддержка типового механизма, тогда да.
Подскажите, как отправить печатную форму сразу на принтер, у меня почему то все время она открывается для просмотра…
(64) Если из внешней печатной формы, то в данной обработке никак. Это просто не предусматривалось сразу.
Прошу прощения за долгий ответ. Почему то оповещение по почте не приходило.