<?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='\
Я получил очень много писем с просьбами так или иначе доработать обработку «Управление печатью документов». В основном просили реализовать печать той или иной формы. В процессе доработки «УПД» мне пришла в голову идея а почему бы из таблицы отобранных документов не сделать журнал?! – Так родилась обработка «Универсальный журнал печати документов». Честно скажу: работать с 7.7 уже больше не хочется (какой-то каменный век). Поэтому почитаю что вы тут понапишите, чо нидь доработаю и приступлю к проектам 8.1!
Хорошая идея. Вот и попробуй сделать в 8.1 Общий журнал документов с возможностью отбора как в 7.7
Обработка выдает ошибку в Поступлении товаров (бух.релиз 504):
Если Док.РасчетныйСчет.Выбран() = 1 Тогда
{…ЖУРНАЛПЕЧАТИДОКУМЕНТОВ.ERT(1983)}: Поле агрегатного объекта не обнаружено (РасчетныйСчет)
Иван доброго дня. Спасибо за добавленные формы.
Подскажите, как добавить печать в двух экземплярах (например акты)
С уважением.
отбор по контрагенту — если этот элемент Док.Контрагент — ГРУППА
не работает (а хочется).
Ув. gutentag !
Действительно был грешок! 3)
Все исправлено и работает!
Прошу повторить испытание!
Ув. itcp!
В новой версии добавился реквизит формы <Число копий> — см. картинку!
Не забудь скачать новую версию!
Товарищи! Все кто по делу сделает замечание или другую критику — справедливо получает плюс!
Весьма недурственно. Однако для опознания конфигурации, имхо, все же следовало бы пользоваться не краткой информацией, а функцией глИдентификаторКонфигурации().
И Гранд-Сервис таки убрать 🙂
Ув. akat65 !
В версии GyrnalPechatiDoc 160_504.3 (выложена 23.04.2009 в 12:00)
реализован отбор по контрагенту «если этот элемент ГРУППА», за что ты получаешь заслуженный плюс (идея то твоя!).
P.S. Арчибальд ты меня раскусил 🙂 !!! Буду дорабатывать…
(9) У меня челюсти из керамогранита 😉
Подскажите пожалуйста, как подключить печатные формы документов для УСН 7.7????? Заранее благодарна
как в старой так и в новой вашей разработке не сделано следующее (в связи с этим документы печатаются с ошибками особенно счет-фактуры, результат = пользоваться обработкой нельзя или нужно каждый документ сидеть и редактировать)
Отгрузка товаров, продукции
1. Отпуск груза разрешил – хотелось бы чтобы автоматически вставала должность ген. Директор и соответственно ФИО директора
2. даты отгрузки нету
3. Если торг-12 печатается больше чем на одной странице, то на каждой странице желательно указывать номер и дату документа (например: накладная № 1 от 01.01.2009г.)
Счет-фактура выданная
1. Вместа данных грузоотправителя почему то указываются данные грузополучателя
2. Если сч.ф. больше чем на одной странице, то на каждой странице должна быть шапка таблицы, номер страницы и номер и дата документа
Поступление товаров
1. Коды ОКПО почему то одинаковые (т.е. четыре одинаковых кода, когда должно быть два покупателя и два продавца)
2. Грузополучатель и плательщик не подтягиваются банковские реквизиты.
Пожелание: включите пожалуйста печатную форму, типа «Акт на списание» для документов «Перемещение ТМЦ»(УСН-7.7) и «Перемещение материалов»(БУХ-7.7)
Ув.Виктория (11)! Печатные формы «подключить» к обработке никак подключить нельзя т.к. они «внутри нее вшиты» (видно в режиме конфигуратора). Просто напиши как gutentag (13) какие формы тебе нужны и для какой конфигурации!
Тов. ЛюблюТебя! Есть, конечно, огрехи в обработке! Как только появиться свободная минутка посмотрю что та за косяк с «Отгрузка товаров, продукции» и и др. исправлю! Кстати какая у тебя конфигурация?!?!?!
у меня Бухгалтерский учет,редакция 4.5, релиз 7.70.506
Обработка полезная. Если есть возможность добавить для УСН документ Перемещение МПЗ — цены бы ей не было.И замечена ошибка: при групповой печати документа Поступление МПЗ в УСН — начиная со второй страницы вверху появляется кусок табличной части с нумерацией столбцов в таблице, где отражается список поступивших МПЗ.
Нужен акт на списание материалов в конфигурацию УСН 7.7.
Пожелание: для Бухгалтерии добавить форму МХ-1 и МХ-3 чтобы данные для этих форм брались из Поступления товара.
Спасибо за обработку! Пожелание: для Бухгалтерии в печатной форме платежного поручения в поле «сумма прописью» исправить цифры на сумму прописью
Спасибо огромное за обработку! Понадобилось срочно распечатать док-ты за 2 года, а времени на написание совсем не оставили, просто поставили перед фактом…
Спасибо Вам!
Спасибо за обработку.
Несомненное достоинство, что работает и в УСНО, и в ОСНО. Очень жаль, что в разработке для ОСНО нет возможности распечатывать Акты выполненых работ. При восстановлении бухучёта организаций, оказывающих услуги, пакетная печать Актов актуальна.
Конечно, программа классная, но вот счет-фактуры, явно недоделанные (ОСНО). в гафе грузоотправитель ставиться почему-то покупатель. а должен ставиться Поставщик. и форма сч-ф с июня месяца 2009 года поменялась.
Хорошо бы еще, кроме РКО, и ПКО печатать (для УСН)
а какой формат у файла? не подвязывается 🙁
Хотя обработка давно не обновляется, но достаточно просто дорабатывается под текущие печ. формы.
Нашел ошибку при печати реестра документов.
Пропущена следующая строка после:
следующего содержания:
Иначе не работает конструкция Док.Графа(«Реквизит»);
Спасибо очень, очень помогло
Спасибо за обработку. А можно сохранять получившиеся печатные формы документов напрямую в файл Excel,не выводя на экран, то есть каждый документ на отдельный лист?
(27) erthia, я уже несколько лет в глаза не видел семерку. Мой Вам совет: найдите где-нибудь программиста 1С или франчайзи и перейдите на 8 версию.
*******
Работы по этой обработке я как ее создатель полностью официально прекращаю. Так же как и любые другие работы с платформой 7.7.