Основные шаги
- Подготовьте файл CSV (см. раздел «Подготовка CSV файла»).
- Зайдите в справочник, нажмите кнопку «Обновить из файла».
- Перетащите файл в поле для загрузки или выберите его вручную.
- Выберите кодировку (UTF-8/Windows-1251).
- Выберите режим обновления: сохранить имеющиеся записи (и добавить новые)/удалить имеющиеся записи (заменить на новые).
- Нажмите «Обновить».
- Дождитесь появления и исчезновения сообщения-троббера «Подождите, выполняются проверки».
- Если проверка прошла успешно, появится сообщение «Справочник обновляется» с пиктограммой часов – в зависимости от объёма и структуры справочника процесс может занять от пары минут до нескольких часов. После сообщения «Справочник обновляется» с пиктограммой часов можно закрывать браузер, выключать компьютер. В следующий раз при входе в справочник Вы вернётесь на этот же этап.
- В случае выявленных форматно-логических ошибок в данных появится сообщение об ошибке и будет представлен протокол с предложением сценариев исправления (см. описания ниже).
Подготовка CSV-файла
Правильно подготовленный CSV-файл – залог быстрого прохождения всех этапов его загрузки.
CSV-файл – текстовый файл (можно открывать даже «Блокнотом»), представляющий переформатированную таблицу, где каждая строка таблицы – строка файла, а каждый столбец отделён от другого символом-разделителем (в ЕСНСИ это точка с запятой). Сами данные таблицы могут изначально создаваться в Excel или другом редакторе таблиц. CSV-файл служит для передачи табличных данных между системами.
Требования ЕСНСИ к CSV-файлу
- кодировка UTF-8 или Windows-1251 (нужно указать после загрузки файла)
- разделитель полей – «;» (точка с запятой, semicolon) – единственный возможный вариант
- ограничитель полей отсутствует (поля не заключаются в кавычки, апострофы или иные знаки)
- поле не должно начинаться и заканчиваться символом «пробел»
- переносы/разрывы строк отсутствуют. Все поля, вне зависимости от содержимого, должны содержать одну строку
- не поддерживается использование управляющих символов с обратным слешем
- кавычки и апострофы не рекомендованы к использованию. В случае необходимости их использования экранируйте их согласно стандарту RFC4180 (подробнее – ниже в разделе «Если кавычки нужны»)
Подготовка файла из приложения электронных таблиц Excel, LibreOffice Calc
- Убедитесь, что все столбцы в Вашей таблице имеют заголовки, соответствующие структуре справочника.
Можно выгрузить из ЕСНСИ текущую редакцию справочника, открыть её в Excel/ LibreOffice Calc и взять из неё первую строку заголовков, удалив поле автоиндекса – так у Вас получится корректный шаблон. - Убедитесь, что Ваша таблица не содержит объединённых ячеек.
- Убедитесь, что поля Вашей таблицы не содержат переносов и разрывов строк.
При необходимости удаления имеющихся запрещенных можете выполнить операцию «Поиск и замена», заменив символ разрыва (Ctrl + J) на пробел. - Убедитесь, что поля Вашей таблицы не содержат кавычек всех типов и апострофов (’).
- Если в вашем справочнике есть атрибут с типом «дата», убедитесь, что все даты в таблице записаны в одном из форматов ДД.ММ.ГГГГ / ГГГГ-ММ-ДД (это можно скорректировать через указание типа числового формата в табличном редакторе – большинство разноформатных записей приведутся к заданному).
Сохранение файла в CSV в LibreOffice Calc
К сожалению, в Microsoft Excel сложно обеспечить формирование корректного CSV для ЕСНСИ, поэтому для сохранения рекомендуем пользоваться бесплатным программным обеспечением LibreOffice Calc (или аналогами).
- Откройте подготовленный справочник-таблицу в LibreOffice Calc.
- Выберите «Файл» -> «Сохранить как» -> «Сохранить как тип» -> «Текст CSV (*.csv)» -> «CSV».
- В окне настройки экспорта укажите:
- кодировка/Character set: Windows-1251
- разделитель полей/Field delimiter: ; (символ точка с запятой)
- разделитель полей/String delimiter: {пустое поле}
- галочка «Текстовые значения в кавычках» («Quote all text cells») не проставлена
- Сохраняйте и проверяйте файл.
Сохранение файла в CSV в Microsoft Excel
- Откройте подготовленный справочник-таблицу в Microsoft Excel.
- Выберите «Файл» -> «Сохранить как» -> «CSV разделитель запятая» (без слова UTF, иначе придётся выбирать такую кодировку при загрузке).
- Сохраните и проверьте файл. В зависимости от версии Excel у Вас может получиться готовый результат или его надо будет доработать на стадии проверки файла.
Проверка файла в Visual Code Studio
Бесплатное приложение Visual Code Studio в связке с плагином CSV Rainbow позволяют автоматически провести базовые проверки корректности CSV-файла (блок CSVLint) и построить на его основании таблицу (блок Query). Таким образом можно проверить правильность и однозначность текстового представления справочника.
- Прокрутите строки файла: убедитесь, что все строки начинаются с первого поля справочника и нет переносов/разрывов на новую строку полей.
- Убедитесь, что поля не заключены в кавычки (“) или апострофы (‘).
- Убедитесь, что в качестве разделителя полей используется точка с запятой (;).
- Убедитесь, что в файле нет кавычек в середине поля.
- Убедитесь, что поля не заканчиваются пробелом («Электропоезд ЭП2М» - правильно, «Электропоезд ЭП2М » - неправильно – будет ошибка при загрузке).
- Запомните, в какой кодировке у Вас получился файл (нижний правый угол Visual Code Studio при условии читаемости всех полей на русском языке). Кодировка должна быть или windows-1251, или UTF-8 – главное указать её правильно при загрузке в ЕСНСИ.
Ряд ошибок можно исправить через операцию «Поиск и замена» в редакторе, например:
- убрать концевые пробелы: командой «Shrink CSV table – trim whitespaces» в расширении CSVRainbow или просто заменить « ;» на «;» (повторяйте до сообщения «осуществлено 0 замен»
- удалить кавычки: замена «"» на «»
- заменить разделитель: замена «,» на «;»
- разорванные строки можно быстро склеивать в Notepad++: «File» - «Edit» - «Line Operations» - «Join Lines» (или Ctrl+J)
Если Вы планируете вести и обновлять справочник в файле электронной таблицы, рекомендуем модифицировать его (и сообщить правила коллегам, которые будут вносить в него информацию), а не править текстовый файл, поскольку при следующей итерации текстовый файл придётся править снова.
Типовые ошибки
- Сообщение «Данные файла с обновлением не соответствуют структуре справочника»:
- использован неверный разделитель полей
- поля заключены в кавычки
- поля имеют разрывы строк
- строки содержат разное количество полей (используйте CSVLint для поиска ошибки)
- Сообщение «запись может содержать только пробел между словами. Заполнение поля пробелом недопустимо»:
- используются пробелы в начале и/или конце поля – удалите их (см. выше)
- Вместо нормального русского текста Вы видите буквы глаголицы или иные инородные символы:
- проверьте соответствие кодировки файла, указанной при загрузке
Также у вас могут возникнуть ошибки форматного контроля:
- неправильный формат поля с типом «Дата»: нужно использовать форматы ДД.ММ.ГГГГ / ГГГГ-ММ-ДД или изменить тип данных на «текст» в настройках атрибутов справочника
- ошибка правописания: проверьте правописание значений поля, если всё верно – отправьте заявку на добавление слова в словарь. Если в каком-то атрибуте слишком часто ложно срабатывает проверка орфографии, Вы можете отключить её в настройках атрибутов справочника
- значения содержат ненормативную лексику: если это нелепое совпадение, отправьте заявку в службу эксплуатации, в ином случае – исправьте.
Если кавычки нужны
Если ваши данные обязательно должны содержать кавычки, тогда следуйте одному из подходов:
- Заключайте поле с кавычками (") в кавычки ("), а перед кавычкой ставьте ещё одну кавычку (")
- Текст в двойных "кавычках" в середине ячейки -> "Текст в двойных ""кавычках"" в середине ячейки"
- Используйте «ёлочки» (« и »), а не «лапки» ("): 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/)