Как программист получал загранпаспорт через интернет

2011-09-02 19:54:06

Привет! Некоторое время назад мне пришло время заменить заграничный паспорт, и для этой цели я решил воспользоваться новомодным электронным правительством. Под катом расскажу о приятных моментах и проблемах, с которыми столкнулся в процессе работы с сайтом.

Регистрация


Для доступа к большинству услуг необходимо быть зарегистрированным пользователем сайта. Как ни странно, регистрация является довольно простой процедурой. Пройти её можно на этой страничке (которая, впрочем, на момент написания этой статьи временно отключена), где потребуется ввести следующие данные:

  • СНИЛС, то есть номер страхового свидетельства гос. пенсионного страхования, написан на такой небольшой зелёной карточке. Кстати, этот номер будет затем играть роль логина.
  • Паспортные данные
  • ИНН, при его отсутствии можно заказать его на сайте ФМС, процедура заполнения заявления требует от вас не более десяти минут. Затем, где-то через неделю-две вам на почту(электронную) свалится уведомление о том, что свидетельство о выдаче ИНН готово, и адрес, по которому нужно его забрать.
  • Номер сотового телефона и e-mail. Не очень понятно, зачем нужен сотовый, но я его всё же указал.


После ввода всей информации понадобится подтвердить номер телефона и почтовый адрес. Коды подтверждения приходят в течение пары минут в виде смс и e-mail соответственно, после чего остаётся только один этап: активация. Для того, чтобы активировать аккаунт, необходимо получить в руки некоторую бумажку, на которой будет написан специальный код. Для жителей Москвы, Санкт-Петербурга и Мурманска это можно сделать, проехав по некоторому адресу (список показывают на первом этапе регистрации), для остальных есть возможность получить письмо с Почтой России(как подсказывает в комментариях vodka_ru, ждать придётся недели две-три). В Питере всё ещё более приятно: центр обслуживания клиентов работает круглосуточно и без выходных. Получив заветный листочек, можно наконец активировать свой аккаунт из личного кабинета. Обратите внимание, что входить в личный кабинет не нужно, а нужно нажать на маленькую кнопочку «Ввести код активации» внизу формы авторизации:
 

Подача заявление на заграничный паспорт


Итак, я внутри, и пока всем крайне доволен. Самое время сделать то, за чем я собственно, сюда пришёл. В Личном Кабинете довольно быстро находится кнопочка «Электронные услуги», там выбираем ФМС, а там — тот вариант, который вам подходит. У меня это "Выдача загранпаспорта гражданина РФ нового поколения сроком действия 10 лет для совершеннолетних". Итак, начнём.
 

Шаг 1 или EULA


На первом шаге необходимо выразить своё согласие на обработку персональных данных и указать своё местоположение — город, район, микрорайон. Можно сразу заметить снизу кнопочку:
сохранить заявление на компьютер
Она, как вы могли догадаться, сохраняет текущий черновик заявления к вам на компьютер. То есть, если вы внезапно случайно закроете браузер, то ваш несохранённый документ будет потерян. Если же вам всё же посчастливилось успеть сохранить черновик, то у вас появится файлик в непонятном формате .app (я ковырять не стал), который можно загрузить в разделе Электронные услуги, воспользовавшись формой наверху справа:

Стоит заметить, что довольно печально, что заявление сохраняется в каком-то левом формате, ведь было бы гораздо удобнее сохранять его в нормальный pdf или doc, которое можно потом отредактировать, распечатать и сдать руками.
 

Шаг 2 или mail.ru в массы


Здесь нужно, во-первых, выбрать место получения услуги, и уже тут нас поджидает первое ололо:
e-mail: fmsgosusluga-spb@mail.ru
По-видимому, Федеральная Миграционная Служба в рамках развития нанотехнологий заключила контракт с инновационной компанией mail.ru.
Далее нужно заполнить несколько тривиальных полей и перейти на следующую страницу.
 

Шаг 3 или ничего интересного

 

Шаг 4 или преступник по умолчанию


Забавляет подсказка для вопроса «Не уклоняетесь ли Вы от исполнения обязательств, наложенных судом»:

Заполнение пункта «Трудовая деятельность за последние 10 лет» традиционно вызывает у людей больше всего проблем, но если порчитать правила внимательно, то всё должно получиться. Есть существенный минус интерфейса: добавить новую строчку можно только в конец, поэтому если вы забыли что-то указать в самом начале, придётся все строки кручную копировать вниз.
 

Шаг 5 или аватарочка


