Главная » Страница автора Андрей Стрельников


Автор: Андрей Стрельников

Об авторе: В области Navision - с 2003 года. Профессиональные интересы: NAV, MS SQL, .NET, BPMN, IT-менеджмент. Предметная область: логистика, финансы, склады, 3PL.

Опубликовано статей: 86

Список статей автора

Сортировка:

Из разговора (про блокировки Navision 3.7-5.0)

А: Сейчас наблюдал такую вещь. Открыта система – главное меню. И я залочил джоб, который делал UPDATE STATISTIC. Бага или фича? Б: Фича. Причем довольно неприятная. Приходилось сталкиваться раньше с подобным явлением. Путем долгих и мучительных изысканий удалось понять примерно следующее: когда открываешь Навижен не через ярлык с заранее установленными параметрами базы, пользователя и т.д., …

SQL-скрипт для определения размера таблиц

06.12.2011 | Рубрика: SQL, Новичкам

Так как статья про статистику использования индексов (читать здесь) пользуется популярностью, выложу еще один скрипт. Он показывает списком перечень всех таблиц с размерами данных и индексов. Работает на текущей базе. Работает даже на SQL Server 2000. Интересная для анализа вещь: DECLARE @pagesizeKB INT SELECT @pagesizeKB = low / 1024 FROM master.dbo.spt_values WHERE NUMBER = 1 …

Как модифицировать Help в Навижн

Терминология TOC – table of content – HTML файл в котором описана структура хелпа. Если проще – таблица из 2х столбцов, в первом – заголовок html страницы, во втором – ссылка на html страницу. CHM – compressed HTML Help. Дам сложное определение, что такое CHM: Внутри этого файла содержатся HTML страницы Внутри этого файла, как …

Замер производительности малой кровью

— Что ты пишешь? — спросили программиста. — Сейчас запустим — узнаем! — ответил программист. Задача повышения производительности стояла и стоит перед нами (разработчиками) всегда. Не только в процессе написания свежего кода, но и месяцы (годы) спустя — когда нагрузка на систему естественным образом возрастает. Или неестественно — в тяжелые предновогодние дни, когда графики всех …

Вычисляемое поле обновляется только при срабатывании триггера OnValidate

Краткое изложение проблемы Предположим, у вас на страцице есть вычисляемое поле («вычисляемое» в свойстве SourceExpression), а часть вычисления включает в себя ссылку на еще одно поле. Так вот, вычисляемое поле не обновится автоматически при изменении во втором поле (это, кстати, начиная с третьей версии навижн так работает – прим.перев.). Вычисляемое поле обновится ТОЛЬКО ЕСЛИ по …

Как установить демо-базу MS Dynamics NAV 2009 на именованный инстанс SQL Server

По умолчанию демо-база инсталлируется на инстанс с названием MSSQLSERVER. Для SQL Server 2005 это название инстанса идет по умолчанию. Но что делать, если SQL Server установлен с другим именем инстанса? Ответ кроется в использовании файла .msi вместо исполняемого файла в корне установочного DVD. Останется лишь одна небольшая неприятность – после подобной установки демо-базы вы не …

Хитрости NAV 2009: поиск по страницам, отчетам и view из ролевого центра (Role Center)

Используя поле «Поиск» (Search) справа от адресной строки, можно найти любой отчет, страницу или Departments view из комплекта поставки. Таким образом сильно экономится время на поиск. Как только вы начнете набирать что-нибудь в форме поиска, выскакивает выпадающий список с названиями отчетов и страниц, подходящими под то, что вы уже ввели. Чем дальше набираете строку, тем …

Сохранение/создание файла с сервера приложений NAV 2009 на другую машину (в share-папку)

Чтобы RTC мог экспортировать файлы в шару на другом компьютере при помощь Constrained Delegation, необходимо настроить делегирование прав для аккаунта, от имени которого запущен сервис, на машину, где расположена шара. Ниже пошаговая инструкция по настройке такого делегирования: 1. Найдите в Active Directory пользователя, под учетной записью которого работает NST, и перейдите на закладку Delegation Tabl: …

