Dynamics NAV + Office Excel = Платформа Microsoft

Почитывая по утрам свежие маркетинговые материалы, неоднократно встречал упоминание про некую «Платформу Microsoft». С точки зрения автора данных листовок – это нечто очень крутое и напрочь отсутствует у других вендоров.
Охотно верю, что «Платформа Microsoft» может продаваться только Microsoft. А в чем фишка неподготовленному покупателю уловить трудно.
Сегодня я планирую несколько необычный выпуск. Он будет посвящен использованию Microsoft Excel. Да-да, именно Microsoft Excel на мой взгляд довольно точно демонстрирует понятие «Платформа Microsoft».
Конечно, можно было бы рассказать про Microsoft SQL Server с его возможностями анализа и отчетности. А оттуда перейти к IIS и SharePoint, на которых эту отчетность можно публиковать. Кстати, к SharePoint можно перейти непосредственно из Dynamics NAV (слышали про Employee Portal?), а в самом SharePoint есть Excel Services.
Но нет, я удержусь и расскажу насколько Microsoft Excel может быть полезен обычному пользователю Dynamics NAV.
Начнем с простого – с кнопочки “Отправить в Microsoft Office Excel”, уютно расположившейся на панели инструментов.

Export РІ Excel РёР· Dynamics NAV

РљСЂРѕРјРµ этой кнопочки, можно пользоваться меню Файл -> Отправить -> Р?Р· формы РІ Microsoft Excel или комбинацией клавиш Ctrl+E.
Все это будет работать, если запущена какая-либо форма (неважно карточка, список, документ или Навигатор). Система запустит Microsoft Excel и перенесет в него видимые поля/записи.
Детали про данную возможность появившуюся еще в версии Dynamics NAV 5.0 можно почитать в книге «Руководство пользователя Dynamics NAV 5.0».
Позволю проинформировать читателя о поддержке данной функции также в ролеоринтированном клиенте.

RTC и выгрузка в Excel

Обратите внимание, что в ролеориентированном клиенте вместо меню Файл используется меню Действия -> Отправить -> Microsoft Excel. Горячие клавиши не изменились.

Особенности функции Отправить в Excel – ограниченное количество записей (обычно 5000).

  1. Чтобы победить РІ классическом клиенте нужно выбрать меню Р?нструменты -> Настройка Рё изменить значение параметра Макс. РєРѕР»-РІРѕ отправляемых. XML-записей.
  2.  Чтобы победить в ролеориентированном клиенте нужно использовать билд 32146, а в файле ClientUsersSettings.config добавить ключ . Детали см. в https://mbs2.microsoft.com/Knowledgebase/KBDisplay.aspx?scid=kb$EN-US$2492490

Р? для читателей старой закалки – копирование через буфер обмена (например СЃ помощью клавиш Ctrl+C Рё Ctrl+V ) РїРѕ-прежнему работает для СЃРїРёСЃРєРѕРІ. Рљ сожалению, только РІ классическом клиенте.
Что надо знать про копирование через буфер.
1. РљРѕРґРёСЂРѕРІРєР°.

Проблемы с кодировкой при копировании из Dynamics NAV в Excel

Те символы, которые были в Dynamics NAV на русском, при вставке в Microsoft Excel оказались написаны кракозябрами.
Эта проблема решается довольно легко, нужно перед копированием изменить язык ввода на Русский.

Выбор языка ввода

2. Ведущие нули.

Пропали ведущие нули при вставке в Excel

Если использовать копирование через буфер обмена (кнопки выделены серым), то можно легко лишиться ведущих нулей.
Проблема в излишнем интеллекте Microsoft Excel, который преобразовывает текст в число.
Победить просто - достаточно указать, что для данного столбца используется текстовый формат. Только делать это надо ДО вставки данных, а не после.

Устанавливаем принудительно текстовый формат

Теперь вставка данных будет выглядеть так:

Корректно вставленные данные - нули спасены

Как видим на рисунке – данные вставились корректно – нули на месте.
Однако если посмотреть внимательнее, то теперь кроме ведущего нуля в данных ячейках появились зеленые уголки, информирующие пользователя об ошибке (с точки зрения интеллекта Microsoft Excel). Если выделить любую ячейку с зеленым уголком, то появляется иконка с символом вопроса. Если нажать на данную иконку, то система сообщит о проблеме и предложит варианты решения. В данном случае проблема звучит как: «Число сохранено как текст», а решением может быть «Преобразовать в число».
В нашем случае можем смело это игнорировать – потому как в результате преобразования будут отрезаны ведущие нули, а мы добивались обратного.

