Войти

Как загрузить в ЕСНСИ справочник из файла?

Основные шаги

  1. Подготовьте файл CSV (см. раздел «Подготовка CSV файла»).
  2. Зайдите в справочник, нажмите кнопку «Обновить из файла».
  3. Перетащите файл в поле для загрузки или выберите его вручную.
  4. Выберите кодировку (UTF-8/Windows-1251).
  5. Выберите режим обновления: сохранить имеющиеся записи (и добавить новые)/удалить имеющиеся записи (заменить на новые).
  6. Нажмите «Обновить».
  7. Дождитесь появления и исчезновения сообщения-троббера «Подождите, выполняются проверки».
  8. Если проверка прошла успешно, появится сообщение «Справочник обновляется» с пиктограммой часов – в зависимости от объёма и структуры справочника процесс может занять от пары минут до нескольких часов. После сообщения «Справочник обновляется» с пиктограммой часов можно закрывать браузер, выключать компьютер. В следующий раз при входе в справочник Вы вернётесь на этот же этап.
  9. В случае выявленных форматно-логических ошибок в данных появится сообщение об ошибке и будет представлен протокол с предложением сценариев исправления (см. описания ниже).

Подготовка CSV-файла

Правильно подготовленный CSV-файл – залог быстрого прохождения всех этапов его загрузки.

CSV-файл – текстовый файл (можно открывать даже «Блокнотом»), представляющий переформатированную таблицу, где каждая строка таблицы – строка файла, а каждый столбец отделён от другого символом-разделителем (в ЕСНСИ это точка с запятой). Сами данные таблицы могут изначально создаваться в Excel или другом редакторе таблиц. CSV-файл служит для передачи табличных данных между системами.

Требования ЕСНСИ к CSV-файлу

  • кодировка UTF-8 или Windows-1251 (нужно указать после загрузки файла)
  • разделитель полей – «;» (точка с запятой, semicolon) – единственный возможный вариант
  • ограничитель полей отсутствует (поля не заключаются в кавычки, апострофы или иные знаки)
  • поле не должно начинаться и заканчиваться символом «пробел»
  • переносы/разрывы строк отсутствуют. Все поля, вне зависимости от содержимого, должны содержать одну строку
  • не поддерживается использование управляющих символов с обратным слешем
  • кавычки и апострофы не рекомендованы к использованию. В случае необходимости их использования экранируйте их согласно стандарту RFC4180 (подробнее – ниже в разделе «Если кавычки нужны»)

Подготовка файла из приложения электронных таблиц Excel, LibreOffice Calc

  1. Убедитесь, что все столбцы в Вашей таблице имеют заголовки, соответствующие структуре справочника.
    Можно выгрузить из ЕСНСИ текущую редакцию справочника, открыть её в Excel/ LibreOffice Calc и взять из неё первую строку заголовков, удалив поле автоиндекса – так у Вас получится корректный шаблон.
  2. Убедитесь, что Ваша таблица не содержит объединённых ячеек.
  3. Убедитесь, что поля Вашей таблицы не содержат переносов и разрывов строк.
    При необходимости удаления имеющихся запрещенных можете выполнить операцию «Поиск и замена», заменив символ разрыва (Ctrl + J) на пробел.
  4. Убедитесь, что поля Вашей таблицы не содержат кавычек всех типов и апострофов (’).
  5. Если в вашем справочнике есть атрибут с типом «дата», убедитесь, что все даты в таблице записаны в одном из форматов ДД.ММ.ГГГГ / ГГГГ-ММ-ДД (это можно скорректировать через указание типа числового формата в табличном редакторе – большинство разноформатных записей приведутся к заданному).

Сохранение файла в CSV в LibreOffice Calc

К сожалению, в Microsoft Excel сложно обеспечить формирование корректного CSV для ЕСНСИ, поэтому для сохранения рекомендуем пользоваться бесплатным программным обеспечением LibreOffice Calc (или аналогами).

  1. Откройте подготовленный справочник-таблицу в LibreOffice Calc.
  2. Выберите «Файл» -> «Сохранить как» -> «Сохранить как тип» -> «Текст CSV (*.csv)» -> «CSV».
  3. В окне настройки экспорта укажите:
    • кодировка/Character set: Windows-1251
    • разделитель полей/Field delimiter: ; (символ точка с запятой) 
    • разделитель полей/String delimiter: {пустое поле}
    • галочка «Текстовые значения в кавычках» («Quote all text cells») не проставлена
  4. Сохраняйте и проверяйте файл.

