<?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='\
Падежей в русском и украинском вроде шесть.
А вот в венгерском 126.
Слабо расширение для венгерского сделать? 🙂
Слабо 🙂
(1) Андрей, а ты откуда мадьярский знаешь? 😉
(3) Да я и китайским, как ты знаешь, в совершенстве владею :)))
Минус за «Стоимость регистрации одного рабочего места: 500 грн.».
Как по мне — дороговато.
(5) Не многовато, а дохырища! Минусы не ставлю принципиально, хотя руки чешутся….
(6) А я не смог удержаться, хотя до этого тоже не ставил 🙁
«На 07.11.2007 стоимость исходных текстов под Turbo Delphi либо 1С 7.7 составляет 10’000 грн.»
Имхо звучит как фраза из «Буря в стакане» — когда они торговализь за гравицапу :))
(6)(7) Да пошутил парень.
А 500 грн это скока на деревянные?
100$
(8) Тут пошутил, на проклабе, и еще в десятке мест где выложил?
Не, он вполне серъезно.
Господа если вас не устраивает цена, вы можете приобрести исходнии Padeg.dll (русской библиотеки),
http://www.delphikingdom.com/zip/pd_Docs.zip
цены представлены здесь:
и переделать под украинский язык.
В таком случае себестоимость исходных кодов может быть как ниже так и выше,
это зависит от себестоимости вашего времени на разработку и тестирование.
Продажу исходников я воспринимаю как выход с рынка, ведь что помешает
купившему исходники продавать программу от своего имени?
Объем рынка очень и очень скромный — небольшим фирмам такая штукенция ни к чему.
А организациям с численностью сотрудников от 600 и выше возможно будет интересна,
я считаю, для них эта цена не покажется высокой.
Спасибо за оказанный интерес,
напоминаю, вы можете зарегистрировать сабж бесплатно.
Он благополучно протестирован на списке в 1500 сотрудников.
Ща SoftIce запустю…
Все таки нет предела наглости отдельных личностей…
Товарищ (не нам) Тарасенков занялся плагиатом… Исходники мы ему точно не продавили…
Как один из авторов библиотеки склонения на русском официально уведомляю, что есть версия библиотеки для украинского языка. С некоторыми недоработками (не было среди нас знающего украинский), но зато совершенно бесплатна.
Предлагаю (это самый действенный способ) хорошо знающему украинский язык исходники для портирования, с условием выпуска бесплатной сборки библиотеки для украинского языка. Прощу обращаться ко мне или Гене напрямую или через сайт «Королевства…»http://www.delphikingdom.com/asp/viewitem.asp?catalogid=412
Кстати. Исходники нашей версии были изначально открыты, пока не нашелся один, опять же «не нам» :-), товарищ? который опубликовал их от своего имени, с нашими же коментариями и ошибками…
И наконец… «Не нам» товарищ Тарасенков, случайно не думаете ли вы закупать сало для отправки в Россию и Белорусию на все суммы?
С позволения и по настоянию авторов padeg.dll опубликовал альтернативный вариант украинской сборкиhttp://infostart.ru/profile/8349/projects/803/
Клон первой русской версии. Cыровата, конечно, да и функций маловато, но текущий расклад вынуждает…
Эх, где же вы были, господа, когда мне так нужна была украинская версия?
Ведь на форуме delphikingdom посвященному русской версии библиотеки не единожды встречался вопрос об украинской версии, и ответа на него я там так и не нашел.
В итоге, не найдя достойной библиотеки склонения пришлось написать свою, писал к тому же на 1с, но чтобы как-то окупить расходы и защитить свой труд портировал на Delphi в DLL. Библиотека склонения на русском стала достойным примером для подражания в части экспортируемых функций и OLE. И для того чтобы пользователям русской версии библиотеки было проще использовать мою, ну и конечно, чтобы не писать документацию, интерфейс функций экспорта был выполнен в соответствии с документацией русской версии.
Я считаю насчет наглости и плагиата вы немного погорячились, поскольку ни исходников русской библиотеки ни некой украинской библиотеки я не видел и не использовал, и требую извинений на этот счет.
Насчет бесплатной версии, напоминаю, временно осуществляется бесплатная регистрация.
(16) Ведь на форуме delphikingdom посвященному русской версии библиотеки не единожды встречался вопрос об украинской версии, и ответа на него я там так и не нашел.
В обсуждении вопрос за все время встречался ровно 2 раза: 21-11-2002 и 12-09-2007.
Зато была масса вопросов по русской сборке, вот в этом направлении («где же вы были…») и работали.
В (14) предложен самый разумный вариант развития событий (ИМХО).
> Эх, где же вы были, господа, когда мне так нужна была украинская версия?
Не единожды отвечали лично (и я, и Гена), что не знаем мы украинского. Однажды у нас брали исходники с той же целью добавления украинского, но тот человек так и не довел работу до конца (это точно были не вы).
На форуме в «Королевстве…», если помните, были вопросы про *’nix версию. Так вот, к нам обратились с просьбой предоставить исходники, дали, в обмен на будущие. И сейчас активно переводят под Unix на С. И сейчас дадим исходники с условием сохранения условий лицензии как и для русского языка (вкратце: платное только коммерческое использование).
Готов принести свои изменения если библиотека действительно была портирована и унифицирован интерфейс.
Однако ваших исходников мы тоже не видели.
(18) Я мужика по фамилии Кличко как склонять на украинском?
Кличке, Кличком, Кличку? :)))))
Идея хорошая. Но есть недостатки. Довольно весомые недостатки, из-за которых жалко тратить деньги на приобретение коммерческой версии.
Хм… А чем украинские от русских отличаются? Я помнится такое писал средствами языка за час-полтора…
(21) Не могу объективно судить об отличиях, так как для русского языка не писал.
Пардон. Я, кажется, не совсем туда написал свое мнение.
Отзыв (20) относился к предыдущей публикации на эту тему, ссылку почему-то найти не могу.
Подскажите пожалуйста как использовать это компоненту в 1С 8.1 ?
То что я пробовал :
1.
Показать полностью
-> "Исключение"…
2.
Показать полностью
-> "Вываливается" 1С, хотя пару раз работало, что наталкивает на мысль "должно работать" …
В случае успешной работы компоненты в 1С 8.1, рассматривается вариант покупки.
1. Регистрируете COM объект: regsvr32.exe <Путь>Padeg_ua.dll
2. Код подключения:
Показать полностью
Сколько будет стоить полная версия padeg_ua.dll под Delphi и как ее можно приобрести??? Спасибо
Неправильно склоняет:
GetFullAppointmentPadeg(«Голова правління»,»»,3) выдаёт «головій правлінні», а надо «голові правлиння».
Или это ограничение демоверсии?
Всё остальное по должностям вроде верно.
Тест
Выложена полнофункциональная версия с исходными кодами, других исправлений и изменений нет.
padeg_ua.dll из исходников отличается по размеру с той, что в примерах
почему-то не склоняет в родительном и давательном падежах, оставляет так как есть 😥
с остальными падежами все нормально
почему-то не склоняет в родительном и давательном падежах, оставляет так как есть
с остальными падежами все нормально
аналогичная ситуация
(32) Наверное потому, что давательного падежа нету.
Есть дательный. И извратительный.
упс… дательном 😳
Извиняйте, люди добрые, поправил, в дательном и родительном теперь склоняет
Спасибо полезную штуковину, поставил «плюс».
Нужно доработать склонение фамилий — существительных с чередованием і — о: Чорновіл — Чорновола, Чорноволу
Добрый день. А есть ли библиотека с функциями склонения украинских фамилий, имен… без КОМ-сервера как это сделано в русской версии?
Ввиду отсутствия соответствующих прав невозможна регистрация библиотеки. Есть ли какое-нибудь решение?
> А есть ли библиотека с функциями склонения украинских фамилий, имен… без КОМ-сервера как это сделано в русской версии?
Это она и есть =) работает и без КОМ-сервера, смотрите пример вызова из Дельфи
Специально зарегился, чтоб сказать большое спасибо. Очень помогло при склонении имен в рассылках из excel.
(1) vip, в украинском на самом деле не 6 падежей, а 7.
Есть еще такой 7-й хитрый падеж — «кличний» называется.:)
Обнаружил неправильное склонение фамилии «Палій».
Сейчас склоняет так:
1 Палій Олексій Іванович
2 Палього Олексія Івановича
3 Пальому Олексію Івановичу
4 Палого Олексія Івановича
5 Палім Олексієм Івановичем
6 Пальому Олексієві Івановичеві
7 Палій Олексію Івановиче
Нужно так:
Називний Палій Олексій Іванович
Родовий Палія Олексія Івановича
Давальний Палію Олексію Івановичу
Знахідний Палія Олексія Івановича
Орудний Палієм Олексієм Івановичем
Місцевий Палії Олексії Івановичі
Кличний Палію Олексію Івановиче
Можно ли это как-то исправить?
бедные венгры 🙂 как они так живут?
(42) Spacer, можете внести в словарь исключений — файл «Padeg_ua.dic»
(44) А как это сделать? Я смотрел описание словаря на сайте компоненты padeg.dll.
Там написано что в файле словаря должно быть 16 секций.
Перепробовал разные варианты, но ничего не помогло.
Спасибо. Пока работает как нужно.
Немного инфы о поключении:
1. Регистрируем компоненту
2. Создаем COM
3. Добавляем dll в созданный COM.
4. Предоставляем доступ пользователю к COM
5. Пользуемся.
не получилось обработать файл исключений 🙁Получилось. Нужно вызвать функцию:
UpdateDictionary.
При склонении фамилий на -ок не происходит выпадения гласной (Костючок— Костючока вместо Костючка). Список исключений вроде не решает
За працю ПЛЮС