<?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='\
>… сделал проще взял отвесвтенного из шапки документа
А должность подписанта почему не попадает в печатную форму(в соотв. со ст.9 закона 129-ФЗ «О бухгалтерском учете») ?
(1) оп па… не подумавши состряпал, в ближайшее время исправим 🙂
(1) есть выход из положения даже исправлять не надо 🙂 надо в полном имени пользователя дописать его должность.
Подскажите, плиз, как найти «на просторах Инфостарта» обработку для вывода печатной формы счета , в котром цены и суммы в каждой строке будут с НДС, хотя в настройках 1С снята галочка «цены с НДС». Так нужно , потому что у нас холдинг и нужно , чтобы было единообразие у всех фирм. А покупатели часто хотят счет с ценами с НДС.
Например, договорился менеджер с покупателем, что продаст ему товар по 590 рублей за штуку х на 10 штук всего на сумму 5900, в т.ч. НДС 900 руб. Но в 1С внесена цена без НДС 500 руб х й0 шт = 5000 плюс НДС 900 итого 5900. И именно так в счете и отображается в 1С = 500 х 10 = 500
НДс 900
ИТГО 5900.
А покупатель хочет
590 х 10 = 5900
в т.ч. НДС 900.
В УТ 10.3 выпадает ошибка —
Не удалось сформировать внешнюю печатную форму!
Ошибка при вызове метода контекста (Выполнить): {(18, 2)}: Неоднозначное поле «ЗаказПокупателя.Ссылка»
<<?>>ЗаказПокупателя.Ссылка = &ТекущийДокумент
(5) Вопрос снят — не обратил внимания, что печатная форма для Бухгалтерии 1.6
конф. (1.6.23.2) все отлично работает! огромное спасибо! 😀
Помогите с поиском внешней формы счета для УТ
Обновлено
1. Добавлена расшифровка подписи Отвественного
2. Добавлено строка «Всего к оплате» для тех кто не умеет читать сумму прописью и прибавлять сумму НДС. Актуально в случае когда НДС сверху. Клиент прям слезно умолял 🙂
проверено на Бухгалтерия предприятия, редакция 1.6 (1.6.24.7)
А можно задолженность или переплату по текущему договору в счете указать?
Спасибо, помогло очень.
Спасибо, помогло очень.
Спасибо,
Други!)) помогите сделать внешнюю печатную форму счета на оплату покупателю для 1С:Предприятие 8.1 (8.1.13.41) Конфигурация «Управление торговлей», редакция 10.3 (10.3.8.9). Желательно создать ее и объяснить, как подключить. Я в этом чайник — скачал несколько примеров ничего не работает, не могу разобраться. Работа будет оплачена ОДНОЗАЧНО (после предварительного обсуждения стоимости), но, только после проверки работоспособности. Оплата ЯДеньгами, или пополнение счета мобильного тлф, или (если Питер) наличными. Задачу необходимо решить СРОЧНО! Желательно до Понедельника 16 янв. 2012г. Ваши предложения или готовые ВПФ жду по эл. почте 2683434@mail.ru — ОЛЕГ.
При выполнении работы — здесь сообщу о том, кем работа выполнена, его логин или (по желанию) реальное имя.
P.S.Для питерцев дополнительно предлагаю периодическую, оплачиваемую, разовую работу по насторойке 1С. Для связи адрес эл. почты тот же.