Сохранение файла в CSV в Microsoft Excel

  1. Откройте подготовленный справочник-таблицу в Microsoft Excel.
  2. Выберите «Файл» -> «Сохранить как» -> «CSV разделитель запятая» (без слова UTF, иначе придётся выбирать такую кодировку при загрузке).
  3. Сохраните и проверьте файл. В зависимости от версии Excel у Вас может получиться готовый результат или его надо будет доработать на стадии проверки файла.

Проверка файла в Visual Code Studio

Бесплатное приложение Visual Code Studio в связке с плагином CSV Rainbow позволяют автоматически провести базовые проверки корректности CSV-файла (блок CSVLint) и построить на его основании таблицу (блок Query). Таким образом можно проверить правильность и однозначность текстового представления справочника.

  1. Прокрутите строки файла: убедитесь, что все строки начинаются с первого поля справочника и нет переносов/разрывов на новую строку полей.
  2. Убедитесь, что поля не заключены в кавычки (“) или апострофы (‘).
  3. Убедитесь, что в качестве разделителя полей используется точка с запятой (;).
  4. Убедитесь, что в файле нет кавычек в середине поля.
  5. Убедитесь, что поля не заканчиваются пробелом («Электропоезд ЭП2М» - правильно, «Электропоезд ЭП2М » - неправильно – будет ошибка при загрузке).
  6. Запомните, в какой кодировке у Вас получился файл (нижний правый угол Visual Code Studio при условии читаемости всех полей на русском языке). Кодировка должна быть или windows-1251, или UTF-8 – главное указать её правильно при загрузке в ЕСНСИ.

Ряд ошибок можно исправить через операцию «Поиск и замена» в редакторе, например:

  • убрать концевые пробелы: командой «Shrink CSV table – trim whitespaces» в расширении CSVRainbow или просто заменить « ;» на «;» (повторяйте до сообщения «осуществлено 0 замен»
  • удалить кавычки: замена «"» на «»
  • заменить разделитель: замена «,» на «;»
  • разорванные строки можно быстро склеивать в Notepad++: «File» - «Edit» - «Line Operations» - «Join Lines» (или Ctrl+J)

Если Вы планируете вести и обновлять справочник в файле электронной таблицы, рекомендуем модифицировать его (и сообщить правила коллегам, которые будут вносить в него информацию), а не править текстовый файл, поскольку при следующей итерации текстовый файл придётся править снова.


Типовые ошибки

  1. Сообщение «Данные файла с обновлением не соответствуют структуре справочника»:
    • использован неверный разделитель полей
    • поля заключены в кавычки
    • поля имеют разрывы строк
    • строки содержат разное количество полей (используйте CSVLint для поиска ошибки)
  2. Сообщение «запись может содержать только пробел между словами. Заполнение поля пробелом недопустимо»:
    • используются пробелы в начале и/или конце поля – удалите их (см. выше)
  3. Вместо нормального русского текста Вы видите буквы глаголицы или иные инородные символы:
    • проверьте соответствие кодировки файла, указанной при загрузке

Также у вас могут возникнуть ошибки форматного контроля:

  • неправильный формат поля с типом «Дата»: нужно использовать форматы ДД.ММ.ГГГГ / ГГГГ-ММ-ДД или изменить тип данных на «текст» в настройках атрибутов справочника
  • ошибка правописания: проверьте правописание значений поля, если всё верно – отправьте заявку на добавление слова в словарь. Если в каком-то атрибуте слишком часто ложно срабатывает проверка орфографии, Вы можете отключить её в настройках атрибутов справочника
  • значения содержат ненормативную лексику: если это нелепое совпадение, отправьте заявку в службу эксплуатации, в ином случае – исправьте.

Если кавычки нужны

Если ваши данные обязательно должны содержать кавычки, тогда следуйте одному из подходов:

  1. Заключайте поле с кавычками (") в кавычки ("), а перед кавычкой ставьте ещё одну кавычку (")
    • Текст в двойных "кавычках" в середине ячейки -> "Текст в двойных ""кавычках"" в середине ячейки"
  2. Используйте «ёлочки» (« и »), а не «лапки» ("): U+00AB / Alt+0171 и U+00BB / Alt+0187

Другие варианты и примеры Вы можете найти в приложении 2 к Руководству пользователя ЕСНСИ (https://info.gosuslugi.ru/docs/section/%D0%95%D0%A1%D0%9D%D0%A1%D0%98/)

Авторизуйтесь, чтобы оставить комментарий к статье