<?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='\
А нафик с/ф при УСНО? Там нет НДС. Можно печатать и по старой форме, налоговикам будет пополам, т.к. нет базы для возмещения НДС.
Раз 52 раза скачали (плюсанулиб еще столькоже), значит нужны. 🙂
Вот типа мне делать было нечего, взял и сваял СФ для УСНО., поясняю:
1. Не знаю как у Вас, но у нас некоторые организации (в основном бюджетные) не оплачивают пока нет С/Ф (и им по барабану на какой ты системе налогообложения), и бухгалтера там такие придирчивые, такое чувство, что им лишь бы задержать платеж.
2. Есть такие организации, что работая на УСНО все же выставляют С/Ф с НДС (не терять же клиента, если ему ни жить ни быть нужен НДС).
Извините, не совсем понял, как эту форму к документу подцепить?
В папку ExtFormsPrnForms положил, а дальше что с ней делать?
(3) Идти в СФ и давить кнопку печать, если СФ от 9.06.09 и позже, будет измененный вариант, если более ранне число, то будет старый вариант
(3) в продолжение для общего развития. Если конфигураци не измененная, то в СФ прописан следующий алгоритм печати, если в ExtFormsPrnForms каталога рабочей базы лежит файлик 1cbsf283.mxl , то печатная форма беретсья из него, если этого файлика нет, то береться встроенная в конфигуратор печатная форма СФ.
Спасибо
(6) Спасибо много, плюсик в самый раз 🙂
Пардон, каюсь, ПЛЮС
я скопировала в папку ExtForms данный файл, но все равно с-ф не изменяется….
(9) а надо копировать в ExtFormsPrnForms
(10) а у меня нет такой папки PrnForms в папке ExtForms?? Мне ее нужно создать?
(11) создайте и положите туда — хуже от этого не будет.
сразу встает вопрос — а вы 1Ску откуда сперли? 😉
(10) как показывает богатая статистика — наличие в профиле правдивого содержательно фото автора существенно способствует решению оперативных вопросов…
(12) так пришла на эту работу, уже такая спертая и стояла:))))))). а денег начальство не дает на настоящую — дорого говорит. Так и мучаюсь 3 месяц.
ну, значит, на адвоката даст?
(14)Начальнику такому-то
Служебная записка.
Довожу до Вашего сведения, что риски при использовании контрафактного ПО состоят в следующем…
У меня подействовало в свое время. За три года легализовали ВСЕ
(13) пока не до фото 🙂 А каких оперативных вопросов?
(16) долго вы.. я как пришел на рука Итотдела своего — в первую очередь легализовали все винды, сервера, акроинс, радмин. Антивирь и 1ска были правильные и до этого.
(17) пока не до вопросов 😉
(18) Нормально. Свое сразу, винды постепенно (в рамках мелкомягких тогдашних правил)
Я не вижу в шапке подписи о редакции 451 от 9 июня 2009 года. Об этом нигде не написано, но быть она должна — так говорит любой опытный бухгалтер. Кроме того без этой приписки одна крупная немецкая компания попросту не платила.
виноват, от 26.05.2009 N 451
виноват ещё раз, всё есть, просто старый документ был 🙁
(21) А полное и краткое наименование организации есть? или только кракое? Может смотрите на примере СФ выписанной ранее чем 09.06.09?
Пока писал ответ уже все решиось само собой 🙂
(5) и что делать в этом сучае? Как поменять?
(27) Не понял вопроса, что поменять?
1. Хочешь внешней СФ пользоваться положи в ExtFormsPrnForms каталога рабочей базы файлик 1cbsf283.mxl
2. Не хочешь внешней СФ польоваться, удали этот файлик.
У меня не меняется!Чего делать?
(28)
1. Скопируйте файл 1cbsf283.mxl в папку ExtFormsPrnForms информационной базы.
2. У Вас случаем конфигурация не измененная?
(29) версия 1с 7.7 для SQL (7.70.025) УСНО ред. 1.3 (7.70.153). Я в 1с не особо разбираюсь, просто попросили помочь, то что не лицензия это точно.
Скопировал файл 1cbsf283.mxl в папку ExtFormsPrnForms информационной базы
и не чего не меняется, а надо чтоб только в шапке счет-фактуры должно было указано «… в редакции постановлений Правительства……, от 26 мая 2009 г. № 451) и все. А у меня не меняется….. Может есть другой способ какой?
(30) редакция древняя, хотя на дату ее выхода уже была внешняя форма СФ 1cbsf283.mxl можно предположить, что код программы изменен и строка
ИмяФайлаПечатнойФормы = КаталогИБ() + «ExtFormsPrnForms1cbsf283.mxl»;
просто закоментировала или удалена.
А лицензия нелицензия тут роли не играет.
Другой способ, или поправить код в печати СФ, или обновить редакцию. Хотя, если код программы был изменен, то при обновлении редакции то что меняли можно затереть.
(31) Был бы очень благодарен если бы Вы мне написали как можно поменять код!
(32) Заходим в Конфигуратор, Открываем конфигурацию- Документы — СчетФактура — Кнопка «Форма» — Закладка «Модуль» — ищем процедуру Печать().
Смотрим начало процедуры, там должно быть:
НомерДокПечатнойФормы = глПреобразоватьНомерДок(НомерДок, 0, 0);
// В зависимости от даты документа используются разные шаблоны печатной формы.
// При наличии в каталоге информационной базы файла с именем
// «ExtFormsPrnForms1cbsf*.mxl», будет использоваться шаблон печатной формы
// размещенный в данном файле.
Таб = СоздатьОбъект(«Таблица»);
Если ДатаДок >= ‘30.05.2006’ Тогда
ИмяФайлаПечатнойФормы = КаталогИБ() + «ExtFormsPrnForms1cbsf283.mxl»;
ИмяТаблицы = «СФ283»;
Иначе
ИмяФайлаПечатнойФормы = КаталогИБ() + «ExtFormsPrnForms1cbsf.mxl»;
ИмяТаблицы = «СФ84»;
КонецЕсли;
Если ФС.СуществуетФайл(ИмяФайлаПечатнойФормы) = 1 Тогда
Таб.ИсходнаяТаблица(ИмяФайлаПечатнойФормы);
Иначе
Таб.ИсходнаяТаблица(ИмяТаблицы);
КонецЕсли;