Доброго дня всем.
На днях столкнулся со странной ситуацией.
Эта ситуация возникает при работе с 1С-Предприятием версии 8.3.23.2157. На других релизах не проверял, но подозреваю, что результат будет тот же.
Один из моих коллег обратился с проблемой. Он рассказал, что пытается экспортировать mxl-файл в формат Excel-2007 (т.е. xlsx) и у него это не получается.
Я забрал у него этот mxl-файл и попробовал повторить процедуры экспорта.
И проблема подтвердилась. При попытке экспорта mxl-файл платформа 1С стабильно падает.
С сообщением - "К сожалению, возникла непредвиденная ситуация". И предлагает завершить работу с 1С-предприятием.
При анализе ошибки стало понятно, что в некоторых ячейках таблицы mxl содержатся недопустимые для формата XML символы. При чём тут XML? Да притом, что файл формата excel-2007 и выше и состоит из набора xml-файлов, упакованных в zip-архив c расширением xlsx.
Подопытный mxl-файл довольно большой и содержит около полутора миллионов ячеек. Вручную выискивать ячейки с "недопустимыми" символами не было ни желания, ни времени. Поэтому и была создана данная обработка.
Как в этот файл попали эти "недопустимые" символы? Да очень просто... Операторы, что заносят информацию в данные о наших контактах, часто используют способ, называемый "copy/paste". А при копировании информации из электронного письма в формате html (или со странички в браузере) эти символы и попадают в буфер обмена.
Видишь суслика? Нет? А он там есть!
Сама обработка не представляет ничего сложного.
Механизмы БСП здесь не используются.
Нужно выбрать обрабатываемые файлы и получить на выходе очищенные.
Единственная особенность, что для её работы нужно использовать режим предприятия "Толстый клиент".
Я попробовал сделать возможным её работу в режиме тонкого клиента, но получил ту же ошибку с падением платформы. Т.е. я с клиента отправляю в хранилище двоичные данные (mxl-файл), но потом при попытке его получить и обработать возникает та же самая ошибка - "К сожалению, возникла непредвиденная ситуация".
=========================
Поэтому публикую как есть.
Может, кому-то поможет в борьбе с mxl-файлами.
Удачи!