<?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='\
Спасибо! Тоже бухи спрашивали. Только в 7 версии ограничение на максимум, чтобы госконтракты не попадали. А у Вас на минимум, не понятно зачем.
Спасибо !!!! очень актуально !!!
В реестр должно включаться все что менее 100 тысяч, точнее все что закуплено без муниципальных или государственных контрактов, а у вас почему то более стоит 🙂
Ошибка при формировании отчета вылетает «деление на 0»
ОбластьСтрока.Параметры.Цена = Формат(Окр(ВыборкаЗакупка.СуммаСтроки/ВыборкаЗакупка.Количество,2), «ЧЦ=15; ЧДЦ=2; ЧРД=,; ЧРГ=.; ЧО=1»);
Ошибка вылетает на этом месте. Это мои бухи касячат 🙁
Сделал так
ОбластьСтрока.Параметры.Цена = Формат(Окр(?(ВыборкаЗакупка.Количество>0,ВыборкаЗакупка.СуммаСтроки/ВыборкаЗакупка.Количество,0),2), «ЧЦ=15; ЧДЦ=2; ЧРД=,; ЧРГ=.; ЧО=1»);
Пусть свои 0 сами ищут 😀
Еще раз спасибо,adeich !!!
За
без проверки на ноль программиста надо сразу лишать всех регалий и увольнять с волчьим билетом 😉
Отвечаю сразу всем: 😉
Писалось на «месте» и по просьбе клиента, поэтому и стоит более 100 тыс
Проверку на 0 не делал, каюсь :cry:, мой косяк . Обработка открыта, так что думаю те, кто будеи ей пользоваться, исправят
В этом варианте вроде все косяки исправил.
Сумма закупки теперь <= сумме строки документа
2adeich, Не ошибается тот кто нечего не делает 😉
Внес небольшие изменения.
У кого вылетает с ошибкой на «Вид контрагента» (замечено мной), проверяйте свои справочники, не заполнен реквизит. Такое бывает при выгрузке из 7-ки 🙂
))
почему обработка не работает с прочими поступлениями МЗ с операциями касающиеся 401 счета,реестр не формируется
Если покупка осуществлялась через подотчетное лицо, то в отчете показывается поставщиком подотчтник, а надо бы показывать из поля «Грузоотправитель»
что же тогда делать? как выйти из данной ситуации 🙁
Ну вроде бы Автор хотел изменить, писал ему в личку. Ждем.
как убрать подотчетников из реестра
Посмотри обновленный файл. Если убрать подотчетников полностью, то нужно редактировать модуль
Спасибо автору 😀
Большое спасибо автору, реестр очень пригодился, единственный недочет — в реестр попадают строки из документов помеченных на удаление, подскажите как можно подкорректировать отчет, очень нужно.
У меня ББУ 8.2
Очень хочу использовать этот отчет, но при открытии файла выдается ошибка —
«Ошибка при выполнении файловой операции ‘N:VO!ReestrZakupok77_!!.erf’
по причине:
Неверный формат хранилища данных ‘file://N:/VO/!ReestrZakupok77_!!.erf'»
ЧТО ДЕЛАТЬ??? С 8-кой только начинаю работать, может что-то делаю не так.
Буду благодарна, если ответите.
У меня ББУ 8.2
Очень хочу использовать этот отчет, но при открытии файла выдается ошибка —
«Ошибка при выполнении файловой операции ‘N:VO!ReestrZakupok77_!!.erf’
по причине:
Неверный формат хранилища данных ‘file://N:/VO/!ReestrZakupok77_!!.erf'»
ЧТО ДЕЛАТЬ??? С 8-кой только начинаю работать, может что-то делаю не так.
Буду благодарна, если ответите.
Показать
Вы точно скачали обработку для платформы 8.2? Она во втором прикрепленном файле, а вы, по-моему, запускаете обработку для 8.1
Большое спасибо автору, реестр очень пригодился, единственный недочет — в реестр попадают строки из документов помеченных на удаление , подскажите как можно подкорректировать отчет, очень нужно.
ответил в личку
Скачал пока только 2-й файл. В тексте запроса надо везде перед словом «ИСТИНА» убрать знак «&», иначе выдает ошибку.
А так выглядит очень даже приятно)
Спасибо большое!
Спасибо! Очень полезная вещь!
Спасибо! Отлично!
Спасибо! Очень пригодился
Да, тоже пригодился, особенно сейчас спрашивают!!!
Спасибо! Очень пригодился. Зачем нужен стандартный механизм в БГУ 8.2 не понимаю.
Спасибо. Обработка помогла, именно как «такая как в ББУ 7.7») В БГУ 8 вообще много чего хотят видеть «как в ББу 7.7»;-)
Большое человеческое СПАСИБО!
1. Реестр закупок представляет собой документ, содержащий в себе перечень приобретенных товаров (работ, услуг), оплаченных предприятием.
2. Реестры закупок, осуществляемые без заключения муниципальных контрактов, должны содержать следующие сведения:
— краткое наименование закупаемых товаров, работ и услуг;
— наименование и местонахождение поставщиков, подрядчиков и исполнителей услуг;
— цену и дату закупки.
3. Закупка считается включенной в реестр закупок после присвоения ей регистрационного номера в соответствии с порядком нумерации.
4. Сведения о закупке вносятся в реестры закупок не позднее трех дней с момента осуществления закупки.
5. Реестры закупок ведутся в письменном виде (в форме журнала) или в электронном виде.
Спасибо, ставлю плюсик! Совсем недавно бухгалтер спрашивала такой реестр как в ББУ 7.7 🙂
Наверно хорошая обработка, жаль что пока скачать не получается, а бухи то уже насели по этому поводу
Спасибо! мой плюсик ваш!
Спасибо! Очень пригодился!
Спасибо большое, а то меня уже замучили с этим реестром, говорят хотим как в 7.7.
Подскажите, а можно как-нибудь сделать, чтобы отчет формировался в разрезе «Вид обязательства» из справочника договоров, а то в реестр попадает всё, и договора и муниципальные контракты.
В реестре закупок в колонке «Дата закупки» должна стоять дата из договора, а не дата документа (проверяла контрольно-счетная палата сделала замечание). В типовом реестре закупок дата закупки подбирается правильно — из договора
не попадают из АвансовыхОтчетов Операции (бухгалтерские). Возможно доделать? спасибо
СКАЖИТЕ ЕСЛИ ВЫСТАВИТЬ КОНКРЕТНЫЙ МЕСЯЦ ЗА КОТОРЫЙ ХОЧУ ПОГЛЯДЕТЬ ОТЧЕТ — ВЫДАЕТСЯ ОШИБКА {(21,28)}: Не задано значение параметра «Истина» И МЗ_Покупка.Проведен = <<?>>&Истина и МЗ_Покупка.Учреждение В(&Учреждение)
(42) irina_ph, у меня нормально все формируется., и при выборе за конкретный месяц.
Проверьте платформу, должна быть — 8.2.15
Пробовал на 1С:Предприятие 8.2 (8.2.15.310), Бухгалтерия государственного учреждения, редакция 1.0 (1.0.11.4)
Всем спасибо за комментарии! :)). Найденные косяки стараюсь исправлять, но… бывает не успеваю, не хватает времени, работа :))
(40) repz, А вот у нас прокурорская проверка сказала — «Дата закупки», поэтому и писался отчет так. Хотя в некоторых версиях я вообще убирал и договор, и дату. Видимо тут все на усмотрение проверяющего.
Насчет типового реестра — он строится на планах-графиках финансирования по договорам, поэтому и берется дата договора, а не дата закупки
(41) NVKom — Нет. Реестр строится по документам, если ваши бухгалтера все заносят операциейбух, то… сорри
(42) irina_ph, должно работать на любой платформе и любом релизе БГУ. Попробуйте перекачать отчет, такая ошибка была если качали версию под ББУ прошлый год
Да, мои бухгалтера такой реестр просят, привыкли в 7.7
добрый день! Как бухгалтер тоже нуждаюсь в таком отчета. Спасибо.
(44) спасибо! полезный и нужный отчет!
Спасибо.
Спасибо очень помогло, только попадают помеченные на удаление и не проведенные.
Лекарство против не проведенных и удаленных документов
//проверка на пометку удаления и проведения Вет
Попытка
Если ((Докум.Документ.ПометкаУдаления=истина) или (Докум.Документ.Проведен=ложь)) тогда
продолжить
КонецЕсли;
Исключение
КонецПопытки;
//конец попытки
в процедуру сформироватьОтчет после строк
ИтогоСумма = 0;
Пока Докум.Следующий()Цикл
после сохранения не будут браться удаленные и не проведенные
Хорошая обработка, очень необходимая, но какую из 3 скачивать? Помимо этой есть еще одна обработка на инфостартеhttp://infostart.ru/public/178635/index.php , но там тоже есть недоработки…
(51) tazmag, Для БГУ ред. 1.0 актуальна 3-я