<?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='\
По сути обертка над ring?
(1) Да
Помоги разобраться.
Получаю ответ. «Выбранный файл не является лицензией или поврежден.»
Запускал на двух компьютерах с Win 10 и Server 2008
Установлен Ring 0.11.4
Что не так?
(3) Проверил у себя — действительно с Ring 0.11.4 и License-Tools 0.7.0, которые идут вместе с 8.3.13.1690 программа не работает.
Могу пока только посоветовать поставить утилиты других версий. Позже попробую найти причину несовместимости.
Напрашивается вопрос. А в какой платформе или интернет ресурсе можно найти версии Ring 0.10.0.1 и версией License 0.11.5.3 ?
(5)
Ошибочка вышла — в описании публикации перепутал местами версии. Правильно так — RIng 0.11.5.3, License 0.10.0.1.
Поставляются эти версии вместе с платформой 8.3.14.1565
В описании к этой платформе написано следующее:
Утилита командной строки ring и модуль license этой утилиты поставлялись в составе дистрибутива «1С:Предприятие», в каталоге ExtDst. Установка утилиты была доступна после установки собственно «1С:Предприятия».
Утилита командной строки ring и модуль license этой утилиты выделены в отдельный программный продукт со своим дистрибутивом — Утилита лицензирования 1С:Предприятия. Дистрибутив доступен для использования на операционных системах Windows 7 и старше и Linux с архитектурами x86 и x86-64.
Архив с дистрибутивом имеет имя вида 1c-enterprise-license-tools-a.b.c+d-os-arch.zip. Архив с дистрибутивом поставляется вместе с дистрибутивом системы «1С:Предприятие».
Размещение установочных файлов утилиты ring и модуля license этой утилиты в каталоге ExtDst больше не выполняется.
а с какими версиями ring и license работает?
(7)
Ring 0.11.5.3, License 0.10.0.1. Поставляются эти версии вместе с платформой 8.3.14.1565
Скоро обновлю публикацию и немного перепишу программу, чтобы её поведение было более логичным.
Думаю вам стоило ознакомиться чуть раньше сhttps://infostart.ru/public/876329/ .
Из ключевых плюсов:
— Открытый код.
— Код на 1С.
— Кроссплатформенность (правда пока не реализована из-за отсутсвия других сервером, но это не проблема доделать в связи с первыми плюсами!).
(9)
Не сомневался, что кто-нибудь оставит здесь ссылку на универсальный монитор) Всё же у моей программы есть один неоспоримый плюс перед этой обработкой — для её работы не требуется лицензия на 1С. В случае, когда системному администратору требуется как можно быстрее переактивировать лицензию на 1С после переустановки операционной системы или апгрейда компьютера, этот нюанс очень важен.
(0) в коде не нашел алгоритм декодирования в сорцах, судя по:
process.StartInfo.FileName = «cmd.exe»;
process.StartInfo.Arguments = «/C ring license list —path «» + folderName + «»» + » —send-statistics «false»»;
не декодер вовсе, а гуй над ринг.
(10) ну это как сапожник без сапог! Если сисадмину нравится юзать кучу скриптом и прог это его выбор!
А можно накидать примеров ситуаций, когда это бывает полезно? Какие задачи можно решить этой утилитой?
Я понял, что она вытаскивает какую-то инфу из файла лицензии, но зачем она?
а может вообще установочный пакет забабахать с нужными ring, license и самой программой?
(14)
Боюсь, распространение LicenseTools отдельно от платформы будет считаться нарушением авторского права 1С. А вообще я думал над тем, чтобы поместить архив с рингом в ресурсы программы, чтобы она работала независимо от того, какая версия ринга установлена в системе.
(16) спасибо, понял. У меня просто не было такого, чтобы совсем всё прос**ли, хотябы рег.анкета или книжка 🙂 а lic@1c.ru вроде оперативное реагировал, на любые вопросы
Всем привет!
Безусловно нужная программа, просто коллеги судят не теми масштабами.
У меня на предприятии 12 серверов, и на каждом очень много лицензий, более 50 штук активных, плюс заблокированные (изменение оборудования) как отделить активные от заблокированных не знаю, файлы лицензий лежат в общей куче, какими пинкодами активировали не знаю, такое наследие мне досталось, надо провести ревизию программных лицензий, думаю эта программа могла бы помочь.
Хотел её протестить на реальных серверах, но к сожалению, скачать её без стартмани нельзя.
(0) Заметил, что программа не распознаёт файлы программных лицензий базовых версий конфигураций/платформы.
На таких файлах выдает: «Выбранный файл не является лицензией или поврежден.»
Однако, на программных лицензиях от Проф версий конфигураций/платформы всё отрабатывает как надо. Так и должно быть?
LicData Decoder 1.4, Версия JRE: 1.8.0_191, Версия RING: 0.11.5-3.
(19) Во время разработки программы не было под рукой базовой лицензии, поэтому отлаживал её только на файлах проф лицензий. Как только попадется клиент с базовой лицензией — выпущу новую версию программы.
(20) Хотел Вам ссылку отправить, на программную лицензию для базовой версии, но через личные сообщения не получилось этого сделать: «Сообщение не отправлено, отложенная группа». Если сообщите координаты, могу выслать программную лицензию от базовой версии.
(21)
Лицензию получил. Ring её не распознаёт, видимо просто не умеет работать с базовыми.
«Выбранный файл не является лицензией или поврежден.» — что с этим делать? В консоли утилита разбирает файл нормально. Лицензии ПРОФ.
(6)
Поставляются эти версии вместе с платформой 8.3.14.1565
Установил платформу 8.3.14.1565 и 8.3.14.1630 ни в одной нет RIng 0.11.5.3, License 0.10.0.1.
(24)
LicenceTools не устанавливается автоматически вместе с платформой, он ставится вручную. Нужно запустить файл 1ce-installer.cmd из папки license-tools, находящейся в дистрибутиве платформы. Далее следовать инструкциям установщика. Если ранее была установлена другая версия ринга, то перед установкой нужно удалить его через панель управления, а потом вручную удалить папку C:Programdata1C1CE.
(23)
Если пришлете файл лицензии, то я посмотрю где ошибка и исправлю её в новой версии утилиты.
Здравствуйте! Маленькое предложение. Прогоняю через Вашу программу *.lic файлы из папки на рабочем столе. Устал постоянно когда выбираю новый файл идти от C:ProgramData1Clicenses к рабочему столу. Предложение: запоминать выбор последнего пути к папке, а не постоянно C:ProgramData1Clicenses. а так пока все норм.
(27)
В следующей версии добавлю возможность выбирать между последней использованной и стандартной папкой.
(28)Ок
(29) Обновил программу до версии 1.5. Теперь по умолчанию будет открываться папка, в которой находилась последняя выбранная лицензия. При необходимости автоматического открытия стандартной папки с лицензиями можно установить соответствующую галку.
(30) Здравствуйте! А не скините обновленную версию проги мне на эл.почту?
(31) Напишите адрес почты в личные сообщения
При открытии обработки кнопка Выбор файла не активна(( Что это может быть?
(34) Версия Ring не соответствует минимальной. Удалите Ring и License через панель управления, после чего вручную удалите папки C:ProgramData1C1CE и C:Program Files1C1CE. Далее скачайте платформу 8.3.14.1565 или новее и установите LicenseTools из её комплекта поставки.
Добрый лень! При попытке вытащить информацию с файла лицензии выдает такое сообщение
C:ProgramData1Clicenses
Файл: 20190717150647.lic
Пин-код: [WARN ] com._1c.license.activator.storage.LicenseStorage
Рег.номер: Пропускаем файл C:ProgramData1Clicenses20190717150647.lic. Ошибка декодирования файла лицензии.
[ERROR ] Неправильный вызов команды (для справки см. «ring help»): Параметр —name может иметь только одно значение. Указаны значения: «[WARN», «]», «com._1c.license.activator.storage.LicenseStorage», «-«, «Пропускаем», «файл», «C:ProgramData1Clicenses20190717150647.lic.», «Ошибка», «декодирования», «файла», «лицензии.».
В чем может быть причина? Лицензия единственная и рабочая, 1С запускается и работает на ней!
В последних платформах 8.3.14 и 8.3.15 в папках ExtDst дистрибутива ring и license-tools не обнаружил. Где их брать?
Установлены 1c-enterprise-ring-0.11.4-1.x86, 1c-enterprise-license-tools-0.7.0-1.x86.
(39)
В последних платформах 8.3.14 и 8.3.15 в папках ExtDst дистрибутива ring и license-tools не обнаружил. Где их брать?
В папке ExtDst эти утилиты больше размешаться не будут. В папке с дистрибутивом платформы есть папка license-tools, в ней нужно найти и запустить файл 1ce-installer.cmd. Перед установкой LicenseTools нужно удалить старые версии Ring и License, а потом вручную почистить папку C:Programdata1C1CE.
(37)
Вижу два варианта — либо используются устаревшие версии Ring и License, либо LicenseTools был установлен поверх них. Попробуй сделать, как написано в (25)
Ошибка при определении внутреннего имени лицензии. Возможные причины:
Файл лицензии поврежден
Файл не является лицензией 1С
В системе присутствуют остатки от предыдущих версий Ring и License
Обновился формат лицензий и текущая версия LicenseTools его не поддерживает.
(16) или покупать USB лицензию..
Очень, очень полезная штучка, спасибо !
помогите пожалуйста, связан ли каким нибудь образом лицензия с файлом конфигурации. дела в том что у нас приобретен 1с для 2 фирмы(2 базы), одинаковые. в 1 базе мы включили возможность изменение конфигурации, не ничего не изменили, теперь надо выключить чтоб автоматически обновлялся. если я с первой базы выгружу файл конфигурации и загружу на 2ую, лиицензии там не поменяются?
(45) Лицензия платформы с конфигурацией никак не связана. Вообще никак.
(46)тогда можно смело туда загрузить?
(47) Можно.
Чтобы поставить базу на поддержку, нужно:
0. Сделать резервную копию базы!
1. Выгрузить файл конфигурации поставщика (конфигурация — поддержка — настройка поддержки — сохранить в файл)
2. Загрузить конфигурацию поставщика из файла (конфигурация — загрузить конфигурацию из файла)
(47) Можете загружать несмело 🙂
Но перед загрузкой нужно безусловно сделать бэкап изменяемой базы, чтобы «потом не было мучительно больно» 🙂
Спасибо всем, загрузил, конфигурации были одинаковые, проблем небыло.
Здравствуйте! Подскажите пожалуйста, а можно ли с помощью данной утилиты не просто вытащить информацию из файла, а к примеру редактировать ее в этом файле? Было бы очень здорово!
Эта утилита — собственность 1С и вы хотите чтоб они позволили вам выдавать лицензии вместо себя (ибо редактирование файла лицензии =выдача новой )? )))))))))))