Многие пользователи и администраторы сталкиваются с неприятной ситуацией: при работе в конфигурации (например, 1С:Бухгалтерия) пользователь открывает журнал документов или справочник, нажимает кнопку Вывести список, после чего программа 1С просто закрывается без предупреждений и записи ошибок в журнал регистрации. Аналогичная проблема часто возникает при попытке воспользоваться поиском по списку с помощью комбинации клавиш Ctrl+F.
Давайте проанализируем эту ситуацию и разберем по шагам, почему происходит тихое падение платформы и какие существуют способы решения и обхода этой проблемы.
Рассмотрим самую распространенную причину, которая активно обсуждается специалистами. Релиз платформы 8.3.13.1513 (и некоторые соседние) имеет подтвержденную ошибку, связанную с отрисовкой пользовательского интерфейса. При выборе пунктов из контекстного меню, к которым относится команда ВывестиСписок, происходит аварийное завершение работы клиентского приложения.
Что мы можем сделать в этом случае:
Выясним причину падения при поиске. Если в динамическом списке настроена группировка данных по какому-либо полю, а пользователь нажимает Ctrl+F и пытается выполнить поиск, платформа может не справиться с позиционированием курсора в сгруппированном дереве. Последующая попытка сформировать табличный документ приведет к краху.
Разберем вариант обхода проблемы для пользователей:
ВывестиСписок.Посмотрим на ситуацию со стороны кэша. Автор оригинальной проблемы упоминал, что чистил кэш 1С, однако настройки внешнего вида конкретной формы хранятся не во временных файлах на диске, а в самой информационной базе. Если пользователь сильно растянул колонки, добавил новые реквизиты или сдвинул элементы, это может приводить к ошибке генерации макета табличного документа.
Как исправить ситуацию:
Проанализируем технические ограничения операционной системы. Процедура ВывестиСписок формирует в оперативной памяти компьютера табличный документ. Если список содержит десятки тысяч строк, а на компьютере пользователя установлен 32-битный (x86) клиент 1С, возникает проблема лимита памяти.
32-битные приложения в ОС Windows могут использовать не более 2 ГБ оперативной памяти. Как только процесс 1С достигает этого порога при формировании огромной таблицы, операционная система просто "убивает" процесс. Именно поэтому программа закрывается мгновенно, а в Журнал регистрации 1С не успевает записаться ни одной ошибки.
Что делать:
Еще один сценарий падения, когда мы используем поиск: пользователь копирует значение для поиска из Excel, почты или веб-страницы. В буфер обмена могут попасть невидимые спецсимволы, символы переноса каретки или просто огромный массив текста (более 1024 символов).
При вставке таких данных в окно полнотекстового поиска или стандартного отбора Ctrl+F, СУБД не может корректно разобрать запрос, что приводит к критическому сбою сеанса.
Решение: перед вставкой текста в строку поиска рекомендуйте пользователям вставлять его в обычный "Блокнот" для очистки от лишнего форматирования и спецсимволов.