На пятом (и последнем) шаге нас просят загрузить фотографию. Это мне показалось странным, поскольку я слышал, что для заграна нового поколения фотографируют прямо на месте. Потому я счёл это багом и не замедлил обратиться в круглосуточную горячую линию по телефону 8 (800) 100-70-10. К чести госуслуг, оператор ответил в течение секунд десяти, и это не было связано с тем, что зонок был в 4 утра, потому что в дальнейшем успех был повторён. Молодой человек по телефону вежливо мне объявнил, что аватарочка всё же нужна для подачи заявления, а на паспорт действительно будут снимать потом отдельно. К сожалению, требования к фоточке предъявляют довольно чёткие и конкретные, а у меня как раз фотографии не было, как и не было поблизости круглосуточных фотоателье. Поэтому я нашёл какой-то старый документ, и, понадеявшись на авось, отсканил фотографию оттуда, пусть под требования она и не подходила. Кстати, прямо там фотографию можно было обрезать, повернуть, подкрутить яркость или контраст и даже убрать красные глаза. Да ещё и история действий есть.

Осталось только нажать «Подать заявление», обязательно перед этим его сохранив к себе на компьютер.

Общие впечатления: круто, здорово, инновационнотм, роисся вперде, и даже в очереди стоять не нужно!
 

Первые проблемы


После отправки документа нам приходит через какое-то время уведомление о том, что автоматические проверки пройдены, а заявление отправлено на ручную проверку. Ура-ура, можно ложиться спать.

Утром меня встречает радостное письмо с system в заголовке From, сообщающее:

Фотография не соответствует предъявляемым требованиям Заявление возвращено по причине не заполнения всех обязательных реквизитов. Сведения о трудовой деятельности за последние 10 лет (...) заполняются с 08.2001 года по настоящее время (...)


Стоп-стоп-стоп-стоп. Что? Это же точно можно было проверить автоматически! Явный косяк на стороне разработчиков. Ну да ладно, всё равно фотография кривая, не очень-то и обидно.

Возможности отредактировать это заявление не обнаружилось, потому берём сохранённый перед отправкой черновик, быстренько исправляем ошибки и отправляем снова. Есть возможность нарваться на баг: не будет активна кнопка «Продолжить» и «Подать заявление». Для решения проблемы нужно вернуться на самый первый шаг и ткнуть в галочку «согласен».

Спустя примерно сутки приходит ещё один отказ:

Заявление возвращено по причине не заполнения всех обязательных реквизитов, а именно, п.6 (отсутствие или наличие гражданства другого государства)


А вот это уже попахивает фееричнейшим фэйлом. Действительно: во-первых, на каждом шаге javascript проверяет валидность всех полей, во-вторых, есть автоматическая проверка, которую заявление прошло перед тем, как попасть в руки человеку. Довольно раздосадованный, я открываю сохранённый черновик и явно вижу, что поле заполнено. Это грустно. К счастью, на страничке заявлений есть волшебная кнопка, позволяющая высказать своё фи:

Я не постеснялся ей воспользоваться, но чтобы не терять времени, решил попробовать заполнить ещё раз: врдуг быстрее пройдёт.
 

И тут начинаются грустинушки


Совершенно внезапно перестаёт проходить js-проверку дата выдачи моего паспорта, хотя она была автоматически подставлена из сохранённого черновика, который эту проверку ранее проходил. Более того, календарик, который вылезает для введения дат, не исчезает при переходе по страницам. Ещё более того, при выборе другого года (2008 и раньше), всё работало.

Позвонив в горячую линию, я сообщил о проблеме, где девушка спросила, какой браузер, сослалась на временные неполадке в работе сайта и предложила попробовать через несколько часов. Честно подождав, я попробовал снова и, естественно, не получив удовлетворительного результата полез в исходники, чтобы обойти эту дурацкую проверку. Сразу хочу заметить: моя специальность — бекэнды на java, и в оценке качества веб-морд могу сильно заблуждаться.
 

So i put a table inside your div inside your table inside your table inside your div


Попытка добраться до поля, в которое вводится дата, выявила отменную структуру документа:

Стоит отметить, что в большей части этих вложенных таблиц td был только один. Далее я честно пытался найти место, отвечающее за проверку валидности даты, но довольно быстро запутался в не менее замечательной структуре js, и забил на это дело.
 

Что дальше?


По всей вероятности, через какое-то время тем или иным способом подать заявление всё же удастся, после чего начнутся новые приключения, о которых я непременно напишу. Всем успехов и до новых встреч!

UPD: Вторая часть статьи.

Взято отсюда