Обсуждение:Проверка недействительных паспортов по базе ФМС… быстро.
5 (1)
Обсуждение:Проверка недействительных паспортов по базе ФМС… быстро. ( Обсуждение примера 25.09.2014 16:42 )
5(1)Проверка недействительных паспортов по базе ФМС… быстро.
Количество паспортов в стоп листе удостоверений личности, который мы ответственно пополняли с файлов ЦБ и впоследствии у прочих поставщиков – около 60 тысяч.
Количество недействительных паспортов, которые можно скачать у ФМС по ссылке http://services.fms.gov.ru/info-service.htm?sid=2000 – около 90 миллионов.
Осознав разницу, пришли к выводу, что проверки паспортов клиентов, которые мы сейчас делаем, весьма не полные.
Конвертировали файл из ФМС в формат Pervasive, чтобы до данных был легкий и быстрый доступ из RSL, написали процедуры проверки. Сделали где нужно проверку. Выполняется полная проверка около минуты, хотя у нас ооочень много счетов.
Предлагаю в примере макросы с процедурами, которые можно протестировать как есть, и модифицировать под себя.
При подстройке макросов учитывайте местоположение файла psp_bad.dbt. Рекомендуется вынести этот файл из dbfile и даже корневого каталога RSBANK, поскольку реальный файл со всеми паспортами будет состоять из 4-х частей и занимать почти 8 гигов. Зачем его включать в резервное копирование вместе с боевыми данными RS?
Полный файл psp_bad.dbt я заархивировал и положил на https://yadi.sk/d/SNI8KOG6bexVH
Данные конвертированы из одного формата в другой элементарным способом, но в связи с огромным их количеством это занимает довольно много времени (конвертор работает весь день). Поэтому рекомендую воспользоваться уже готовыми файлами.
Посмотреть пример
>> ОтветитьДорогой друг база паспортов по твоей ссылке меняется раз в сутки (добавляется 5-6 тысяч документов) ( deusex 26.09.2014 09:11 )
0(0)По этому то что ты выложил уже устарело безнадежно. Импорт справочника должен идти ежедневно,
Pervasiv не дает приемлимой скорости работы, я даже тему завел https://isupport.softlab.ru/Portal/InterSupport/topic.asp?id=341995&FilterId=1523&Which=a&SortOrder=0
>> ОтветитьИнтересно было бы посмотреть... НО Тема с ID 341995 не найдена. Возможно, она непублична или удалена ( sergksa 26.09.2014 09:46 )
0(0)Положите пожалуйста инфу. или можно мне на мыло.
>> ОтветитьМожет вот так доступно: ( deusex 26.09.2014 10:39 )
0(0)Что то даже реализовали, только непонятно что
https://isupport.softlab.ru/Portal/InterSupport/BugList/scr.asp?id=P2N170101
Со стороны клиента поступил вопрос: Есть файл ФМС http://www.fms.gov.ru/upload/expired-passports/list_of_expired_passports.csv.bz2 с базой недействительных паспортов. Хотели загрузить в базу РС ниже приведенным макросом. --------------------------- Поля файла badpass.dbt - ----T-----------------------T-------T-----T-----T--- Ном¦ Имя поля ¦ Тип ¦Длина¦Точка¦ ----+-----------------------+-------+-----+-----+--- 10 Seria STRING 5 0 20 Number STRING 7 0 -------------------------- Ключи файла badpass.dbt --------- ----T--------------------T--T----------T------T-----T--T---- Ном¦Имя поля ¦PK¦Флаги ¦Тип ¦Длина¦NV¦ При ----+--------------------+--+----------+------+-----+--+---- 10 Seria DM S E ZSTRING 5 0 20 Number DM E ZSTRING 7 0 var pass=TBFile("badpass.dbt","W",0,RIK+"badpass.dbt",RIK+"rik.def"); if (open(in,"..\\Import\\list_of_expired_passports.csv")==false) exit(0); end; next(in); while (next(in)) cnt=cnt+1; if (cnt>100000) message( pass.NRecords() ); cnt=0; end; u_splitstr ( Arr , in.Str , ","); pass.rec.Seria = Arr[0]; pass.rec.Number = Arr[1]; if (pass.GetEq()==false) pass.rec.Seria = Arr[0]; pass.rec.Number = Arr[1]; pass.Insert(); end; end; За сутки загрузилось всего 31 миллион записей (когда в файле примерно 100 млн), и при этом добавление каждой следующей записи идет гораздо медленнее предыдущей. Вопрос: как это сделать средствами Pervasive минимизировав время загрузки? Или есть какое-то другое решение? Обоснование Обоснования нет Дополнительная информация Тип запроса:Вопрос разработке Статус запроса:Реализовано Найдено в: 5.50.003.048 Дата создания: 17.09.2014 Дата закрытия: 24.09.2014 Модуль:МВОДБ
>> ОтветитьИ кстати база идет в UTF8 как ее в OEM Конвертнуть? (А то по докам неохота лазить) ( deusex 26.09.2014 10:47 )
0(0)Not specified
>> ОтветитьВсе нашел FromUTF8 только не понял что надо подключить, подключил все работает. ( deusex 26.09.2014 11:11 )
0(0)import txmlelem, format, "bdcommon.mac", BankInter, ClnInter, ElExchangeInter;
>> Ответить
Да.. база устарела.. и не стала недостоверной на 0.15% ( sergksa 26.09.2014 11:57 )
0(0)Сравнил 2 файла скаченных с сайта ФМС с разницей в 5 дней.
1. в базу добавилось приблизительно 130 тысяч записей
2. из базы удалили приблизительно 1.5 тысячи записей.
3. всего в базе паспортов около 90 миллионов записей.
Объем изменившихся сведений составил ~0.0015 часть…
Думаю это вполне допустимая погрешность для сверки полной базы клиентов.
Проверку при заведении свежего паспорта клиента лучше проводить дополнительно с использованием веб сервиса ФМС.
Работаю над оптимизацией конвертирования файлов. Тогда можно было бы обновляться каждый день. И чтобы время на конвертирование в Pervasive файл было хотя бы полчаса без отключения пользователя от базы.
>> ОтветитьНаш финмон такой % считает ну О-О-О-чень большим ( oks2001 26.09.2014 14:55 )
0(0)Поэтому мы конвертим базу раз в сутки с помощью средств sql, и проверки в RS идут с помощью запросов sql. Уже пару месяцев так работаем (при этом при проверке выдает дату актуализации базы)
>> ОтветитьДелитесь господа, делитесь! ( Волшебник 26.09.2014 15:12 )
0(0)Господь завещал делиться...
У нас пока новых на сайте ФМС проверяют а масштабной проверки и не делали еще вроде по этой базе...
>> ОтветитьИ мы используем MS SQL аналогичным образом для этой задачи. ( sergksa 26.09.2014 15:12 )
0(0)Но поскольку хотел пример проверки положить более простым для тестирования, сделал его с файлами формата pervasive.
Много коллег знаю, которые как то сторонятся использования MS SQL и других СУБД из под RSBANK.
Одно другому не мешает.
Кстати помимо этой задачи, мы активно используем "обратный" доступ к данным RSBank из MS SQL (SQL шлюз не путать с PSQL).
Выигрыш по скорости обработки сложных selet-ов ооочень большой. :)
Ну и связные запросы (отчеты) с другими программами, субд которых на sql-серверах (Ibank,АСВК,Золотой шар и т.д.) делать легко...
>> Ответить
Самое страшное что загрузка файла кладет базу на лопатки 100% ( deusex 26.09.2014 11:30 )
0(0)Not specified
>> ОтветитьВ примере, который мы обсуждаем база готовая к использованию. ( sergksa 26.09.2014 12:00 )
0(0)Процесс конвертирования это уже отдельная тема. Но не безнадежная, дорогой друг.
>> Ответить
а что мешает для импорта записей импользовать butil? ( Vic_Tomsk 27.09.2014 10:58 )
0(0)только что проверил:
- адаптация csv файла для загрузки через butil на RSL - 12-15 минут;
- загрузка butil'ом - 3 часа 10 минут - легко выполнится за ночь, пробовал на тестовом сервере, он слабее рабочего (2хXeon 2ГГц, 8Гб ОЗУ) + я параллельно обновлял тестовую сборку РСа + строил баланс и прочие отчеты, возможно совсем без нагрузки это время уменьшится.
При выполнении импорта заметно, что оптимально скорость записи идет на 20-25 миллионах записей, т.е. если справочник побить на 10 файлов в каждом в среднем будет 10-15 миллионов записей, что позволит загрузить их в БД с максимальной скоростью.
Внешняя БД тоже выход, но не мой вариант - т.к. это лицензии + железо, регламент по настройке, обновлению, модернизации, регламентных проверках и прочих приказах/положениях/назначениях, требования ИБ и т.д. - я ее только "описывать" буду с полгода, поэтому все должно быть в Рсбанке, где есть штатная БД. А вот вынести справочник за папку DbFile - отличная идея!
>> Ответитьеще немного покопался... ( Vic_Tomsk 29.09.2014 08:19 )
0(0)RSL тут не вариант, он затыкается уже после 20 млн. записей - причем разницы нет - 1 таблица или их несколько. ntdbsmgr - сжирает всю память.
Попробовал следующее - разбил файл на несколько (по сериям), получил 10 txt-файлов (серии начинающиеся на 0, на 1, на 2... на 9).
Загрузка через butil с рестартом первасива (чтобы кэш сбросывать) - за 1,5 часа загрузил все файлы.
Разбивка файла занимается тоже 1,5 часа, стоит оптимизировать эту процедуру (я делал на RSL) и можно втиснуть всю процедуру в 2 часа.
>> ОтветитьВобщем загрузка в pervasiv без переделок идет 5 часов, далее проверяем обновление. ( deusex 29.09.2014 09:39 )
0(0)Делить это конечно хорошо, но ежедневно это делать заколебешься и от разделение нифига не зависит. Памяти на серваке 64 гига по этому проблем нет,
и пиков по памяти нет.
Самая большая проблемма 200 запросов в МИЛИСЕКУНДУ к базе, вот здесь первасив пасует. Попробуем разрулить вставкой Sleep после обращения.
>> Ответить64 гига памяти рулят :) ( Vic_Tomsk 29.09.2014 09:51 )
0(0)Not specified
>> Ответить64 гига, это только под виртуальную машину РС, так на сервере 128 ;) ( deusex 29.09.2014 11:43 )
0(0)Сервер совмещенный Terminal + StandAlone , 250 пользователей, загрузка гдето 30%, памяти занято гиг 20 всего.
>> Ответитья сделал базу паспортов на мускуле - загрузка идет час. ( p2p 02.10.2014 18:06 )
0(0)сначала тож 4 часа было, потом поднастроил - и час ))
проверяют через веб интерфейс - а там еще пишется кто и когда проверял (вроде как требования есть хранить обращения по проверке)
кстате, база такая большая - потому что хранится инфа по просроченным паспортам.
каждый день в 7 утра запускается скрипт обновления базы недействительных паспортов - за час обновляется.
хорошо что оперкасса у нас на похапе с мускулом - сначала в ней сделал проверку - потом всем дал доступ ))
>> Ответить
Требуется подсказка ( shraydy 17.10.2014 11:00 )
0(0)Здравствуйте. Объясните, пожалуйста, вот этот пункт адаптация csv файла для загрузки через butil на RSL. Что надо сделать с исходным файлом, чтобы его понял butil?
>> ОтветитьВ случае с предложенной структурой в файле psp_bad.def ( sergksa 17.10.2014 11:21 )
0(0)нужно преобразовать строки файла к виду:
11,0597035028
11,6005071836
11,0702849854
11,9200132873
11,1702824620
11,3204481101
11,2503730523
... и т.д.
там в примере скриптик лежит...
task_update.vbs (Запускать> cscript task_update.vbs)
который как раз это делает.. но существует конечно много способов, в том числе и на RSL можно макросом
>> Ответить
Обновил пример, Добавил конвертор ( sergksa 02.10.2014 18:26 )
2(1)Спасибо за советы Vic_Tomsk
Нарисовал сценарий обновления через Butil, включил пример.
На отдельной, не самой скоростной рабочей станции обновлялся 4 часа, для интересующихся оставил лог.
Самый скоростной способ получения актуального DBT Файла, это пока все равно с использованием, как промежуточного звена MS SQL
C момента закачки файла укладываюсь в 30 минут.
>> ОтветитьЭто всё замечательно. Но вот у нас ЦБ требует доказательств того, что мы паспортр проверяли. ( Pov 08.10.2014 15:09 )
0(0)Сейчас операционисты распечатывают страничку с сайта ФМС. Дурдом, конечно, но вот требуют и всё тут. Кто как эту проблему решает?
>> Ответитьну распечатывать эт совсем уже - сделали б хотяб скриншоты ( p2p 08.10.2014 16:01 )
0(0)ставите яндекс диск + горячие клавиши.
я так планировал поначалу.
но потом сделал на похапе + mysql + апач.
обновляется за час.
сохраняет все обращения в лог.
этот лог смотрит кфмщик.
вот сейчас думаю надо ли или нет - сделать из рсбанка переход в браузер с введенными данными
>> ОтветитьЕсть варианты и быстрее ( Банкир07 08.10.2014 17:08 )
0(0)MSSQL грузит новые записи (до 90млн.)в пределах 10-20 минут. В зависимости от того какая машина.
Согласен если скажете что слишком громоздко получается разворачивать.
А далее можно простенький тонкий клиент или вызов уже какого ни будь exe или bat из АБС.
>> Ответитьвобщем нужно теперь что рс мог дернуть браузер - чтоб там и проверился паспорт ( p2p 16.10.2014 18:37 )
0(0)https://isupport.softlab.ru/Forum/ZoneForum/topic.asp?Forum=1&ID=55978&CurM=55978
чото не могу придумать как можно дернуть браузер ((
а насчет 90 милионов записей - потому что становятся недействительными по достижению 20 и 45 лет.
сейчас в зоне риска - 1994 и 1969 годы рождения ))
>> Ответитьможно так ( sergksa 17.10.2014 09:16 )
0(0)import rsexts;
VAR URL="http://rambler.ru";
callRemoteRsl("remote.mac","run","cmd.exe"," /c start "+url);
//remote.mac нужно положить в папку term трехзвенки можно даже пустым..
>> Ответитьчот не получается ((ошибка ( p2p 17.10.2014 10:14 )
0(0)╔════════════════════════════════════╗ ║ Error: ║ ║ невозможно открыть файл remote.mac ║ ╚════════════════════════════════════╝
>> ОтветитьПоложите remote.mac в папку term трехзвенки с которой пользователь заходит в рсбанк ( sergksa 17.10.2014 10:33 )
0(0)или возможно в папку term\mac если на нее настроен файл в терминале term\RSEXTT.INI
c пустым remote.mac у меня проходит... проверял...
>> Ответитьо! спасиб! положил - заработало )) ( p2p 17.10.2014 11:29 )
0(0)теперь можно по номеру операциониста открывать tube8.com ))
>> Ответитьа вот как сделать чтоб оно в фоне запускалось или свернутым? ( p2p 22.10.2014 12:31 )
0(0)и как амперсанд экранировать в урле?
>> Ответить
Закон что дышло куда повернеш туда и вышло. ( deusex 08.10.2014 17:53 )
0(0)Читаем внимательно:
2.2. Все документы, позволяющие идентифицировать клиента, а также установить и идентифицировать выгодоприобретателя, должны быть действительными на дату их предъявления.
Для проверки действительности паспорта физического лица, являющегося гражданином Российской Федерации,
[b][i]кредитная организация использует информационный сервис "Проверка действительности паспорта гражданина Российской Федерации,
удостоверяющего личность гражданина Российской Федерации на территории Российской Федерации"
на официальном сайте Федеральной миграционной службы в сети "Интернет"
Так вот на момент написания закона, сервис действительно назывался "Проверка действительности паспорта гражданина Российской Федерации".
Сейчас такого пункта меню уже нет, а вместо него "ПРОВЕРКА ПО СПИСКУ НЕДЕЙСТВИТЕЛЬНЫХ РОССИЙСКИХ ПАСПОРТОВ" и рядом "СПИСОК НЕДЕЙСТВИТЕЛЬНЫХ РОССИЙСКИХ ПАСПОРТОВ",
так что исполнить закон вы уже не можете, в виду отсутствия сервиса. А использование новых пунктов незаконно по этому что своя проверка что на сайте пофигу.
Сделайте журналирование с временем и датой, и этого хватит.
Требование проверки на сайте незаконно в ввиду отсутствия требуемого сервиса на сайте и все.
>> ОтветитьАга ( Волшебник 14.10.2014 12:54 )
0(0)Требование проверки на сайте незаконно в ввиду отсутствия требуемого сервиса на сайте и все.
Вы это потом проверяющим скажите, и их ответ не забудьте здесь выложить...
:)
>> ОтветитьЕсть рекомендации ЦБ и по нему свобода выбора ( Банкир07 17.10.2014 15:25 )
0(0)По всем этим вопросам, а именно правовым можно просто прочитать ответ от 27.05.2014 № 12-1-5/1125
Его еще территориальные органы рассылали для ознакомления.
По нему конечно не будет поблажки в случае нарушений со стороны Банка, но и обезопасите себя от прямого нарушения Закона.
Так что с предыдущим сообщением я примерно согласен.
>> Ответить
Делюсь, и прошу потестировть ( olegbarsky 20.10.2014 10:37 )
0(0)На моей рабочей машине за 7 минут подготавливается база, которая довольно шустро позволяет проверять паспорта.
Идея следующая: все паспорта доводим до строк длинной в 10 символов (4+6), сортируем и сохраняем в файл с нормальной кодировкой =). В результате получается база с возможностью быстрого поиска.
В архиве:
"start.bat" - скачивает, распаковывает, сортирует и подкидывает базу в доступное RS место. Его ставим в планировщик и запускаем каждую ночь. Строка с подкидыванием в нужное место закомментирована, подправьте под себя.
"curl.exe" - консольная программа для скачивания файла с сайта
"bzip2.exe" - разархиватор
"import_cons.exe" - программа написанная на delphi для сортировки файла
"pasp.mac" - макрос для проверки паспорта. В нём нужно поправить путь к файлу данных. На вход подаются серия и номер паспорта, выдаёт True если паспорт найден в базе.
https://yadi.sk/d/zUmn_0Gmc9U5Y
>> Ответитьнекомллект. ( sergksa 20.10.2014 11:23 )
0(0)где взять import "..\\tcb\\mac\\tcbutil.mac"; ?
>> ОтветитьПросто удалить строчку. Забыл. ( olegbarsky 20.10.2014 11:28 )
0(0)Not specified
>> ОтветитьПрикольно ( sergksa 20.10.2014 11:50 )
0(0)Мне лично очень понравилось.
файлик отсортирован как минисубд... И работает и быстро!!!
единственно, что чуть пугает, это
"import_cons.exe" - программа написанная на delphi для сортировки файла
ну не серьезно как то... нужен исходник, да еще и компилятор...
по крайней мере чтобы было безопасно использовать.
другое дело макросом на RSL это сделать, интересно было бы алгоритм посмотреть..
а совсем прикольно, лично для меня, это на скрипте написать...
Заодно вот Скриптик.vbs для скачивания файла по ссылке.
Dim sLink1, sFileName1 sLink1 = "http://www.fms.gov.ru/upload/expired-passports/list_of_expired_passports.csv.bz2" sFileName1 = "list_of_expired_passports.csv.bz2" Dim Shell Set Shell = CreateObject("WScript.Shell") ' Shell.Run ("RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 255") call Shell.run ("cmd.exe /c del ""%userprofile%\AppData\Local\Temporary Internet Files\content.ie5\*"" /F /S /Q" , 0, True ) 'wscript.quit URLGet sLink1, sFileName1 ' WScript.Sleep 100 Function URLGet(URL, SaveAs) URL = Replace(URL,"\","/") FileName = SaveAs Set XMLHTTP = CreateObject("Microsoft.XMLHTTP") XMLHTTP.Open "GET",URL,"False" XMLHTTP.Send if XMLHTTP.statustext = "OK" then URLGet = "OK" Set ADOStream = CreateObject("ADODB.Stream") ADOStream.type = 1 ADOStream.Open ADOStream.Write XMLHTTP.responseBody Set fso = WScript.CreateObject("Scripting.FileSystemObject") if fso.FileExists(FileName) then fso.DeleteFile(FileName) ADOStream.SaveToFile FileName, 2 ADOStream.Close Set ADOStream = Nothing end if Set XMLHTTP = Nothing WScript.echo date() & " " & time() & " скачан файл " & saveAS & " По ссылке-> " & URL End Function
>> ОтветитьСредствами RSL думал конвертор написать, ( olegbarsky 20.10.2014 11:57 )
0(0)Средствами RSL думал конвертор написать, но не нашел простого способа прочитать UTF-8, в котором исходная база.
Исходник даю. В принципе можно сделать самому, главное идея.
При конвертации была проблема с нехваткой памяти, для этого большая часть сортируется как числа.
program import_cons; {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils, System.Generics.Collections; var f, b, err, w: TextFile; s: string; c, cs, c_all: Integer; ser, num: Int64; serStr, numStr: string; arr: array of Int64; arrStr: array of String; isNum: Boolean; function addSp (aStr: string; aNum: integer): string; begin Result:=aStr; while (Length(Result)<aNum) do Result:=' '+Result; end; begin try if ParamCount=1 then begin c:=0; cs:=0; c_all:=0; AssignFile(f, ParamStr(1), 65001); Reset(f); AssignFile(err, ParamStr(1)+'.err'); Rewrite(err); // AssignFile(w, ParamStr(1)+'.dos', 866); // Rewrite(w); readln(f, s); // Пропустим заголовок repeat readln(f, s); // Writeln(w, s); Inc(c_all); if ((Length(s)<=11) and (pos(',', s)>0)) then begin serStr:=copy(s, 1, pos(',', s)-1); numStr:=copy(s, pos(',', s)+1); if ((Length(serStr)<>4) or (Length(numStr)<>6)) then begin isNum:=False end else begin try ser:=StrToInt64(serStr); num:=StrToInt64(numStr); isNum:=True; except isNum:=False; end; end; if (isNum) then begin if ((ser>=0) and (ser<=9999) and (num>=0) and (num<=999999)) then begin SetLength(arr, c+1); arr[c]:=ser*1000000+num; Inc(c); end else Writeln(err, s); end else begin if ((Length(serStr)<5) and (Length(numStr)<7)) then begin SetLength(arrStr, cs+1); arrStr[cs]:=addSp(serStr, 4)+addSp(numStr, 6); Inc(cs); end else Writeln(err, s); end; end else Writeln(err, s); // if (c_all mod 1000000=0) then // begin // Writeln('Обработано записей: '+inttostr(c_all)); // end; until (Eof(f)); CloseFile(f); CloseFile(err); // CloseFile(w); writeln('Загрузили данные из файла'); TArray.Sort<int64>(arr); TArray.Sort<string>(arrStr); writeln('Отсортировали'); AssignFile(b, ParamStr(1)+'.dat', 866); Rewrite(b); c:=Low(arr); cs:=Low(arrStr); while ((c<=High(arr)) or (cs<=High(arrStr))) do begin if (c>High(arr)) then begin Write(b, arrStr[cs]); Inc(cs); Continue; end; s:=inttostr(arr[c]); while (Length(s)<10) do s:='0'+s; if (cs>High(arrStr)) then begin Write(b, s); Inc(c); Continue; end; if (arrStr[cs]<s) then begin Write(b, arrStr[cs]); Inc(cs); end else begin Write(b, s); Inc(c); end; end; CloseFile(b); writeln('Сохранили в файл'); end; { TODO -oUser -cConsole Main : Insert code here } except on E: Exception do Writeln(E.ClassName, ': ', E.Message); end; end.
>> Ответить
У нас переформатированный текстовый файл грузится в RS-Pervasive за 1 секунду :) ( tema 21.11.2014 16:57 )
0(0)Not specified
>> Ответитьда лана - 90 миллионов записей за секунду??? ( p2p 21.11.2014 17:02 )
0(0)См. пример. После переформатирования файл подсыхает до ~10тыс записей ( tema 21.11.2014 17:12 )
0(0)Not specified
>> Ответить
И где теперь базу брать? Или только через СМЕВ теперь проверять? ( deusex 03.07.2015 16:55 )
0(0)Not specified
>> ОтветитьТам же где и раньше ( tema 03.07.2015 17:37 )
0(0)http://www.fms.gov.ru/upload/expired-passports/list_of_expired_passports.csv.bz2
А ФМС уже отдаётся банкам по СМЭВу? Простите невежество, но на новом месте работы меня к смыву не подпускают.
>> Ответить
База ФМС ( happy_pride 12.07.2015 18:36 )
5(1)С начала 07.15 года на сайте ФМС тех. работы проводят, проверка паспортов не действительна. Подскажите чайнику как проверить сейчас паспорт? есть может оффлайн база свежая , хотя бы на начало лета. Заранее спасибо!
>> Ответитьтам же ( sergksa 13.07.2015 09:17 )
0(0)http://www.fms.gov.ru/upload/expired-passports/list_of_expired_passports.csv.bz2
у мня по логам видно, что файл не менялся с 03-07-2015
>> ОтветитьБаза ФМС ( happy_pride 13.07.2015 10:17 )
0(0)Спасибо! Подскажите еще чем открыть такой объемный файл? Кроме Excel есть варианты какие то? Чтобы файл не разбивать на маленькие части.
>> Ответитьпосмотри на эту тему. ( sergksa 13.07.2015 10:55 )
0(0)https://isupport.softlab.ru/forum/ZoneForum/topic.asp?Forum=7&SubForum=15&ID=56038
я в обсуждении этого примера, тоже активно участвовал.
смысл в том, что если файл разархивировать, потом отсортировать, то его можно использовать как поисковый, хотя он и текстовый.
и через RSL проверять паспорта. (там милисекунды на проверку 1 паспорта уходит)
>> ОтветитьБаза ФМС ( happy_pride 13.07.2015 11:29 )
5(1)1. Сортировку в Excel делать?
2. И что такое RLS и как им пользоваться.
Извиняюсь за идиотские вопросы, просто не сталкивался с данной ситуацией, но тут возникла необходимость огромная. Спасибо за понимание.
Если не затруднит разъяснить все как к чему , напишите в ВК. https://vk.com/happy_pride . Буду очень признателен.
>> ОтветитьRSL - ЯП ( p2p 13.07.2015 12:08 )
0(0)Not specified
>> ОтветитьФМС ( happy_pride 13.07.2015 12:34 )
0(0)спасибо и на этом)
>> ОтветитьХэппи прайд - вы серьезно? ( Волшебник 04.08.2015 11:10 )
0(0)