Работа с несколькими серверами приложений NAV 2009 – дубль 2 (SP1)

Прямо перед релизом Microsoft Dynamics NAV 2009 я написал заметку про работу с .BAT-файлами для создания нескольких серверов приложений для NAV 2009. Близится к выпуску NAV 2009 SP1, и пришло время для небольшого обновления. Во-первых, добавился файл CustomSettings.template, который представляет из себя CustomSettings.config с добавленными «переменными» (они заменили реальные значения), т.ч. стало возможным делать автоматический …

Ошибки выполнения SQL-запросов при установке Dynamics NAV 2009. Дубль 2

При переустановке Navision, а также в случаях ручного создания демо-базы (ее аттача на сервере) вероятно появление следующей ошибки: ————————— Microsoft Dynamics NAV 2009 Build 27808 Error Report SQL Server option Cronus Sample Database for Microsoft Dynamics NAV 2009 Fatal error during installation. Error -2147467259: failed to execute SQL string, error detail: A database with name …

Ошибка выполнения SQL-запроса при установке Dynamics NAV 2009

При установке Dynamics NAV 2009 иногда встречается такая редкая непонятная ошибка: —————————Microsoft Dynamics NAV 2009 Build 27808Error ReportSQL Server optionMicrosoft Dynamics NAV 2009 Components for Microsoft SQL ServerFatal error during installation. Error -2147217865: failed to execute SQL string, error detail: Invalid object name ‘master.sys.objects’., SQL key: DropXpNdoGroups SQL string: IF EXISTS (SELECT * FROM [master].[sys].[objects] …

4 BAT-файла на клиентском уровне (клиентского слоя NAV 2009)

Пожалуйста, перед чтением этой статьи ознакомьтесь с заметкой «Multiple Service Tiers» Неужели вам необходимо подходить к машине, на которой запущен сервер приложений (Service Tier), чтобы стартовать нужные сервисы вручную, или есть более простой способ сделать это? Наверно, уже догадались, что есть. Для этого нам понадобится команда SC: SC \\machine start servicename Предположим, что мы будем …

Работа нескольких серверов приложений NAV 2009

NOTE – there is an updated post reg. Multiple Service Tiers in NAV 2009 SP1 here. Перед чтением этой заметки прочитайте вначале статью про сервер приложений :) И у партнеров-внедренцев, и у клиентов достаточно распространена ситуация, когда есть несколько БД. Например, одна для разработки, вторая боевая. Или, например, у компании-внедренца крутятся все базы его клиентов, …

Проводите апгрейд NAV 2009 под учетной записью администратора при работе на машине с SQL

При апгрейде клиентского приложения Microsoft Dynamics NAV CSIDE на машине с установленным SQL Server (не знаю, зачем оно вообще там оказалось – прим.перев.), запускайте CSIDE-клиента с полными правами администратора (Run as administrator). Это так важно потому, что при локальном подключении из Vista или Windows 2008 Server к SQL Server’у, он обрезает часть прав текущего пользователя, …

Хитрости Dynamics NAV 2009: Сохраняем отфильтрованные списки

При работе со списками часто требуется отфильтроваться и дальше работать уже с подмножеством. Например – клиенты из Германии или товары с Голубого склада. После наложения фильтров, их можно сохранить. Это особенно полезно, когда фильтры надо наложить по нескольким полям, и совсем не улыбается делать это каждый раз при открытии формы. А вот способ есть – …

Хитрости NAV 2009: настройка панели действий (Action Pane)

Для панели действий в RTC предусмотрено много различных настроек: можно создать свою собственную группировку кнопок для ключевых (наиболее частых) задач; можно добавлять задачи и действий на большинство страниц; можно комбинировать эти задания в группы. можно менять размеры иконок, так что самое важное всегда будет на виду! Панель действий – часть страницы RTC, как карточек, так …

Хитрости NAV 2009: Настройка панели навигации

