<?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='\
Заинтриговала обработка, но в УТП для Укр не пошла((
(1) Ну я думаю там переделать не много 🙂
Не запускал, только глянул код. На первый взгляд весьма достойная работа.
Спасибо, сегодня буду дорабатывать, заказчик попросил добавить еще одну фишку. К вечеру или завтра выложу новую версию.
Новая версия ждет Вас! Качать обязательно! Много исправлено и доработано.
Вопрос. Как вы решаете проблему с печатью ценников на непрерывной ленте с использованием термопринтера.
1С выдает принтеру данные постранично. Когда принтер начинает искать конец страницы на непрерывной ленте…
На термопринтере мы не печатаем этой обработкой.
Доступна новая версия. Все качаем и наслаждаемся!
Насколько я понял, эта обработка является немного измененным вариантомhttp://infostart.ru/projects/1887/ Неплохо бы указать ссылку на первоисточник в описании.
Возможно, я ее делал год назад и использовал разные приемчики.
Я ж писал что работает под 10.2 и предупредил что есть изменения в конфе.
очень заинтерисовало
а тоже самое под 10,3 можно ?
Не знаю ошибка или нет — при заполнении из документа не контролирует штрихкоды остальных позиций, тупо подставляет из тех что проверил, возможно потому что по 10,3 юзаю (((.Скорее всего касается внутренних кодов, сгенерированых 1С, хотя закономерности пока не нашел.
Доработал, теперь работает на релизе 3.7.8. Правда сканер ШК не могу проверить, т.к. нет сканера. Куда тут выложить?
Кидай мне код, выложу новую поправленую версию…
Здравствуйте igyo! У меня к Вам есть интересное предложение. Поговорим? yakutin33@mail.ru
1.Дата документа из которого печатаются цены в формы ценников не помешала бы.
2. Выбор что печатать — краткие или полные наименования
zenz: 1 — ценник получается заграможденным, заказчику это не надо было, хотя согласен, было бы удобнее. 2 — печатем только краткие наименования так как полные слишком большие и будут не влазить в ценник, а если уменьшать шрифт то убдет очень мелко. Собственно для этого и была сделана возможность переименования наименования, дабы сократить длинные названия убрав то что не нужно на ценнике.
Можно еще сделать, чтобы на весовой товар цену печатать «за 100 гр.», а также добавить параметр ПЛУ (код товара в весах) в макет ценника.
Для более корректной работы предлагаю еще заменить процедуру «ТоварыВыбор» следующим кодом:
Процедура ТоварыВыбор(Элемент,ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
Если Колонка.Имя=»Выб» Тогда
ВыбраннаяСтрока.Выб = Не ВыбраннаяСтрока.Выб;
КонецЕсли;
Если Колонка.Имя=»КолВо» Тогда
Если ВвестиЧисло(ВыбраннаяСтрока.КолВо,»Кол-во ценников для печати»,10,) Тогда
Если (ВыбраннаяСтрока.КолВо=0) или (ВыбраннаяСтрока.КолВо<0) Тогда
Товары.Удалить(ВыбраннаяСтрока);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Всем спасибо за спасибо 🙂 Скоро выйдет версия под новые релизы конфигураций, а именно: Розница, УТ, УПП, КА, может и Бухгалтерию.
Натолкнуладанная обработка.
24. Обработка хорошая, но не работает с товарами у которых есть характеристики (Цвет, рост, размер и т.д.). Не переносится цена из документов и объединяются товары по наименованию, но с разными характеристиками. Может доработаете в будущем?
Подойдет для 1с предприятие 8.1 базовая?
Папка PrintFormsCennikEtiket в каталоге базы и формы там, но
Предупреждение(«Не обнаружено ни одной печатной формы!!!
|Проверьте правильность установки обработки!!!
Прошу помочь
Нашел, в каталоге 8 форм
Не работает в SQL, подскажите пож. как прописать пути для другого каталога?
Так и не дождался помощи, пришлось самому решать, если автор не против, могу выложить для обсуждений и дополнений
Тихо сам с собой веду беседу, дело в том, что обработку эту не стал скачивать, а пользовался предыдущей версией, а там каталог форм был привязан к файловому варианту, теперь все понятно, новый вариант уже открывается по другому
добрый день, не могу скачать … кинь те люди добрые в личку кто может поделиться… плиз…
Было бы хорошо если работало для Украины и выводило две цены на ценник
УТ 10.3.6.8
Версия для УТ
{Форма.Основная(685)}: Деление на 0
ЦенаВалютная=ЦенаРублевая*КурсВалютыВыбран.Кратность/КурсВалютыВыбран.Курс;
Поспешил )
Не заполняются значениями по умолчанию валюта и склад.
Всего лишь )
Подскажите пожалуйста, как установить?
УТ 10.3.11.4
Выбираю Сервис->Внешние печатные формы и обработки->Внешние обработки
далее выбираю файл и выдаёт ошибку «Выбранный файл не является внешней обработкой. Либо, данная обработка не предназначена для запуска в этой конфигурации»
Подскажите пожалуйста, как установить? на
«Управление торговлей», редакция 10.3 (10.3.8.9)
ошибка {Справочник.ВнешниеОбработки.Форма.ФормаЭлемента(189)}: Ошибка при вызове метода контекста (Создать): Ошибка при выполнении файловой операции
«Выбранный файл не является внешней обработкой. Либо, данная обработка не предназначена для запуска в этой конфигурации» 🙁
1С:Предприятие 8.1 (8.1.15.14)
Подскажите пожалуйста, как установить? на
«Управление торговлей», редакция 10.3 (10.3.8.9)
ошибка {Справочник.ВнешниеОбработки.Форма.ФормаЭлемента(189)}: Ошибка при вызове метода контекста (Создать): Ошибка при выполнении файловой операции
«Выбранный файл не является внешней обработкой. Либо, данная обработка не предназначена для запуска в этой конфигурации»
А можно попросить автора поправить обработку под 8.2 Розница ?
Очень хочется ценники нормальные напечатать…
Попробовал запустить в 8.2 УТ 10.3, предварительно сконвертив встроенными средствами 1С.
При попытке добавления номенклатуры, любым способом, выдает ошибку:
{Форма.Основная.Форма(359)}: Значение не является значением объектного типа (КолВо)
НайденнаяСтрока.КолВо = НайденнаяСтрока.КолВо+1;
Как можно поправить ?
У меня в 10.3 буквы вместо шк баркод установлен
(40) надо поставить шрифтeangnivc
(38) В 1С:Розница достаточно развитый механизм печати этикеток, с возможностью из пользовательского интерфейса изменения шаблонов этикеток
Здравствуйте! У меня при попытке загрузить обработку ошибка «Выбранный файл не является внешней обработкой. Либо, данная обработка не предназначена для запуска в этой конфигурации». 1С 8.2 (8.2.13.205) УТ 2.3.3.4. Подскажите,что не так делаю?
(43) Открыть в конфигураторе, переконвертировать и сохранить.
Но под 8.2 KA не работает.
спасибо тебе добрый человек!
Отличная обработка! Попробуем.
Не работает в 10.3. Обидно, хотя в описании написано.
В конфигурации УТП для Укрины обработка не работает 🙁