суббота, 3 сентября 2011 г.

Работа с 1С 8.х из .Net приложений при помощи dynamic типов

В реалиях нашего рынка превалирующей по количеству внедрений учётной системой является 1C и рано или поздно люди, которые занимаются внедрением CRM систем сталкиваются с задачами интеграции/синхронизации данных между CRM и учётных систем (в частном случае 1C). Вот и передо мной эта задача тоже встала.

1С начиная с версии 8.0 предоставляет более-менее адекватный механизм работы с данными и метаданными системы - COM объект.

В качестве примера кода поставлю задачу создания в 1С контрагента и получения его кода.

вторник, 2 августа 2011 г.

суббота, 9 июля 2011 г.

Development - Offtopic

Есть замечательный анекдот про лесорубов и бензопилу.

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

Так вот к чему я. Решили использовать коллеги в проекте Entity Framework, а потом Linq2SQL - я был отрицательно к этому настроен, потому что ничего не может быть надёжнее чем прямых запросов к базе. Первый и второй оказались проблемными в использовании, порождали проблемы в использовании и занимали кучу времени на отладку. Я не спорю, что виной тому кривые руки. Но если проект срочный и критично время его завершения то лучше использовать проверенную двуручную пилу, чем учиться как использовать бензопилу.

среда, 19 января 2011 г.

CRM 4.0 - присвоение инцидента очереди

У меня была задача в соответствии с которой мне необходимо было присвоить инцидент в произвольную очередь. В MSDN есть замечательный пример. Но этот пример не работал в ситуации когда инцидент принадлежал не в очереди "In Progress" пользователя. Код далее работает универсально.

четверг, 26 августа 2010 г.

Счетчик записей для Microsoft Dynamics CRM 4.0: версия 2.1

Я публиковал счётчик записей в начале этого года - http://crmmagic.blogspot.com/2010/02/record-counter-for-microsoft-dynamics.html.

Пользователи, которые устанавливали его себе сообщили мне о возникающих ошибках. Теперь эти ошибки исправлены и Вы можете скачать последнюю версию счётчика здесь:


Также я добавил возможность контролировать вид строки итога. Это делается при регистрации плагина в плагинрегистраторе:

Execute step:


RetrieveMultiple step:

вторник, 13 июля 2010 г.

воскресенье, 20 июня 2010 г.

Расширенная обработка OnSave для форм в которых есть диалоги закрытия

Все разработчики кто занимался скриптами для CRM читал эту статью. Но в этой статье нет ни слова о том, как можно доступиться к данным из полей диалога закрытия (например в Возможной сделке. Я провёл небольшое исследованиями и пришёл к таким результатам:

пятница, 18 июня 2010 г.

Интеграция Google Maps v.3 в Microsoft Dynamics CRM 4.0

В этом посте я опишу как можно интегрировать Google Maps v.3 в Microsoft Dynamics CRM 4.0 используя IFrame.

среда, 16 июня 2010 г.

Форматирование даты и времени в бизнес процессах в Microsoft Dynamics CRM 4.0

В процессе работы с бизнес процессами CRM выяснилась одна интересная особенность - никоим образом отформатировать поле даты/времени при вставке в текстовое поле нельзя. Результат можно посмотреть на скриншоте:


воскресенье, 13 июня 2010 г.

Изменение отображения по умолчанию в сервисном календаре Microsoft Dynamics CRM 4.0

Один из моих клиентов сделать так, чтобы в сервисном календаре Microsoft Dynamics CRM 4.0 открывалось отображение 'Facility/Equipment'. Я не смог найти ни одного поддерживаемого способа сделать это, посему я решил применить неподдерживаемый способ - вставка JavaScript в страницу сервисного календаря.

пятница, 28 мая 2010 г.

Как отобразить данные полученные из Microsoft Dynamics CRM 4.0 в GridView на кастомной ASP.Net странице

Я видел эту статью одного из моих колег Hassan Hussain. Я решил прибегнуть к другому подходу для отображения данных в GridView - вместо BusinessEntitiesCollection я использовал Fetch.

вторник, 20 апреля 2010 г.

Использование маппинга атрибутов сущностей из JavaScript

Я - активный участник нескольких форумов посвящённых Microsoft Dynamics CRM. На этих форумах видел немало вопросов про маппинг - что это такое и как он работает. Особенность маппинга - что он срабатывает только раз - в момент, когда выполняется создание дочерней карточки из родительской. Если же в дочерней карточке обновить поле-лукап, ссылающееся на родительскую карточку - ничего не произойдёт. Я решил исправит данную ситуацию при помощи следующего скрипта:

вторник, 13 апреля 2010 г.

Отчёт использования CRM пользователями системы

Один из моих клиентов пожелал иметь возможность просматривать лог работы пользователей в CRM. Я знал, что MVP Дэвид Дженнавей (David Jennaway) создал такое решение основываясь на логах IIS. Но как я не бился - у меня не получилось заставить IIS записывать лог в базу. Также данный подход не будет работать в сценарие IFD, так как данная схема аутентификации (на уровне форм) не позволит нам отличить одного пользователя от другого.

понедельник, 29 марта 2010 г.

Изменение порта, на котором работает Reporting Services

У одного из моих клиентов возникла следующая проблема
SQL сервер и Microsoft CRM были установлены на один сервер. CRM был развёрнут на порту 5555. Потом на этот же сервер был установлен Апач на порт по умолчанию (80).

воскресенье, 21 февраля 2010 г.

Счетчик записей для Microsoft Dynamics CRM 4.0

Я разработал новую версию счётчика записей. Теперь счётчик работает не только в основных отображениях, но и в ассоциированных.

суббота, 20 февраля 2010 г.

Становлюсь независимым консультантом

5 марта станет последним мои рабочим днём в компании, где я работаю на данный момент. С уходом из компании я становлюсь независимым консультантом.

Если Вам необходимо установить/обновить/доработать Microsoft CRM - обращайтесь по почте, ICQ, MSN или Skype.

Мой опыт Microsoft Dynamics CRM:
- подготовка ИТ-инфраструктуры компании для разворачивания;
- установка и администрирование;
- импорт данных из других систем;
- настройка и разработка (настройка сущностей, разработка скриптов, настройка бизнес-правил, разработка плагинов и custom workflow activities, разработка отчётов).

воскресенье, 14 февраля 2010 г.

TechDays: Первый доклад

Начал выкладывать свои доклады по разработке под Microsoft Dynamics CRM 4.0. И параллельно буду складывать ссылки здесь под тегом доклады на Techdays.



PS - Никогда не мог подумать, что у меня такой препротивный голос =)

четверг, 11 февраля 2010 г.

Кастомный шаг бизнес процесса, который позволяет получить запись закрытия возможной сделки основываясь на возможной сделке.

Все данные, которые вы вводите при закрытии возможной сделки хранятся в отдельном объекте и недоступны из бизнес процесса. Я попытаюсь исправить это.