Читаем CSV...
Читаем CSV...
Это так - посмеятся...
Есть спецификация CSV и есть договоренность об том, что клиент будет поставлять данные в CSV -файлах.
У мелкомягких в Висуал Васике есть CSV-реадер.
Там, конечно, мелкомягкий вариант, но основную работу по чтению/нарезке и распаковке полей он делает.
Остальное уже можно подкрутить ручками...
Теперь основные проблемные моменты:
1. Вместо CSV-файла присылается Excel-файл.
Простенько и со вкусом - отредактировали в ехцеле, кликнули - отправить... ну а на нашей стороне надо разбираться - ексел то его открывает без проблем, а вот реадер - обламывается...
Починить на нашей стороне - можно, но довольно неприятно. Неприятность в основном в том, что получаются два разных формата одного документа и оба надо суппортить.
Не чиню - оператор запрашивает файл в правильном формате.
2. Количество запятых в заголовке не соответствует количеству запятых в данных.
Ну это понятное дело - тамошний прогер спецификацию на CSV в глаза не видел, но будет доказывать что его код работает правильно.
Починить тамошнего прогера - нереально. Реадер мелкомягких - работает, но количество возвращаемых полей не контролируется.
Так что на нашей стороне код адаптируется под чтение данных с разным количеством полей.
3. Второй заголовок в теле документа.
Выглядит так, что кто-то настраивал репорт и установил постраничный режим.
Вот так - по-странично - и выплевываются данные в файлик. С заголовками на каждой странице... но в сплошном документе,
Реадер мелкомягких вполне нормально читает второй заголовок... как строку данных.
Снова адаптируется код на нашей стороне.
4. Количество запятых в первом и последующем заголовках не совпадает.
Ну это такой пустячек... правда прогер клиента слегка подвисает от вопроса почему заголовки не совпадают, но это его не подвигает прочесть спецификацию.
Так же как и 3. - решается у нас по месту.
5. Пустые строки.
Обычно - в конце файла. Но может быть и в начеле, и в средине, Просто кто-то просматривал/правил файл и по случаю в пару-тройку раз нажал Ентер.
Не помню как реагирует мелкомягкий реадер - вроде возвращает строку с одним полем - но данных в любом случае там нет.
Опять - чинится у меня.
6. Куча строк без данных в документе.
Как это можно получить предстваляю плохо. Выглядит - нормально - строка с правильным - т.е. -1/+2 - количеством запятых.
Никаких данных между запятыми не наблюдается. Просто строка из запятых.
Ужас данной ситуации в том, что нашего оператора невозможно обучить распознаванию ситуации - в Екселе все выглядит прилично, никаких буковок на месте цифирек не имеется.
Но, как обычно, чинится на нашей стороне.
Можно, конечно и плакать над уровнем квалификации используемых прогеров, но... Я - не плачу, Я никогда не плачу, есть у меня другие интересы...
А вообще - интересует - Что еще можно сделать неправильно в экспорте данных в CSV-формате?
Я бы переписал реадер и позабыл об проблемах...
Что еще можно сделать неправильно в экспорте данных в CSV-формате?
Все.
Я бы переписал реадер и позабыл об проблемах...
Так перепиши и забудь.
Я читаю ексельные файлы в R/Origin (и поточно, и одиночными файлами, и с простой и со сложной структурой), если в файле проблема, затрудняющая его автоматическое прочтение - ставлю на уши того,... предметно беседую с тем, кто ответственен за генерацию этого файла(-ов). Уже пару лет как все проблемы с обменом данными прекратились после поиска взаимоприемлемого решения. ИМХО, нельзя предусмотреть все возможные глюки в файлах данных, если нет достаточной культуры их генерации. Если хоть где-то процесс ввода данных неавтоматизирован или не загнан в шаблоны с валидацией - все, пиши пропало. Фантазия людская границ не знает - иногда при анализе данных приходится сначала
устранять ошибки, ну, например, фамилию оператора вводили 13ю (!!) разными способами, а мне как раз надо смотреть, кто из операторов чаще всего косячил за последние месяцы. Объяснил, норот понял, сделали табличку операторов, автоматический выбор по логину и все. А монстрить высокоинтеллектуальный ридер, ИМХО, не стоит затраченных усилий. Проще договориться о темплейтах и валидации, сделать качественную "морду" для ввода данных. Но, конечно, вольному воля. Безумству храбрых поем мы песню... (с)
ЗЫ. Добавлю - можешь глянуть, как имплементировано чтение xls/xlsx в R (исходники функций всегда доступны). Не уверен, что это сделает твою жизнь легче, но с чем черт не шутит, вдруг наткнешься на какие-то идеи. Код там вполне понятный, сильно голову ломать не надо. ИМХО, конечно. Впрочем, это я так, для
очистки совести. Понимаю, что желания лезть в малознакомый код особо не возникнет.
Так перепиши и забудь.
------
Для этого надо собрать все возможные ошибки.
Бо, править читалку под каждый баг Я могу и сейчас...
предметно беседую с тем, кто ответственен за генерацию
-----
Мне сие не разрешено.
фамилию оператора вводили 13ю (!!) разными способами
------
Ну это вообще фигня - у меня в выдаваемых государствием документах - паспорте, ИД, вод.правах - фамилия написана 4-мя разными способами.
В одной только переведенной копии свидетельства о рождении есть три различных написаниия фамилии.
И, что характерно, все написания соответствуют законам... и ни одно не соответствует фамилии родителей.
Проще договориться о темплейтах и валидации, сделать качественную "морду" для ввода данных.
-----
ЗА-ПРЕ-ЩЕ-НО.
Максимум, что Я мог сделать - послать прогеру ссыль на RFC по CSV.
Но ему на документацию покласть... тем более - она не внутреняя... и для генерации он пользуется чем-то покупным.
можешь глянуть, как имплементировано чтение xls/xlsx
-----
У меня нет проблемы читать/писать ехцеловский файл - в аутматион все вполне работает - пользуюсь там, где надо читать/писать xls/xlsx.
Есть небольшая проблема в версиях - поддерживаю только 12-ю, а на разъездных лаптях иногда требуют и ставят другие.
Тут же вопрос об CSV.
Для этого надо собрать все возможные ошибки.
Нереально. Но ты можешь включить фантазию и, не исключено, составишь список наиболее частых. Всех - "эт вряд ли" (с) Т-щ Сухов.
Ну это вообще фигня
Фигня, конечно, пока не нужно генерировать pivot-таблицу (ну, или аналог).
ЗА-ПРЕ-ЩЕ-НО.
"Ты же коммунист, Сидоров!" (с) Подними восстание. Rage Against Erroneous Input. Найди подход. Ну, или страдай/наслаждайся (можно одновременно) написанием высокоинтеллектуального анализатора содержимого.
Тут же вопрос об CSV.
Да пофигу. Там и комма сепарэйтед тоже рядом прописаны. Наверняка внутре одинаково "перевариваются". Я о логике анализа данных - определение структуры, вычленение заголовков, обработка пропусков и ошибок и т.п.
Нереально.
------
Угу... но - надо.
Пока для каждого клиента пишется реадер со своими заморочками...
Причем многие из них одинаковы для всех. Точнее - в большинстве случаев без проблем будет работать самый навороченный...
Фигня, конечно, пока не нужно генерировать pivot-таблицу
-----
Не-е... таблица - точно полная фигня...
Вот когда надо доказывать права на собственность, а в документах - другая фамилия - начинается веселуха...
Особенно красиво - сдаешь паспорт на замену, а тебе говорят - надо, без паспорта, поехать в другую страну и получить там в закрытом архиве справочку...
А таблица - фииии...
Найди подход.
-----
Не-а... Клиент - важный. Да, прогер у них совсем никакой, но заказов от них много и заказы достаточно дорогие.
Так что - пИсать, пИсать и еще раз пИсать кипятком на форумах, а потом садится и писАть...
Наверняка внутре одинаково
-----
В Екселе - проблемнее. Он слишком много делает не явно.
А с текстовым файлом Я вполне управлюсь... хоть построчно, хоть массивом...
Тут как-то появился клиент, который "решил" (точнее - не способен на другое) присылать файл с каким-то отчетом в ХМЛ.
Отчет можно смотреть только каким-то дервним вьювером, который есть у него и который уже 100 лет как не поддерживается(?).
Читалки - нет, описания формата - нет, какой-либо информации на форумах - нет...
Ну и что? Читаю... поковырять пришлось, де-сериализатор слепить и немного логики... Все встало по местам и работает на ять.
------
А как еще перерывы в кодинге делать и негатив в позитив переводить?
Да, починил последнюю из глупостей со строками из запятых... (см. ниже)
-----
.. и теперь пытаюсь понять почему давно налаженная схема деплоймента из ВМ на сервак и далее с апдейтами на клиентов на одной машине начала давать непонятнмый глюк - все апдейтится, аппа запускается - есть в процессах, но главную форму - не показывает. Админы уже все волоски во всех местах повыдергивали - понять не могут что и где билли в очердной раз в тихую поменял...
Ну вот - починили...
Блин... обшлось, как оказалось, без билли... признаю - чистейший поклеп и напраслину возвел...
первое - поменяли локальные ДНС-сервера, а на ВМке остались прописаны старые... ну понятно - он не в домене и в оффлайне...
второе - Я таки где-то нахомутал - задеплоил дебужную версию... а в дебужной у меня загрузка в отладчике, если запущено не из-под него... ну а толадчиков на станциях нет... вот все и подвисало...
Пых... таки починили... до следующего аврала...
возьми test suite из apache commons csv (https://commons.apache.org/proper/commons-csv/) и не парься - у них должны быть всякие варианты файлов. или из питона, или из любой другой библиотеки...
Классика: автоматизация бардака дает автоматизированный бардак. Символы всякие забавные могут там еще быть, перепутанные кириллица и латиница.
У вас есть руководство, или, может, вы сами уполномочены вести переговоры с клиентской стороной, чтобы вам присылали что-то более-менее потребное? Клиентские прогеры неплохо чинятся их менеджерами, в крайнем случае сажается за дело очередной бесполезный практикант, который вылизывает ручками перед отправкой вам.
Не нашел упоминания об test suite.
Прямой линк на страничку с доками/довнлоадом можно попросить?
И... кажется ты не совсем понимаешь проблему - мне присылают файлы называемые ЦСВ, но не соответствующие спецификации.
Второе - жабья версия только добавит проблем...
Клиентские прогеры неплохо чинятся
-----
На производстве клиентские прогеры не чинятся. Особенно - прогеры крупных клиентов.
Ибо починка клиентского прогера ведет к дискомфорту последнего и передаче (части) заказов другому производителю.
Просто прикинь ситуацию, когда одним из клиентских прогеров выступил какой-нибудь из директоров компании...
Прикинула? Починяешь? Ну вот то-то...
чтобы вам присылали что-то более-менее потребное?
-----
Присылка потребного - оговорена - должны присылать CSV.
Ну а что именно присылают - описано выше.
На производстве клиентские прогеры не чинятся. Особенно - прогеры крупных клиентов.
Мой текущий клиент - ДАХ30, производство. Прекрасно чинятся, медленно, но это уже не мои сложности. Клиентом нашей фирмы являются уже лет 10 как точно.
Чтобы было понятнее об чем речь - фрагмент CSV:
B,P7833,02/07/15,KW,08,F464542,08/07/15,H,NR1867AT,1, ,N,,P7833-001,02:WTN-NR1867AT/R26/001,G,A1,GM4002,LOW IRON 4MM CLEAR,20,GE4075,Ev Low E Soft Coat,0, , ,B,SUES+,469,0,0,199,0,0,0,0,0,N,0,0,0,N,W,0,,0, , ,, ,N,,02:WTN-NR1867AT/R26/001/A1,G,A2,GB4502,LOW IRON TG CLEAR,20,GF4575,Ev LowE SftCoat tg,0, , ,B,SUES+,469,0,0,634,0,0,0,0,0,N,0,0,0,N,W,0,,0, , ,, ,N,,02:WTN-NR1867AT/R26/001/A2,G,B1,GB4502,LOW IRON TG CLEAR,20,GF4575,Ev LowE SftCoat tg,0, , ,B,SUES+,1118,0,0,1057,0,0,0,0,0,N,0,0,0,N,W,0,,0, , ,, ,N,,02:WTN-NR1867AT/R26/001/B1,
Эти 5 строк есть ОДНА CSV-запись.
Для полного комфорта - строк, начинающихся с "G", может быть от одной до трех.
Сколько ДРУГИХ строк может присутствовать - Я до сих пор не знаю.
Мой текущий клиент - ДАХ30, производство.
-----
Именно - чинится там где производится, а не там откуда заказывается...
Хотя мелочь, которую не жалко потерять, можно попробовать чинить и и заказчика...
Предудущий прогер - пробовал... даже получил от них документ в "приблизительно нужном формате"... потом - свихнулся... и мне пришлось делать читалку-конвертилку...
я думаю что ты путаешь людей - 5 строк - это не одна CSV запись - это 5 CSV записей из которых надо сформировать логическую запись...
просто надо разбить на два этапа - парсинг CSV, и формирование из распарсенных данных логических записей - для второй части - обычная state machine...
-----
Я тако буду иметь желание настаивать на том, что Я имею возможность понимать и предоставлять информацию достаточно правильно.
это 5 CSV записей
-----
А ничего что по РФЦ ЦСВ - "плоский" файл?
на два этапа
------
Ну так и сделано.
Но проблема в том, что это не ЦСВ-источник.
Хорошо еще, что у меня было достаточно времени, чтобы, несмотря на клятвенные заверения в ЦСВ-тости источников, изначально делать отдельные реадеры и конверторы под каждого из клиентов . Ну да - муторно, но хоть как-то унифицированно и работает.
А если открыть ексель и сохранить файлик в CSV формате?
Тогда он будет уже читабельным.
Ошибки с количеством стобцов могут сохраниться. Напиши какой-нибудь препроцессор,
для нормирования столбцов. На скорую руку можно написать в питоне. Все ошибки твой скрипт исправит за считанные секунды.
Ошибки самих данных никак не исправить - тогда можно начинать самому данные писать.
Потом, после нормирования - не знаю пользуетесь вы этим или нет - есть возможность импортировать данные в
одну комманду в постгрез.
И оттуда делать с данными что душа пожелает.
Присылка потребного - оговорена - должны присылать CSV.
ну тогда нужно "бить" того кто договаривался. Это слишком общее описание. Должен быть оговорен точный формат данных.
А так будешь постоянно править реадер да и еще неизвестно - правильно ли интерпретируешь результат.
Можно еще попытать узнать каким способом они получают присылаемый вам файл? Может есть какой то "оригинальный" формат.
-----
Для этого нужно обучить оператора способу определения того, что файл в ехцел-формате.
Работа у операторов довольно неприятная - тупая, ответственная и малооплачиваемая.
Операторы - именно такой квалификации и там мало кто задерживается дольше пары месяцев.
Соответственно - обучать надо регулярно... А мне оно нужно?
Напиши какой-нибудь препроцессор
-----
Так и делается.
Под каждого клиента/документ - свой, отдельный считыватель исходного документа.
Но это - лишний, по сравнению с обработкой корректного ЦСВ, код.
есть возможность импортировать данные в одну комманду в постгрез.
-----
Уууу... как мне было бы хорошо, если бы можно было пошуршать данными и потом закинуть их в базу...
Есть целая и довольно сложная система обработки.
Для нее готовится файл в определенном формате. Точнее - в одном из десятка+ форматов.
Последняя известная спецификация имеет номер 18 (и в спеках есть ошибки).
При импорте данных происходит проверка допустимости данных и крутой персчет разных цифирек.
Всех деталей персчета Я не знаю - мое дело - подготовить файлик для импорта.
Причем фабрик у меня три и на одной версия не совпадает с двумя другими.
А по задачке - надо на любом рабочем месте готовить данные для любой фабрики.
И оттуда делать с данными что душа пожелает.
-----
Ну еще и миграция ожидается - будет заменена текущая версия большой системы.
Вот такая одна команда.
Ну да пустяки - по сравнению с фокусами в ЦСВ - остальное почти не напрягает.
ну тогда нужно "бить" того кто договаривался.
-----
Ну это либо шеф, либо кто-то из менеджеров, либо кто-то из директоров.
Бум "бить"? Или просто потихоньку доработаю годик и sвалю?
Это слишком общее описание.
------
Мне этого достаточно. Проблема в том, что даже это требование не выполняется.
будешь постоянно править реадер
------
Ну так Я почти это и делаю. Вот пытаюсь пранализировать наиболее типичные ошибки
и скомпоновать один реадер для десятка клиентов - хоть чуть меньше кода надо будет
поддерживать.
Можно еще попытать узнать каким способом они получают присылаемый вам файл?
-----
Насколько Я знаю - у части клиентов есть какая-то внутреняя система заточенная под их задачи.
Из этой их системы и происходит экспорт.
По слухам - прогер у них не постоянный, а под задачу нанимают кого-то.
Ни и он, по его возможностям, изучает что-там-есть и как-его-пользовать и клепает
какой-то экспорт.
Может есть какой то "оригинальный" формат.
-----
Может.
Но если Я буду интересоваться этими деталями - придется влазить глубоко в их систему.
А оно мне надо? Денег то больше не станет...
Если нету конкретной спецификации и формат данных в "плавающем" режиме.
Тут ничего не поделаешь.
У нас поставщики данных поставляют данные в ЦСФ. Формат практически не меняется.
Когда добавляются изменения или совсем новые данные (т. е. новые ЦСФ) просто обновляется версия Schema.sql.
Через конфиг-файл вносится дескриптор изменённой таблицы или новой таблицы и вперёд.
Очень простой процесс. Всё реадер всегда знает что он читает - потому что владеет метаданными.
Но даже если опрераторы долго не задерживаеются - может вынести все "меняющиеся" части из программы (реадера)
в прикладной конфигураторный файл (xml). Чтобы ваш реадер не зависил от "незадерживающихся" операторов.
Т. е. все изменения нужны будут только в конфигурации.
Бум "бить"? Или просто потихоньку доработаю годик и sвалю?
Обязательно, только скобки интерпретировать не так как думаешь.
Просто довести до сведения, что мало того что присылают в не договорном формате, так еще и спецификация документа не определена. Из за этого ты вместо того чтобы делать полезное для предприятия вынужден постоянно корректировать программу чтения данных и при этом еще не факт, что данные интерпретируются как нужно. В итоге может получится что предприятие произведет продукцию не соответствующую потребностям заказчика. Кто будет виноват? - производитель. Желательно еще и по майлу отправить, что бы в случае чего не нашли "крайнего".
Но что то сомнения меня берут что получится через годик свалить, тебе же года два нужно что то искать чтобы подошло
Из этой их системы и происходит экспорт.По слухам - прогер у них не постоянный, а под задачу нанимают кого-то.
похоже это и есть источник всех проблем вкупе с отсутствием документации на формат файла. Каждый новый иф делает новый прогер по своему.
А оно мне надо?
Тут только ты сам можешь решить, но по мне так лучше один раз влезть и забыть, чем каждый раз править реадер.
-----
Они и так лежат в плугинах. Т.е. подстежкой их в программу Я уже не занимаюсь - скомпилил, залил - работает...
Всё реадер всегда знает что он читает - потому что владеет метаданными.
-----
Не думаю, что это мой вариант - не прегдставляю как описать метаданными приведенный выше пример - машину состояний в метаданные запихать можно, но обрабатывающий данные на основании метаданных реадер будет... более сложным, чем имеющийся код. Нее, не хочу...
Т. е. все изменения нужны будут только в конфигурации.
-----
У меня даже в конфигурации изменений нет - есть плугин - работаем, нет - стучим прогеру (мне) по голове...
Должен быть оговорен точный формат данных.
-----
Эээ... как бы это по-проще сказать... наверное так: обе договаривающиеся стороны не знают и не понимают термина "точный формат данных".
Максимум, что можно объяснить - два момента:
1. машиночитаемый файлик - т.е. файлик в одном из "отрытых" форматов (не пдф, хсл и т.п.)
2. какой бы ни был формат - он будет постоянным, т.е. вносить изменения можно только до определенного момента.
И то - проблемно.
Присылают файл - начинаю базовый анализ - т.е. смотрю можно ли хоть как-то извлечь нужные данные.
Читаю - "нужно красивое окно в сортир на третьем этаже". - Марка стекла? Толщина? Размеры? - Ну это мы ПОТОМ добавим, пока работайте так...
В итоге может получится что предприятие произведет продукцию не соответствующую потребностям заказчика. Кто будет виноват?
-----
Абсолютно точноп - "девочка" на набивке данных.
У нее в функциях лежит сравнение подготовленной заявки и реального заказа отправляемого в производство.
И довольно часто, кстати, есть расхождения между спецификацией в ПДФке и ЦСВшкой...
Желательно еще и по майлу отправить, что бы в случае чего не нашли "крайнего".
-----
Так и делается. Только не мною. Прогер Я, а не контактер с клиентами...
тебе же года два нужно что то искать чтобы подошло
-----
Мне уже не надо ничего искать. Через 3 года, даже по последним, 1989 года, изменениям в советских законах, Я уже пенс...
так что только тем что интересно буду зниматься и то - когда здоровье позволит...
по мне так лучше один раз влезть и забыть
-----
Один раз влезешь - потом всю оставшуюся жизнь будешь дорабатывать... потому что "после того как поковырялся у нас не работает"... халяву они тут любят...
Так что ну его нафиг - лучше подрихтовать реадер у себя, чем разгребать накрученное у кого-то...
чем каждый раз править реадер.
-----
Вот потому Я и радуюсь, что у меня отдельный реадер для каждого клиента - даже если полностью меняется формат документа от клиента надо дорабатывать только ограниченное количество кода...
Но унификации на уровне ЦСВ все же хотелось бы...
Абсолютно точноп - "девочка" на набивке данных.
Ну ты вроде не на набивке и не девочка уже
Тогда действительно можно не переживать.
изменениям в советских законах
Не понял. А при чем советские законы к англицкому проживанию?
Ну тогда только хорошего здоровья можно пожелать, год продержаться можно и на таком заводе.
А при чем советские законы к англицкому проживанию?
-----
Да тут по случаю меня лишили латыSSацкого негровства, а в остатке - чистый Гражданин СССР.
Это по определению - негр - гражданин СССР, на момент оппукации латыSSами ЛССР, проживавший на территории ЛССР.
Следствие - через три года бедолагам придется обеспечивать выполнение закона СССР в области пенсионного обеспечения...
Ну по крайней мере - переслать заявку на пенсию в ближайший СОБЕС...
Тогда действительно можно не переживать.
-----
Да Я и не переживаю - Я собираю возможные ошибки в ЦСВ-файлах...
Что еще можно сделать неправильно в экспорте данных в CSV-формате?
На крупных фирмах отчёты делают в специальных прогах. И отчёты получаются красивые. С шапкой, постраничной выдачей, индивидуальным оформлением отдельных страниц, нумерацией и т.д. А потом не заморачиваться и все это экспортируют в CSV. Здесь проблема даже не в том, что формат файла не документирован, а в том, что начальнику завтра отступ в отчёте между шапкой и текстом не понравится и вы получите совсем другой CSV, не как в прошлом месяце.
Поэтому я бы не использовал готовые ридеры, а читал бы файл построчно, валидировпл бы каждую строку и только после этого сам рубил бы ее на данные
получите совсем другой CSV, не как в прошлом месяце.
-----
Одна из проблем. Достаточно регулярная. Не чинится.
Но тут все просто - будет сообщени об несовпадении текущего формата с ожидаемым и девочки будут запрашивать данные в оговоренном/принятом/староm формате.
К ошибкам в ЦСВ файлах, которые можно обработать на нашем конце, отношения не имеет.
Следствие - через три года бедолагам придется обеспечивать выполнение закона СССР
У тебя есть официальное письмо или ты так лично думаешь?
По идее никто не будет выполнять старых законов да и еще СССР.
Я собираю возможные ошибки в ЦСВ-файлах...
КАМАЗ заказал для сбора?
У тебя есть официальное письмо или ты так лично думаешь?
------
У меня есть письмо об том, что меня признали нелегалом.
Нелегалом ныне нельзя признать только и исключительно на территории какой-то страны ЕС - только целиком. Тем самым - снят статус негражданина латиSSатника. Ну а гражданства меня никто никогда не лишал. Местные слегка офигели от своих действий Я с ними готов общаться только в присутствии представителя свой страны. Каждый раз очень стараются убедить в том что от этого надо отказаться и каждый раз не могут предоставить документ об лишении гражданства... :)
У меня есть письмо об том, что меня признали нелегалом.
ну это уже плюс. Хотя и непонятный для меня. Обычно нелегалов выдворяют из страны...
Но всё равно, берут меня большие сомнения, что в Латвии тебе что то светит. Не пробовал просто запрос отправить типа: скажить пож. сколько у мну буде пенсии? Да и сомневаюсь что Латвийская пенсия будет больше англицкой.
Обычно нелегалов выдворяют из страны...
-----
...в страну имеющегося гражданства.
Не пробовал просто запрос отправить типа: скажить пож. сколько у мну буде пенсии?
-----
Два вопроса - Куда? и В качестве кого?
В латиSSатник? Так у меня ЗАПРЕТ на проф.работу. И в качестве нелегала? Ну а почему тогда не в Германию? Там хоть есть резон - происхожу с оккупированной територии...