При сохранении табличных документов 1С в файлы xslx 1С устанавливает формат ячеек "Общий". При этом, некоторые значения после их редактирования в Excel к некорректному виду. В нашем примере выгружаются данные страховых полисов пациента. Номер полиса - это строка 16 символов, например "6954430886000324". Если пользователь Excel изменит данные для уточнения, то мы получим экспоненциальное представление числа, нечто вроде такого:
6,95443E+15 |
При этом, Excel еще и округляет значение в ячейке.
Чтобы обойти это ограничение пробовали разные варианты (добавление символов и т.п.), но они снижают удобство работы пользователя.
Поэтому была разработана утилита для измерения формата на текстовый всех ячеек на всех листах в файлах xlsx расположенных в той же папке, что и Утилита.
Преобразует стили книги, устанавливая числовой формат для всех стилей — текстовый.
Используется библиотека DocumentFormat.OpenXml.Spreadsheet, установка Mirosoft Office не требуется, работает быстро.
Один из сценариев использования - исполнение утилиты в каталоге выгрузки файлов.
Если Не НаЭкран Тогда
//все ячейки преобразуем к текстовому формату, чтобы умный эксель не делал экспоненциальную форму.
Converter = "XlsTextFormat.exe";
ПолучитьМакет("XlsTextFormat").Записать(КаталогЗаписиФайла + "\ТМП\" + Converter);
СтрокаКоманды = КаталогЗаписиФайла + "\ТМП\" + Converter;
КодВозврата = Неопределено;
Попытка
ЗапуститьПриложение(СтрокаКоманды,КаталогЗаписиФайла+"\ТМП",Истина,КодВозврата);
Исключение
КонецПопытки;
УдалитьФайлы(КаталогЗаписиФайла + "\ТМП\" + Converter);
КонецЕсли;