В навигационную панель можно добавлять/удалять кнопки и списки. Щелкните кнопку Customize в правом верхнем углу Центра Ролей. Нажмите Customize Navigation Pane. в окне «Customize Navigation Pane», нажмите New для создания новой кнопки. Введите имя кнопки, выберите иконку. Нажмите OK. Для размещения кнопки используйте кноки Move Up, Move Down, для переименования – Rename. Для добавления нового …

Хитрости Dynamics NAV 2009: Создаем оповещения из Task Page

В NAV 2009 появился новый функционал – создание оповещения со страниц заданий (например, из карточки клиента или заказа продажи). Их можно использовать как напоминания, или – как способ отправки сообщений другим пользователям Navision в вашей организации. Оповещение отображается в Role Center’е получателя. По щелку на оповещении, у получателя откроется связанный Task Page. Для создания оповещения, …

Хитрости Navision 2009: Меняем фильтр по умолчанию в полях ввода

В интерфейсе Navision есть т.н. «поля ввода» — например, Клиент Номер, Код Склада, Адрес. Как только вы начинаете заколачивать туда значение, выпадет список с возможными вариантами значений на основании уже введенных вами букв. Обычно, Microsoft Dynamics NAV устанавливает в такие поля фильтр по умолчанию – для цифровых полей (например, Клиент Но.) и текстовых (например, для …

SQL-запрос для отображения таблиц, их индексов и использования индексов

Написанный ниже SQL-запрос выводит список таблиц, отсортированных по размеру. Для каждой таблице показаны индексы. Для каждого индекса указано время его последнего запуска. Запрос написан с целью собрать разрозненные куски информации в одном месте для обзора, и помочь в настройке индексов. Столбцы слева показывают данные для таблицы (кол-во записей, размер таблицы, размер индексов), для демонстрации влияния …

Куда снова подевался zup-файл?

Я продолжаю забывать, где лежат файлы CustomSettings.config, ClientUserSettings.Config и т.п. Поэтому снова открыл статью про zup-файл. На этот раз, я собрал все пути к этим файлам в одной форме, так что искать их больше не придется. В дополнение к этому, теперь можно редактировать их прямо из этой формы. Выглядит это хозяйство примерно так: При первом …

Флаг трассировки 4616 на SQL Server для Dynamics NAV 2009

При запуске RTC-клиента или открытии базы в классическом клиенте вам выдается предупреждение, если неправильно выставлен т.н. «trace flag» (флаг трассировки). Из-за изменившейся security-модели на SQL Server 2005 навижн подключится к серверу только при установленном флаге трассировки 4616. Как это сделать: Откройте SQL Server Configuration Manager Щелкните правой кнопкой по MSSQLSERVER и выберите «Properties» В форме …

Запуск классических отчетов в RTC (RUNMODAL и кое-что еще)

В этой заметке – немного замечаний по запуску классических отчетов из RTC RUNMODAL (Not possible) RTC запускает классические отчеты (без RDL Layout) – запуском движка отчетов для классического клиента. При этом RTC не умеет запускать классические отчеты МОДАЛЬНО, запуск с помощью RUNMODAL приравнивается к RUN, т.е. программа не ждет, пока отчет отработает, а продолжает выполнение …

Выбор принтера в роле-ориентированном клиенте

На сегодняшний день форма 64 Printer Selections не перенесена на страницу 64 Printer Selections, т.к. виртуальная таблица 2000000039 больше не доступна из RTC. Задумавшись об альтернативных способах работы страницы 64, нашелся выход – попробовать новую функциональность NAV 2009 — Client Extensibility, хотя то же самое можно сделать и с помощью заполнения временной таблицы из COM. …

Утилита для получения информации по использованию индексов

04.01.2011 | Рубрика: Консультантам, Экспертам

Прикрепленный к заметке файл – набор объектов Navision, которые собирают статистику использования индексов и отображают ее в клиенте NAV, при этом таблицы можно отсортировать по количеству индексов/количеству чтений индексов/количеству блокировок (тоже индексов) и прочая, и прочая: Утилита использует следующие SQL-запросы / DMV: sys.indexes: Основная информация по индексам sys.dm_db_index_usage_stats: Количество чтений, UPDATE’ов и т.п. sys.dm_db_index_operational_stats: информация …

NAV 2009 – куда подевался zup-файл?

В более ранних версиях настройки клиента хранились в файле .zup. В Microsoft Dynamics NAV 2009 это немного усложнили. В заметке мы постараемся объяснить, где какие настройки хранятся. К тому же, в NAV 2009 вам может понадобиться время, чтобы найти файлы в папках с длинными названиями. В статье мы расскажем, где находится каждый файл, чтобы побыстрее …

Несколько советов разработчикам MS Dynamics NAV 2009 (RTC)

Здесь собраны несколько советов, которые пригодятся при разработке в NAV 2009. Прошу сильно не бить, если они покажутся смешными (кому как :) Управление файлами на компьютере с запущенным RTC В C/AL для работы с файлами имеются следующие команды: EXIST: EXISTS(<File_Name>); RENAME(<Old_File_Name>,<New_File_Name>); ERASE(<File_Name>); COPY(<From_File_Name>,<To_File_Name> ) . Но они работают только с классическим клиентом, на RTC эти операции …

Подключение к веб-сервисам NAV из VBScript

Серия статей про подключение к веб-сервисам NAV подходит к концу. Думаю, что охватил большинство платформ, на которых оно могло потребоваться — в некоторых случаях это было просто, иногда немного сложнее. Я не писал про Flash, так же как и не писал про вещи типа iPhone или iPod Touch, в основном потому, что не думаю, что …

Подключение к веб-сервисам NAV с WM 6.5

Стыдно признать, но заметку про подключение к веб-сервисам NAV из Windows Mobile 6 я писал, когда уже полгода как вышла версия 6.5. Вот такой я «мобильный» :) Только что скачал отсюда 6.5 SDK и попробовал набросать то же самое приложение, которые писал для Windows Mobile 6, все работает хорошо, так что просто выполните пошагово статьи …

