<?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='\
[мечтательно] Вот еще бы сюда форму ТОРГ-2 …. (не путать с ТОРГ-12)
если в приходном документе выбран вариант расчета налогов «НДС в сумме», то выводит НДС 0 в ТОРГ-12, и НДС «мме».
если вариант расчета «НДС сверху» — все отлично.
если в приходном документе выбран вариант расчета налогов «НДС в сумме», то выводит НДС 0 в ТОРГ-12, и НДС «мме».
если вариант расчета «НДС сверху» — все отлично.
Сегодня посмотрю. Спасибо за замечание.
[мечтательно] Вот еще бы сюда форму ТОРГ-2 …. (не путать с ТОРГ-12)
Эта форма используется при возврате поставщику, её то желаете использовать в поступлении? 🙂
Угу, уже использую.
Очень полезная разработка… Столкнулся с необходимостью в нем, но свой не смог найти написанный во времена работы с 7-кой… Спасибо, очень подсобило…
спасибо,пригодилось.
Спасибки классная, много таких дороботок, а это круче, покрайне мере мне очень нравиться и подходит
Всегда пожалуйста. 🙂
Для Блондинок (я-бухгалтер): как подключить в 1с 7.7?
Для Блондинок (я-бухгалтер): как подключить в 1с 7.7?
Распаковав архив, нужно прочитать файл описания методики подключения находящийся в архиве. Следуя описанию в файле подключить может любой. Если чего непонятно, пишите конкретный вопрос, отвечу.
Эх. такое бы для восьмерки. Чота сбился с ног искамши
(14) X-morph,
Для восьмерки готовится. Планирую выложить в свободный доступ к середине марта.
Там будет все по серьезному 🙂
Сама обновленные формы подтягивать будет и т.д.
Закачала. Работает только счет-фактура, и то нельзя прописать фамилии для подписи, придется вручную впечатывать. Остальные не работают с кнопки. А что-то дописывать в процедуре, это надо быть программистом. А мы бухгалтеры, хочется, чтобы программы были, как говорит мой начальник, для «дураков»: нажал кнопку и получил инфо. Всё равно спасибо и удачи!
Спрасибо! Ща апробирую!
«В глобальные переменные модуля формы добавить…»
Вячеслав, это Вы с кем ?
Кто поймет эти слова, он и так справится…Для меня это набор слов, о чем я горько сожалею.
Мне правда , на первый случай хватило , чтоб распечатать новую счет фактуру.
А в модули я не полезу-это для меня прямой путь к убиению базы…Я все равно найду, где нужную загогулину поставить, чтоб он больше не работало…А программисты себе уже и так понасочиняли…Их бухгалтеры уже довольны….
А серьезно, для обработки такого типа нужны:
-учет актуальных форм или возможность их выбора
-возможность групповой печати
-корректное заполнение реквизитов(ФИО дира и буха) Может перед запуском в отдельном окошке заполнять?
-возможность запуска без предварительной подготовки базы
Возможно, пожелания практика кого-нибудь заинтересуют?
Спасибо! Желаю творческих успехов!
Спасибо, очень нужная вещица, почему до сих пор 1С-ки ее не ввели в программу, насколько мне известно почти все сталкиваются с подобной проблемой
(18) Фред,
Сей продукт сделан не для конечного пользователя (бухгалтера и т.д.), а для как минимум админов базы, знающих систему «изнутри».
Здесь на сайте есть подобные обработки реализованные для конечного пользователя, но они платные и «перебегать» дорогу ребятам как минимум не этично.
Если сделаю продукт для конечного пользователя, то он будет платным… 🙂
juker
Добрый день!
Благодарен Вам за формы. Скажите, Вы говорили о том, что будет что-то подобное для 8-ки.
Когда и сколько это будет стоить?
(21) antony.cherny, цена — не думал.
Скорее всего не ниже средней (подобных разработок) на данном сайте.
Проект заморожен в силу занятости.
Возобновление работ планируется 21 числа сего месяца.
Вопрос: можно ли с помощью этой программы переводить прихо сразу в расход?
(23) Foravto, Нет. Это только печатные формы.
(3)
если в приходном документе выбран вариант расчета налогов «НДС в сумме», то выводит НДС 0 в ТОРГ-12, и НДС «мме».
если вариант расчета «НДС сверху» — все отлично.
Сегодня посмотрю. Спасибо за замечание. [/IS-QUOTE]
Исправлений еще не намечается? Кстати в счет фактуре еще одна ошибка в строке «Грузоотправитель и его адрес:» Не отображается «Наименование грузоотправителя»
Не отображается «Валюта: наименование, код Российский рубль, 643»
подверждаю ошибки с ндс, валютой и Грузоотправитель и его адрес
(26) Irek-kazan,
Все никак не доберусь до «поправить по замечаниям». В ближайшее (скорее всего в выходные) поправлю.
У меня в ближайшие выходные закончится премиум аккаунт. Опять платить(((
(28) Куролесов,
Вышлю архив Вам на почту, если закончится Ваш премиум. В личку почту киньте.
У себя в блоге, на данном сайте написал о планах развития данной сборки.
тут .
Читайте
А если в приходе товар с ГТД? Печатается это в счете -факутре от поставщика ?
(31) SatMan, Номер ГТД не печатается, т.к. ГТД покупателя, это никак не номера поставщика.
А можно такую же полезную сборку сделать для УСН 7.7?
(33) Koksana,
Эта сборка работает в среде УСН.
А когда-нибудь будут внесены измения в форму УПД, внесенные 01.07.2017г. и 01.10.2017г.?
(35) Думал, что данная разработка канула в архив истории, поэтому не контролирую необходимые изменения.
Перенесем обсуждение в личку.