Пример устранения ошибки RTC клиента NAV 2009 SP1 (RU) с использованием Visual Studio

Немного в свободном стиле. Извиняюсь сразу…

С получением нового 22 дюймового монитора отторжение, испытываемое ранее мной при работе с 17 дюймовым монитором на RTC клиенте, сошло на нет…
Решил ‘потыкать’ свежий русский релиз именно через RTC клиента.

Вчера смотрел новую русскую зарплату.

Почти сразу же наткнулся на странную вещь.

Report 17353 (Карточка сотрудника T-2) выдает ошибку, если пытаться получить эту Excel форму с RTC клиента.
Показывает ошибку:
“Сообщение для программистов C/AL. Не удалось вызвать член Range: Exception from HRESULT: 0x800A03EC.”

NAV2009DebugExample01

При этом другие формы (так же Excel): Лицевой счет, Общий кадровый отчет проходят c RTC клиента без проблем.
Классический же клиент спокойно выдает T-2 карточку в Excel.

Сразу закрадываются нехорошие мысли, что это RTC проблема.

Сегодня с утра начинаю копать.

  • Компилирую объект – не помогает.
  • Рестартую сервис MicrosoftDynamicsNavServer – не помогает.
  • Тестирую на последнем (build 31671) опубликованном hotfix NAV 2009 SP1 – не помогает.
            (
    Ссылка для поиска платформенных hotfix, PartnerSource (доступен авторизованным партнерам):
    Overview of Released Platform Hotfixes for Microsoft Dynamics NAV 2009 SP1
               https://mbs.microsoft.com/partnersource/support/selfsupport/hottopics/NAV2009SP1PlatformHotfixOverview
             )
  • Ищу по тулам службы поддержки (старые сервисные запросы, зарегистрированные ошибки) – нет данных
  • Кратенько ищу поиском по Web-у (google,   :) bing) – не нахожу схожей ситуации ни в разрезе NAV/Excel, не в разрезе Excel.

Что за <…..>.

Надо дебагить RTC клиента.
Никогда этого не делал.

Обращаюсь в справку.
Оказывается все прописано просто в статье Walkthrough: Debugging an Action on a Page
https://msdn.microsoft.com/en-us/library/dd568715.aspx

В результате, сразу после запуска с RTC клиента проблемного отчета Visual Studio debugger вылетает на заполнении ячейки EducationInstitutionName1

NAV2009DebugExample03

NAV2009DebugExample04

Запускаю классического клиента, ищу report 17353 и нахожу где этот EducationInstitutionName… да есть такой.

NAV2009DebugExample05

Далее выгружаю шаблон и смотрю что это за проблемная ячейка.

NAV2009DebugExample06

NAV2009DebugExample07

 

 

Это оказывается диапазон ячеек в шаблоне обзывается по сложному: EducationInstitutionName1.

После некоторого количества попыток прихожу к выводу, что если адрес диапазона ячеек в C/AL коде обзывать по сложному, то RTC клиент их не цепляет.

А если просто сослаться на EducationInstitutionName1 как на A41 все Okay.

Вношу маленькое исправление в C/AL коде:

Report 17353 Employee Card T-2

FillEducationCells(RowNo : Integer;VAR EmployeeQualification : Record "Employee Qualification")
WITH EmployeeQualification DO BEGIN
//ExcelMgt.FillCell('EducationInstitutionName' + FORMAT(RowNo),"Institution/Company"); // comment line
ExcelMgt.FillCell('A41',"Institution/Company"); // new line

И вуаля (теперь и в RTC клиенте все работает):

NAV2009DebugExample08

P.S.
Не забудьте в файле CustomSettings.config вернуть параметр "EnableDebugging" в false.