Подключение к веб-сервисам NAV из Windows Mobile 6

Я сделал свое самое первое приложение для Windows Mobile! Она работает на эмуляторе из Professional SDK. Кроме того, я попробовал развернуть свое приложение на реальном устройстве (своем смартфоне), и у меня получилось: Сказать по правде, самое сложное – провести начальную настройку, чтобы можно было работать. Несколько полезных ссылок для понимания процесса Windows Mobile 6 SDK …

Подключение к веб-сервисам Navision из Visual Basic.NET при помощи Web Reference

В целом, эта заметка – всего лишь переписанная для Visual Basic вот эта статья, так что прочитайте сначала ее. Кроме того, это мое первое приложение на Visual Basic. Не думаю, что есть способ сделать вещь из заголовка проще, но опять же – возможно, я не прав. Я создаю консольное приложение Visual Basic и добавляю два …

Подключение к веб-сервисам NAV из Visual Basic.NET при помощи Service Reference

В целом, настоящая заметка – это переписанные на языке Visual Basic статьи «Подключение к веб-сервисам NAV из C# при помощи Service Reference (вариант с написанием кода)» и «», объединенные вместе, так что ознакомьтесь с ними перед чтением этой заметки. Как уже описывалось в других заметках, есть два способа работы с Service References. Первый – хранить …

Подключение к Web-сервисам NAV из Java

Необходимые знания/навыки Пожалуйста, вначале прочтите эту статью – чтобы получить разъяснение по поводу изменений сервера приложений для работы с NTML-аутентификацией, а также краткого описания сценария, которую я буду реализовывать в Java. Ну еще, конечно, надо немного знать Java :-) Версии и дистрибутивы Java не поддерживает SPNEGO-протокол аутентификации, но имеется поддержка NTLM-аутентификации, так что вам придется …

Подключение к web-сервисам NAV из PHP

04.01.2011 | Рубрика: Разработчикам

Необходимые знания/навыки Пожалуйста, вначале прочтите эту статью – чтобы получить разъяснение по поводу изменений сервера приложений для работы с NTML-аутентификацией, а также краткого описания сценария, которую я буду реализовывать в PHP. Ну еще, конечно, надо немного знать PHP :-) Версии В примере я использую PHP версии 5.2.11, которую скачал с http://www.php.net, но в принципе должно …

