В процессе работы с конфигурацией «Зарплата и управление персоналом», редакция 3.1, пользователи часто сталкиваются с неприятной ситуацией: при попытке открыть вкладку «Начисления и удержания» в документе Увольнение программа аварийно завершает работу без вывода каких-либо диагностических сообщений. Эта проблема особенно актуальна для релизов ветки 3.1.14 и выше. В данной статье мы подробно разберем причины такого поведения системы и рассмотрим пошаговые инструкции по его устранению.
Проанализируем технические требования к программному продукту. Основная причина падения кроется в использовании версии платформы 1С:Предприятие 8, которая ниже минимально допустимой для конкретного релиза конфигурации. Разберем на конкретном примере: релиз ЗУП 3.1.14.369 требует платформу не ниже 8.3.14.1976 или 8.3.15.1747.
Если ваша информационная база запущена на платформе версии 8.3.15.1700, программа будет работать в обычном режиме до тех пор, пока не возникнет необходимость отрисовки сложных динамических элементов формы, представленных на вкладке «Начисления и удержания». В новых релизах ЗУП используются обновленные механизмы работы с графическим интерфейсом и расширениями табличных частей, которые старые версии платформы (даже внутри одной минорной ветки 8.3.15) обрабатывают некорректно, что приводит к критической ошибке обращения к памяти.
Самым надежным и рекомендуемым способом решения является обновление технологической платформы. Рассмотрим алгоритм действий:
ReadMe.txt или V8Update.htm, который идет в комплекте с дистрибутивом обновления конфигурации.8.3.18, 8.3.22 или выше, в зависимости от рекомендаций разработчика для вашего релиза).Как показывает практика, переход на версию 8.3.18 и выше полностью устраняет проблему падения документа Увольнение, так как в этих версиях исправлены ошибки рендеринга сложных управляемых форм.
Если по каким-то организационным причинам (например, из-за требований других конфигураций на сервере) оперативное обновление платформы невозможно, рассмотрим обходной путь (workaround), связанный с изменением визуальной структуры формы. Разберем ситуацию: часто падение вызвано конфликтом отрисовки определенных групп элементов, таких как гиперссылки или подписи.
Попробуем выполнить следующие действия:
Увольнение (до перехода на проблемную вкладку).ГруппаПодписи или аналогичные элементы на вкладке начислений).Этот метод помогает в тех случаях, когда графический движок платформы не может правильно рассчитать координаты элементов при автоматической компоновке в горизонтальные ряды.
Иногда падение программы вызвано «мусорными» данными в локальном кэше, которые остались от предыдущих версий метаданных. Проанализируем процесс очистки:
Рассмотрим два способа очистки кэша:
%AppData%\1C\1Cv8 и %LocalAppData%\1C\1Cv8 и удалите все папки с именами-идентификаторами (длинные строки типа 4b8e...).После очистки кэша платформа заново десериализует формы из конфигурации, что может устранить ошибку при обращении к элементам управления на вкладке Начисления и удержания.
Если вы работаете в клиент-серверном варианте, выясним, не происходит ли падение на стороне сервера (рабочего процесса rphost). При переходе на вкладку начислений документ инициирует сложный расчет среднего заработка и остатков отпуска. Если в этот момент происходит разрыв соединения, клиентское приложение может закрыться.
Проанализируем следующие моменты:
Если вышеописанные методы не помогают, воспользуемся инструментами разработчика. Хотя зачастую отладчик не успевает перехватить «жесткое» падение платформы, мы можем попробовать найти «слабое место» в коде:
// В модуле формы документа Увольнение можно установить точку останова
// в процедуре ПриАктивизацииСтраницы или в обработчиках,
// связанных с расчетом начислений.
&НаКлиенте
Процедура ПриАктивизацииСтраницы(Элемент)
// Проверим, какой именно код выполняется при переходе
// на страницу "НачисленияИУдержания"
КонецПроцедуры
Проанализируем ситуацию через Замер производительности. Если программа падает во время выполнения серверного вызова, возможно, проблема кроется в некорректных данных в регистрах расчета (например, наличие «битых» ссылок или пустых графиков работы), которые вызывают бесконечный цикл или критическую ошибку в расчетном механизме ЗУП.
Важно: Всегда начинайте с проверки соответствия версии платформы. В 90% случаев для ЗУП 3.1.14 и выше — это единственный и самый правильный способ устранения подобных аварийных завершений работы.