Персональный блог Игоря Антонова aka "spider_net"

Первые проблемы с 1С:Предприятие 8.3.6


Рубрика: Программирование -> 1С:Предприятие
Метки: | | |
Просмотров: 7661
Первые проблемы с 1С:Предприятие 8.3.6

Уже рассказывал, что в последние дни занимался переводом корпоративного проекта на платформу "1С:Предприятие 8.3". Мы очень хотели получить полноценный web-клиент, но в версии 8.2 это было невозможно из-за пересмотра современными браузерами отношения к модальным окнам. Разработчики Chrome просто выпилили этот функционал, и в результате веб-клиент 1С перестал корректно работать. В платформе 8.2 еще не были доступны асинхронные вызовы, поэтому единственным решением стала миграция.

Обычно миграция на новую версию платформы происходит просто и быстро: выгрузил базу, обновил платформу, вернул базу на место. Все счастливы. Увы, в этот раз нам не повезло. Пришлось протестировать конфигурацию, найти устаревшие функции и переписать их в соответствии с новыми требованиями. В одних местах это было сделать нетрудно. Небольшой рефакторинг и готово. А вот в нескольких участках, пришлось прямо скажем попотеть.

В итоге все получилось более, чем хорошо. Устаревшие функции были заменены современными аналогами, конфигурация была протестирована и отправлена в продакшн. Даже досадные мелочи о которых я рассказывал в заметке "неидеальная проверка конфигурации" не смогли вставить палки в колеса.

Реальная проблема возникла на третий день работы. При открытии любого списка документов стали валится ошибки. Причем возникла только при работе из толстого клиента. Веб-клиент и тонкие клиенты работали превосходно. Если бы это было не так, то наши клиенты съели бы на заживо.

Дело было так. Подключаюсь к информационной базе толстым клиентом, и хочу открыть список документов. Платформа задумывается и выплевывает ошибку: "Не найдена функция в модуле n". Открываю этот же список документов в веб-клиенте и тонком клиенте - никаких намеков на ошибки.

Тестирование конфигурации показало, что в толстом клиенте все валиться во время проверки модулей менеджеров документов. Модуль менеджеров выполняется всегда на сервере и поэтому необходимости в указании места выполнения (сервер, клиент) в процедурах/функциях никогда не было. В платформе 8.2 все работает просто на ура.

В общем, стоило добавить директивы &НаСервере перед каждой процедурой в модуле менеджеров, как все чудесным образом заработало. Ошибка больше не проявлялась. Я пока не нашел какой-либо официальной информации в отношении этого феномена, поэтому остаюсь в недоумении и склоняюсь к ошибкам платформы.

Может быть кто-нибудь из вас сталкивался с подобной проблемой? Я использую самую последнюю стабильную версию платформы 8.3.6.2041. Пока сделал дописку в виде &НаСерверре и все стало работать прекрасно, но хотелось бы узнать с чем связано подобное поведение в 8.3.6.

Оставьте комментарий!
comments powered by HyperComments