Подключение к веб-сервисам NAV из C# при помощи Service Reference (вариант с написанием кода)

Прежде чем приступить к чтению этой статью, ознакомьтесь с заметкой connecting to NAV Web Services from C# using Service Reference (config file version) . Code is king Как вы уже наблюдали в прошлой заметке, файл конфигурации – довольно сложен и, хотя он поддается редактированию вручную (во время инсталляции или позже), я все-таки предпочитаю прописать определенный …

Запрет открытия нескольких сессий в Navision при помощи SQL Server

Прямо скажем, этот вопрос возникает очень часто – «Как запретить одному и тому же пользователю открывать несколько окон Navision одновременно?” Обычно вопрос связан с ограничением по количеству сессий, ну или еще с чем-нибудь. Пройдясь по основным форумам, вам подскажут несколько подходов для реализации этой задачи – от использования сторонних приложений (для завершения процессов), до отправки …

Как создавать/читать xml-файлы из NAV…

В своей предыдущей заметке я описал возможности по чтению xml-файлов из NAV. При этом сам файл – просто прикрепил, и не рассказал, как их создавать. Исправляюсь. —— <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mbs="http://www.microsoft.com/mbs/xml"> <soapenv:Header xmlns:soapenv="soapenv"> <soapenv:Body> <mbs:enumeration xmlns:mbs="mbs"> <mbs:table>Customers</mbs:table> <mbs:Customer>   <mbs:CustomerAuthentication>     <mbs:No>10000</mbs:No>     <mbs:Name>The Cannon Group PLC</mbs:Name>   </mbs:CustomerAuthentication>   …

Как прочесть xml-документ из Navision при помощи Microsoft XMLDOM automation