Лирическое отступление «Принципы нумерации».
Чтобы обеспечить правильную сортировку чисел в полях типа code или text, независимо от варианта используемого сервера, следует использовать следующие принципы:

  • Всегда использовать серии номеров фиксированной длины, например, 100-399.
  • РќРёРєРѕРіРґР° РЅРµ использовать РІ полях типа code или text такие серии номеров как 1-999.
  • РќРёРєРѕРіРґР° РЅРµ использовать РІ полях типа code или text такие серии номеров как 001-999.

Возможные проблемы:
Если вы не будете следовать принципам нумерации, то возможно возникновение проблем при наложении фильтров в Dynamics NAV.
Примеры:

  • Если РЅРµ использовать серию номеров фиксированной длины, то РїСЂРё наложении фильтра 10..20, результатом может стать 10,100……20.
  • Если РЅРµ следовать принципам нумерации, то РїСЂРё наложении фильтра 2..10, РЅРµ будет выбрано РЅРё РѕРґРЅРѕР№ записи, С‚.Рє. 2 идет после 10.
  • Если РІС‹ следуете принципам нумерации Рё используете серии номеров РёР· трех разрядов Рё установите фильтр 10..20, результатом будет 100,101,102……199.

Рекомендации по использованию серии номеров фиксированной длины:

  • Р?спользовать числовую серию номеров, которая начинается РЅРµ СЃ нуля, например, 100-399 (300 элементов). Если серия номеров окажется слишком короткой, то можно начать РЅРѕРІСѓСЋ, например 40000 – 69999 (30000 элементов). Пользователи довольно быстро привыкают Рє РІРІРѕРґСѓ номеров имеющих фиксированную длину.
    1001
    1002
    1003
    …
    9999
  • Р?спользовать серию номеров, содержащую Р±СѓРєРІС‹ РІ качестве префикса, например, A001-A999.
    A001
    A002
    A003
    …
    A999
    Если номера закончатся, можно создать новую серию номеров с другим префиксом. Важно: префикс в новой серии должен быть «больше» чем в старой. Т.е. если старая серия начиналась с буквы I, то следующую серию лучше делать с буквы K. В противном случае (например, если решено использовать букву F, новые записи окажутся выше/раньше старых, что не удобно).

3. Кавычки.
Начнем с интриги – в чем различие в двух выборках?

Два набора данных

Подсказка – посчитайте количество записей (для больших таблиц СЏ Р±С‹ пользовался меню Файл -> База данных -> Р?нформация, РєРЅРѕРїРєР° Таблицы)

База данных - Р?нформация - Таблицы

Данный очень мерзкий эффект происходит, если в поле таблицы есть открывающая двойная кавычка, но нет закрывающей.
Обычно такое РїСЂРѕРёСЃС…РѕРґРёС‚ РїСЂРё миграции данных РёР· РґСЂСѓРіРёС… систем. Р’ старой системе поле было 200 символов, Р° РІ Dynamics NAV, как известно меньше. Чтобы решить такую проблему – часто принимают волевое решение – резать, что РЅРµ влазит (РїСЂРѕ такую функцию расскажу чуть позже). Р?РјРїРѕСЂС‚ РїСЂРѕС…РѕРґРёС‚ корректно, РІСЃРµ данные есть РІ базе. РќРѕ чтобы РІ этом убедиться – консультанты пытаются скопировать загруженные данные РёР· Dynamics NAV СЃРЅРѕРІР° РІ Excel, Рё сравнить ее СЃ файлом, который предоставил заказчик.
Неоднократно видел седых молодых людей, которые копировали и импортировали, импортировали и копировали, не понимая, что происходит и почему данные не сходятся.
РЇ побеждаю проблему через правку данных РІ Dynamics NAV. Обычно делаю это через Object Designer (меню Р?нструменты). Если РјРЅРµ повезло Рё кавычка РЅРµ РІ первичном ключе, то помогает функция Заменить (меню Правка -> Заменить или комбинация клавиш Ctrl+H).
Заменить данные в базе

Если же кавычка в первичном ключе, тогда фильтрация и нудная процедура переименования. Можно вручную, можно кодом.

Р?так, СЏ рассказал РїСЂРѕ копирование данных РёР· форм. Рђ как же отчеты?

С отчетами ситуация спорная. Для тех, кто уже перешел на ролеориентированный клиент - все легко и приятно - есть специальная кнопка.

