<?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='\
наскока понял, эта обработка просто тупо переносит в документ Отчет производства за смену табличную часть???
(1) «Эту проблему, как и большинство других, можно решить посредством сгибания»
Робот Бендер Родригес.
Не подскажете где можно найти такой гаджет на 8.1
в строке 16
Если ПолеВводаДокумент = Документы.ОтчетПроизводстваЗаСмену.ПустаяСсылка() Тогда
Возврат Таб;
КонецЕсли;
ПолеВводаДокумент — это документ реализация у вас, а не отчет производства за смену. Так что это условие никогда не выполняется.
Далее. Нет варианта для нскольких организаций.
А еще если выбирать за весь период, то формируется по всем реализациям, а не только со счета 43, но это больше как пожелание, а не недочет
В целом обработка полезная, после доработки используем. Спасибо
Нам тоже это надо для 8.2 комплексная. Кто нибудь помочь может?
На 8,2 Бухгалтерия 2,0 не работает. Первую строчку заносит в отчет, а дальше выдает ошибку: Поле объекта не обнаружено (Отражать в налоговом учете).
для БП Украины тоже не работает
Обработка писалась для бухгалтерии 1.6. Для 2.0 я адаптировал, выложу на днях…
Отчет прекрасный, жду прохождения модерации для редакции 2.0. Модераторы! Пропустите быстрее! Работа стоит! У нас бухгалтеров каждый час на счету! А этот отчетик значительно экономит время!
Интересно вы ведете учет, сначала продаёте потом выпускаете чтоль ?!
(10) Vital451,
Ты в каком мире живешь, сынок?
(11)Видимо, дед, в другом
(12) Vital451, (-;
(10) Vital451, А вот так и работают. Сначала одни просят — другие сделали первую попытку — и все радуются (Получилось!!!), не понимая, что это грабли, которые работают в геометрической прогресии. Плюс постоянная потеря управления из-за «заднего числа».
В итоге рентабельность по чистой прибыли равна инфляции — какой дурак в такое производство будет вкладывать…
На самом деле все гораздо проще…
Реальный учет ведется в отдельной базе которую никому не показывают.
А эту обработку используют в «белой» базе для отчетности. В ней «самый самолет», реальные документы отгрузка и выпуск по ним.
(14) Виктор1905,
Не надо ко всему этому ТАК серьёзно относиться.
В нашем больном обществе как ни сделай все будет через жопу.
По большому счету любой может прибыль посчитать на пальцах, при условии, окончания начальной школы.
Вся эта «экономика» поросто искусственная надстройка над очень простыми отношениями взаимного обмена продуктами производства (услугами). Если бы не было налоговых (мотырей), банкиров (ростовщиков) и прочих органов б’ольшая чаcть предпринимателей обходилась бы без бухгалтерии, а значит и 1с ни кому не нужна бы была.
По этому «как бы детя не тешилось, лишь бы не плакало».
Отчет супер, вот только один нюанс есть. Когда я его запускаю, он набивает ве производство на основании реализации и ставит сччет автоматом 41! А это ведь у нас 43 счет! Приходиться ручками работать.
(17) madamonika,
А у Вас заполнен регистр «Счета учета номенклатуры?». Похоже, что нет.
А как его мне заполнить?
(18) Заполнены счета. Причем, когда повторно выбираешь уже в сформированном отчете производства номенклатуру. Тогда счет автоматом ставиться. А после обработки нет.
Если бы склад автоматом становился, тогда бы и 43, автоматом вставал.
Спасибо!!! Нужная обработка, а продают, а выпуск забывают показать.
Если производство-единичное и с большой номенклатурой продукции, нереально вручную формировать отчет производства за смену, такая обработка мне необходима
А есть такая же обработка, но только чтобы на каждую продажу формировался отдельный отчет производства за смену.
Спасибо большое, очень полезная вещь.
Спасибо, пригодилась для собственных нужд.
Вещь полезная, спасибо.
Немного переделал для Украины, и заметил ошибку в обработке.
Суть ее — если в документе реализация продукция продается не в базовых единицах измерения, то количество в созданном документе «Отчет производства за смену» будет неверное.
Например «продукция» в реализации продана в тоннах 10тн, а в учете производится в килограммах то будет произведено 10кг. Не учитывается коэффициент к единице измерения.
удалено
Отчет хороший, но может быть кто-то подскажет, как сделать, чтобы в цену (плановую) попадала цена из реализации, руками отчеты забивать просто не реально. Очень надеюсь на помощь.
Список номенклатуры пуст! -это что значит, если не секрет
(24) alexstrel,http://infostart.ru/public/259165/
(30) lidia2506, посмотритеhttp://infostart.ru/public/259165/
У меня подставляется свой тип цен, доделаю подстановку любой цены.
Добрый день! А для БП 3.0 такой нет?
Да, нужная вещь, вложила немного в подработку — и теперь счастлива.