Мне часто задают вопросы типа «Как в Navision читать xml-документы без использования xml-портов?» В основном они связаны с тем, что xml-порты имеют ограничения и не всегда их можно использовать. Вот пример кодеюнита, который считывает xml-узлы из файлы. Просто пример, ничего более… :-) OBJECT Codeunit 50050 xml read {   OBJECT-PROPERTIES   {     Date=05.08.12; …

Подключение к веб-сервисам NAV из C# с помощью Web Reference

Предыстория Пожалуйста, ознакомьтесь с этой заметкой, чтобы получить представление о сценарии, который я собираюсь реализовать на C# с помощью Web Reference’ов. Что касается аутентификации, то для C# можем запускать сервер приложений с Negotiate, или с NTLM (как в PHP и Java). В своем примере я предполагаю, что сервер приложений будет использовать SPNEGO (т.е. по умолчанию). …

Подключение к веб-сервисам NAV из …

Когда-то я обещал написать несколько статей по тому, каким образом подключаться к веб-сервисам NAV из разных языков программирования/различных платформ, и, чует мое сердце, настало время сдержать данное обещание. Я напишу несколько заметок по подключение к веб-сервисам NAV из: PHP; Java; C#, используя Web References; C#, используя Service Reference; Javascript; Visual Basic, используя Web Reference; Visual …

Обновление до NAV 2009 SP1

При проведении обновления – даже не трогая базы и объекты – на NAV 2009 SP1, помните – надо заново скомпилировать все объекты для новой версии экзешников. Компиляцию надо делать во времмя апдейта с NAV 2009 RTM (без SP) на SP1. Для SP1 способ компиляции объектов для RTC (Role Tailored Client) изменился, и, возможно, может снова …

Ошибка «Could not open key» во время установки NAV 2009

Во время установки Dynamics NAV 2009 один мой друг столкнулся вот с такой проблемой: ————————— Microsoft Dynamics NAV 2009 Build 27808 Error Report RoleTailored client Microsoft Dynamics NAV 2009 RoleTailored client Fatal error during installation. Could not open key: UNKNOWN\MSComDlg.CommonDialog.1\CLSID. Verify that you have sufficient access to that key, or contact your support personnel. ————————— …

Как установить на NAV 2009 несколько демо-баз

Во время работы инсталлятора по умолчанию вы можете установить только одну демо-базу. А что если вам нужно несколько демо-баз, для разных вещей? Как это сделать? Предполагается, что вы умеете создавать новую фирму в классическом клиенте, но вот с демо-данными беда. Решение – использовать SQL Server Management Studio, чтобы поднять на сервере несколько версий демо-базы. Остановите …

Установка хранимых процедур для NAV 2009 вручную

Вообще-то для установки хранимых процедур рекомендуется использовать инсталлятор с продуктового DVD. Но если на одной машине у вас работают несколько инстансов SQL Server’а, такой подход не сработает. Надо сделать это вручную. Скопируйте файл xp_ndo.dll туда, где будете его хранить. Файл находится на DVD в папке “D:\SQLDatabase\PFiles\Microsoft Dynamics NAV\60\Database” on the product DVD. Для добавления ХП …

Как увеличить производительность Microsoft Dynamics NAV за счет уменьшения чтений из базы

14.12.2010 | Рубрика: Разработчикам, Экспертам

Самый простой (для программиста), но самый медленный (с точки зрения производительности) способ Так пишет большинство. При прогоне цикла по таблице и использовании GET (а также FINDFIRST/FINDLAST) по другой таблице, в которой вам надо получить данные, большиство выполняют эти GET-операторы в каждой итерации цикла, даже если на предыдущей итерации уже получено правильное значение: recItemLedgerEntry.RESET; recItemLedgerEntry.SETCURRENTKEY("…"); recItemLedgerEntry.SETRANGE("…"); …

Ошибка CREATE DATABASE при установке демо-базы

14.12.2010 | Рубрика: Microsoft Dynamics NAV 2009

Сегодня пришлось столкнуться с проблемой во время установки демо-базы. В отчете об ошибках было приведено следующее сообщение об ошибке: SQL Server option Cronus Sample Database for Microsoft Dynamics NAV 2009 Fatal error during installation. CREATE DATABASE failed. Some file names listed could not be created. Check related errors. After click on the open config link …

Как поставить несколько cерверов БД Navision на одну рабочую станцию

На одной рабочей станции можно держать несколько разных Navision Servers. Лично у меня есть несколько демонстрационных баз CRONUS (3.01B IT, 3.10A IT, 3.10A W1, 360 IT, 360 W1, 370 IT, 370 W1, 370A IT, 370A W1, 370B IT, 370B W1, 4.00 IT, 4.00 W1) и несколько БД по клиентским проектам. Естественно, они не запускаются автоматически, …

Как создать MatrixBox в Navision

13.12.2010 | Рубрика: Новичкам, Разработчикам

Пример 1. Клиенты и товары Первая форма (Form 50000) покажет нам, как создать MatrixBox с нуля (матрица покажет объемы проданных товаров (и каких именно) по клиентам за определенный период. Шаги по созданию матрицы описаны и в этой заметке, и в самой форме в секции Documentation. Просмотр/редактирование 2-мерного массива Вторая форма (50001) – пример использования матрицы …

Microsoft Dynamics NAV 5.0 SP1 и SQL Server 2000

13.12.2010 | Рубрика: Microsoft Dynamics NAV 5.0, Экспертам

Пятая версия Navision SP1 предлагает новый способ управления SIFT’ами. Вместо хранения total’ов (агрегатных показателей по разным группировкам), система использует фичу SQL Server — индексированные представления (indexed views). При работе с MS SQL 2000 обновление индексированного представления может занимать достаточно продолжительное время, т.к. SQL Server может включить в план выполнения запроса на UPDATE способ перемещения по …

Изменение названий фирм для работы веб-сервисов NAV

12.12.2010 | Рубрика: Microsoft Dynamics NAV 2009

Некоторое время назад я заметил всплеск ошибок, связанных с доступом к веб-сервисам. Часть этих проблем была связана с тем, что компания «CRONUS USA, Inc.» превращается в непонятное «CRONUS_USA_x002C__Inc». Это будет исправлено в NAV 2009 SP1, но до тех пор полезно бы точно знать, как названия фирм преобразуются для работы с веб-сервисами. Правила следующие: Символ % …