Сохранить отчет в Excel

С классическими отчетами все несколько сложнее. Такой кнопки нет. Зато есть меню Файл - Сохранить в формате HTML.

Сохранить как HTML

Не совсем то, что хотелось, но тоже неплохо, учитывая тот факт, что HTML очень неплохо открывается с помощью Microsoft Excel. Правда этот HTML имеет ряд недостатков, которые можно победить.

1. Кодировка. Если вы открыли файл, а кодировка там не та. Не нужно отчаиваться. Нужно изменить кодировку для веб документов в настройках Microsoft Excel.

Для этого открываем Файл - Параметры, Выбираем раздел Дополнительно, находим раздел Общее и нажимаем там кнопку Параметры Веб-документа. В открывшемся окне идем на закладку Кодировка и ставим кодировку Кириллица (Windows)

Кодировка для веб-документов

Вторая проблема - разделитель разрядов. По каким-то причинам, там стоит не то, что понимает Excel. Поэтому суммировать и выполнять другие арифметические действия над такими ячейкам он отказывается. Я побеждаю эту проблему так:

  1. Перехожу РІ ячейку, РіРґРµ есть число СЃ “пробелом”
  2. Щелкаю по ячейке, чтобы перейти в режим редактирования
  3. Выделяю этот “пробел”
  4. Нажимаю Ctrl + C, чтобы скопировать его в буфер обмена
  5. Нажимаю Ctrl + H, чтобы открыть окно Найти и Заменить
  6. Вставляю этот “пробел” РІ поле Найти (СЃ помощью Ctrl + V, потому как РєРЅРѕРїРєРё РЅР° панели инструментов ведут себя РЅРµ так как нужно)
  7. Заменяю РІСЃРµ вхождения этого “пробела”

Обычно сложности с такими отчетами на этом не заканчиваются - есть проблемы с форматированием, но они решабельны. Правило такое - чем проще макет отчета, тем проще он форматируется в Excel.

Р?так, несколько простых СЃРїРѕСЃРѕР±РѕРІ перенести данные РёР· Dynamics NAV РІ Excel СЏ рассказал. Оставайтесь РЅР° СЃРІСЏР·Рё.

Метки:



Комментариев: 4

  1. Петр Котельников пишет:

    Проблема разделителя разрядов при копировании из NAV в Excel
    решается указанием пробела, в явном виде, в качестве разделителя разрядов:
    Пуск->Панель управления->Язык и региональные стандарты->Форматы->Дополнительные параметры->Разделитель групп разрядов
    Необходимо удалить что там находиться и один раз нажать Пробел.
    Закрыть окна нажатием ОК.
    Эту операцию необходимо сделать для каждого пользователя на данном компьютере.

  2. Петр Котельников пишет:

    Проблема с кодировкой при копировании из NAV в EXCEL.
    В Excel можно выбрать “Специальная вставка” –> “Текст”

  3. apanko пишет:

    Надо бы прояснить один момент:
    Существует документ “Демонстрационный сценарий: Веб Cервисы NAV 2009. Р?нтеграция СЃ InfoPath Рё Excel”.
    Вдохновившись прочтением, граждане пытаются воспроизвести описанные действия на своих локальных инсталляциях.
    Р? натыкаются РЅР° проблему, потому как документ РіРѕРІРѕСЂРёС‚ РёРј “Выберите опцию редактирования РІ Excel – Редактировать РІ Excel.”, Р° такой опции нет.
    Проблема в том, что данная функциональность не является стандартной и не входит в поставку. Данная функция доступна только на виртуальной демо машине.
    Чтобы добавить такую функцию в свою инсталляцию рекомендую обратиться к блогу разработчика, где он пошагам описывает нужные действия:
    * http://blogs.msdn.com/b/freddyk/archive/2008/11/07/edit-in-excel-part-1-out-of-4.aspx
    * http://blogs.msdn.com/b/freddyk/archive/2008/11/07/edit-in-excel-part-2-out-of-4.aspx
    * http://blogs.msdn.com/b/freddyk/archive/2008/11/08/edit-in-excel-part-3-out-of-4.aspx
    * http://blogs.msdn.com/b/freddyk/archive/2008/11/09/edit-in-excel-part-4-out-of-4.aspx

  4. Зоя пишет:

    Добрый день! Столкнулись с проблемой отображения закрывающей даты при нажатии кнопки “Отправить в Microsoft Office Excel”. В Эксель закрывающая дата отображается как обычная. Можно ли это побороть?

Оставьте свой отзыв!