Общие принципы, использованные при создании модуля

advertisement
ЗАО МОНОЛИТ-ИНФО
УТВЕРЖДАЮ
Начальник отдела
программирования
____________
/ К.О. Семенов /
МП
31.05.2010
Программный комплекс МОНОЛИТ SQL
Система МОНОЛИТ:CRM
Модуль интеграции 1С 8
Описание настройки модуля интеграции
На 25 листах
СОГЛАСОВАНО
Менеджер проекта
____________
/ Ю. М. Денисов /
МП
31.05.2010
Санкт-Петербург
2007
Настройка модуля интеграции для 1С 8
2
Содержание
1. ВВЕДЕНИЕ ............................................................................................................................................................. 3
2. ОБЩИЕ СВЕДЕНИЯ О МОДУЛЕ ИНТЕГРАЦИИ «МОНОЛИТ: CRM» С «1С ПРЕДПРИЯТИЕМ»
ВЕРСИИ 7.7 ................................................................................................................................................................ 4
3. ОПИСАНИЕ ПРИНЦИПА РАБОТЫ МОДУЛЯ В АВТОМАТИЧЕСКОМ РЕЖИМЕ........................... 6
4. ОПИСАНИЕ УСТАНОВКИ СЕРВИСНОЙ СЛУЖБЫ И ВНЕШНЕЙ КОМПОНЕНТЫ. ..................... 6
5. КОНФИГУРИРОВАНИЕ МОДУЛЯ ДЛЯ РАБОТЫ С 1С ПРЕДПРИЯТИЕМ ........................................ 8
6. ОПИСАНИЕ СЛУЖЕБНЫХ ФАЙЛОВ МОДУЛЯ ИНТЕГРАЦИИ. ....................................................... 12
7. НАСТРОЙКА ОБМЕНА ТОВАРАМИ И ЕДИНИЦАМИ ИЗМЕРЕНИЯ (ОБМЕН CRMWARE). ...... 12
8. НАСТРОЙКА ОБМЕНА ОСТАТКАМИ НА СКЛАДАХ (ОБМЕН CRMWHBALANCEEX). .............. 14
9. НАСТРОЙКА ОБМЕНА ОТГРУЗКАМИ (ОБМЕН CRMDESPATCHEX). ............................................. 14
10. НАСТРОЙКА ОБМЕНА ЗАКАЗАМИ (ОБМЕН CRMORDEREX). ........................................................ 19
11. НАСТРОЙКА ОБМЕНА СТАТУСАМИ ЗАКАЗОВ (ОБМЕН CRMORDERSTATUS). ....................... 21
12. ВСПОМОГАТЕЛЬНЫЕ ЭЛЕМЕНТЫ МОДУЛЯ. ..................................................................................... 22
Настройка модуля интеграции для 1С 8
3
1. Введение
В данном документе будут рассмотрены вопросы, связанные с установкой,
настройкой и работой модуля обмена информацией между системами «Монолит: CRM» и
«1С Предприятием» версии 8.
Настройка модуля интеграции для 1С 8
4
2. Общие сведения о модуле интеграции «Монолит: CRM» с «1С Предприятием»
версии 8
Модуль интеграции (обмена) предназначен для передачи информации о товарах и
полученных заказах из системы «Монолит: CRM» в систему управления продажами
дистрибутора, построенную на базе «1С Предприятия» версии 8, а так же для передачи в
обратном направлении информации об остатках на складах, отгрузках и текущего
состояния взаиморасчетов.
Перед разработкой обмена были сформулированы следующие критерии, которым
должен был отвечать модуль:
1. Необходимо разработать программный продукт, который обеспечивал бы обмен
данными между системой управления продажами на базе 1С Предприятия версии 8 и
системой «Монолит: CRM».
2. Обмен происходит файлами в формате xml. Формат файлов приводится в
приложении (документ описания файлов формата доступен для ознакомления на сайте
компании Монолит-Инфо). Важно: передаваемая информация представляет собой
текстовую строку неограниченной длины, без служебных символов (таких как возврат
каретки, перевод строки и символ табуляции).
3. При установке и настройке модуля необходимо исключить любые изменения в
конфигурации партнера компании-поставщика.
4. Модуль должен обеспечивать возможность как ручного (инициированного
оператором), так и автоматического обмена информацией по заранее созданному
расписанию.
5. Обмен данными с веб-сервисом должен происходить по протоколу HTTP-POST,
что гарантирует контроль выполнения процедур обмена с возможностью
протоколирования для выявления ошибок.
В результате анализа поставленной задачи и системы управления продажами (1С
Предприятие 8) была разработана структура модуля:
1. Так как система 1С в базовой версии не имеет встроенной функции выполнения
заданий по расписанию и настройка ее работы с внешними приложениями в любом случае
требует дополнительного программирования, было принято решение разделить модуль на
две части:
- Сервисную службу, которая осуществляла бы контроль расписания и запуск 1С
как COM OLE-объекта;
- Набор внешних обработок, которые обеспечивали бы логику работы модуля
(выборку и форматирование данных);
2. Поскольку система 1С позволяет вносить в типовые конфигурации любые
изменения и создавать собственные (оригинальные) конфигурации, то создать модель
настройки модуля для произвольной конфигурации весьма затруднительно. Поэтому было
принято решение о том, что параметры работы модуля будут настраиваться интерактивно
(в форме), а логика работы программных процедур будет корректироваться
специалистами по 1С на местах установки (у конечных пользователей – дистрибуторов).
В настоящее время модуль состоит из двух частей. Первая, отвечающая за работу
модуля в среде операционной системы, устанавливается стандартным образом (файл
setup.exe). Вторая, обеспечивающая работу модуля в среде 1С и состоящая из набора
внешних обработок, устанавливается в любое удобное для пользователя место.
Структура модуля приведена на рисунке.
Настройка модуля интеграции для 1С 8
5
Рисунок 1. Структура модуля обмена
Настройка модуля интеграции для 1С 8
6
Не смотря на то, что модуль предназначен для работы в автоматическом режиме, в
процессе настройки и тестирования, а так же для случаев, когда автоматический обмен не
состоялся по независящим от пользователя причинам, есть возможность выполнения всех
необходимых обменов вручную. Для облегчения настройки модуля, специалистами
компании Монолит-Инфо была создана внешняя компонента для 1С, которая
обеспечивает соединение с веб-сервисом по протоколу HTTP-POST, что позволяет
ограничиться только настройками модуля под конфигурацию дистрибутора.
3. Описание принципа работы модуля в автоматическом режиме.
Последовательность действий, выполняемых модулем при выполнении обменов
можно описать следующим образом:
- При запуске сервисной службы происходит считывание текущего расписания из
файла конфигурации модуля.
- Раз в 30 секунд сервисная служба просматривает расписание обменов. Если флаг
обновления расписания установлен, то оно загружается в память, иначе продолжается
работа с имеющимся расписанием.
- Сравнивая текущее системное время со временем, установленным для элементов
расписания, сервисная служба определяет, когда запускать очередной обмен.
- Сервисная служба пытается произвести запуск 1С как COM OLE-объекта.
- В случае если запуск прошел успешно, то в систему передаются параметры для
открытия формы внешней обработки Exchange.epf, которая содержит все необходимые
процедуры для инициализации модуля и запуска обменов.
- Получив все необходимые параметры, модуль выполняет запрос к базе данных и
оформляет результат в формате xml в виде текстовой строки неограниченной длины.
- Полученные данные с использованием внешней компоненты MIOConnect.dll
передаются для обработки веб-сервисом компании-поставщика. Результат обмена
заносится в журнал.
- По завершении обмена, 1С автоматически выгружается из памяти (работа сессии
прекращается).
4. Описание установки сервисной службы и внешней компоненты.
Для того, чтобы установить модуль интеграции необходимо зайти на сайт компании
Монолит-Инфо и скачать архив на свой компьютер. Затем распаковать архив и запустить
файл setup.exe
Далее будет предложена стандартная процедура инсталляции приложения Windows,
необходимо подтверждать каждый следующий шаг, нажимая кнопку «Далее». При
желании можно указать другую папку для установки. По умолчанию предлагается путь
C:\Program Files\Monolit CRM\MI1C.
После установки модуля необходимо произвести первоначальную настройку. Для
этого необходимо, чтобы системный администратор или другой специалист ИТ открыл
окно с перечнем служб (Services) и выполнил запуск службы CRMDataExchangeService.
Кроме того, необходимо помнить, что после каждой перезагрузки выделенного
компьютера или сервера необходимо проверять и при необходимости перезапускать
данную службу или настроить автозапуск службы после перезагрузки компьютера.
Рекомендуется для работы модуля создать выделенного пользователя с
расширенными правами или с правами локального администратора. В любом случае
необходимо проследить, чтобы у данного пользователя была автоматическая авторизация
на прокси-сервере (если дистрибутор использует для доступа в сеть Интернет прокси-
Настройка модуля интеграции для 1С 8
7
сервер с авторизацией), а так же полный доступ к папкам, в которых установлены база
данных и где находится файл конфигурации модуля mioconnect.config. Рекомендуется все
настройки проводить под этим специально созданным login-ом. Особое внимание следует
уделить настройке сервисной службы. Перед запуском следует открыть службу (см.
рисунок 2)
Рисунок 2. Запуск сервисной службы
Затем перейти на закладку Log On (см. рисунок 3) и указать в поле полное
доменное имя пользователя. Если дистрибутор не использует доменную структуру при
организации сети, можно указать сетевого пользователя, но проследить, чтобы все
необходимые доступы у него так же были настроены.
Рисунок 3. Ввод логина пользователя, от имени которого запускается служба
Настройка модуля интеграции для 1С 8
8
Для того чтобы обновить модуль интеграции, необходимо выполнить следующие
действия:
- Открыть пункт меню Пуск -> Настройки -> Панель управления -> Установка и
удаление программ.
- Выбрать в списке МОНОЛИТ: CRM. Модуль интеграции 1С
- Выбрать пункт «Удалить».
После удаления модуля перезагрузка системы не требуется.
После удаления модуля необходимо запустить setup.exe новой версии. Для того, чтобы
не пришлось снова вводить все параметры настройки, действовавшие для обновляемой
версии, рекомендуется предварительно сделать копию файла mioconnect.config, чтобы
затем снова скопировать его в папку после обновления.
Возможна ситуация, когда модуль по каким-либо причинам не удаляется. Чаще всего,
это связано с тем, что была попытка установки новой версии модуля поверх уже
установленной. К сожалению, текущая версия программы-инсталлятора не поддерживает
возможность установки обновленной версии поверх текущей. Поэтому, если модуль не
удаляется и выдает сообщение об ошибке, системному администратору необходимо
произвести удаление всех записей о модуле из системного реестра и произвести
инсталляцию новой версии так, как это описано ниже.
В случае, когда необходимо удалить модуль интеграции, достаточно выполнить
следующие действия:
- Открыть пункт меню Пуск -> Настройки -> Панель управления -> Установка и
удаление программ.
- Выбрать в списке МОНОЛИТ: CRM. Модуль интеграции 1С
- Выбрать пункт «Удалить».
После удаления модуля перезагрузка системы не требуется.
5. Конфигурирование модуля для работы с 1С Предприятием
Для осуществления работы в 1С необходимо загрузить с сайта компании МонолитИнфо набор внешних обработок и распаковать их в папку, где они и будут храниться.
Следующим шагом нужно выполнить объединение конфигурации из поставки модуля с
рабочей конфигурацией дистрибутора. При этом необходимо обязательно проследить за
тем, чтобы в систему были перенесены только элементы с префиксом «Монолит», так как
именно они используются для работы модуля, а остальные элементы конфигурации
необходимы только для сохранения правильного типа ссылок. Отдельно нужно
проследить за присвоением нужного типа реквизиту регистра сведений «Монолит таблица
сопоставления контрагентов» Address. В случае, если дистрибутор использует для
торговых точек отдельный справочник, необходимо установить связь реквизита именно с
этим справочником. После обновления конфигурацию сохраняем.
После этого нужно открыть рабочую базу в 1С и запустить внешнюю обработку
Exchange.epf. Для начала работы с модулем необходимо выполнить некоторые
предварительные действия, а именно:
- Отправить в службу ИТ компании-поставщика письмо с уведомлением о том, что
дистрибутор собирается запустить у себя модуль обмена. В письме необходимо указать
полное наименование дистрибутора, контактную информацию и список полных кодов
складов, с которых будет производиться отгрузка товаров поставщика клиентам
дистрибутора. Так же можно заказать пароль для обменов.
Настройка модуля интеграции для 1С 8
9
- Через некоторое время от службы ИТ компании-поставщика будет получен ответ,
который будет содержать в себе код базы данных (каждая физическая база данных
должна иметь уникальный код – это связано с распределением заказов), сертификат
подключения к веб-сервису, который надо установить с помощью приложения Internet
Explorer и адрес веб-сервиса. Если дистрибутор заказывал пароль, то, помимо кода базы
данных, будет предоставлен и пароль.
Рисунок 4. Общий вид рабочей формы модуля интеграции
Рисунок 5. Закладка настройки параметров соединения с веб-сервером
Настройка модуля интеграции для 1С 8
10
На рисунке 5 видно, что на форме заполнены реквизиты адреса веб-сервиса и кода
базы данных. Кроме того, на этой закладке необходимо обязательно установить чек-бокс
«Согласование у дистрибутора», а так же заполнить реквизиты «Пользователь 1С для
робота», «Пароль», указать наименование сервера 1С и наименование базы данных на
сервере. Важно: для использования модуля обязательно устанавливать сервер 1С!
Если дистрибутор использует для выхода в Интернет прокси-сервер, то
необходимо указать его адрес и открытый порт. Обязательно убедитесь, что
авторизация для пользователя операционной системы не требуется!
На данной закладке можно так же указать список адресов, куда будут приходить
сообщения о результатах обмена, выбрать режим оповещения (всегда или только об
ошибках). По умолчанию при загрузке заказов формируется документ «Заказ
покупателя», на основании которого ответственными операторами могут быть
сформированы документы реализации.
При настройке автоматического обмена заполняется перечень процедур, которые
необходимо выполнять без участия оператора. Список таких процедур можно
просмотреть, создать и отредактировать на закладке «Автообмен». Чтобы добавить
процедуру в список, необходимо выполнить следующие действия: нажать кнопку
Откроется окно ввода нового задания:
.
Рисунок 6. Форма для заполнения списка автообменов
В первую очередь выбирается вид автоматического обмена из списка, после чего
устанавливается время его выполнения, если он запускается единожды в сутки или
интервал, если данный обмен должен выполняться с заданной регулярностью. В качестве
периода устанавливается интервал в часах или минутах, а так же задается начало и
окончание процедуры обмена в течение суток.
ВАЖНО: помните, что автоматический обмен настраивается в пределах
суток, то есть интервал времени, который имеет смысл указывать, находится между
00:00:00 и 23:59:59, а если вы настраиваете периодический обмен, то период между
отдельными заданиями не должен быть БОЛЬШЕ указанного интервала
выполнения. Так, в частности, очень часто интервал обмена (реквизиты «Начало» и
«Окончание») указывают равным, к примеру, 8:00 и 22:00, а период обмена
выставляют в 24 часа. С точки зрения логики работы модуля, это означает, что
обработка не будет запущена ни разу.
Настройка модуля интеграции для 1С 8
11
Рисунок 7. Форма для заполнения списка автообменов
Рисунок 8. Форма для заполнения списка автообменов
При заполнении формы или внесении изменений, по окончании ввода данных
необходимо обязательно нажимать кнопку «Сохранить».
После заполнения данных на закладке «Автообмен», следует вернуться на закладку
«Обмены» и указать склады, с которыми будет работать модуль (см. рисунок 4, правый
нижний угол формы).
Первичная настройка модуля закончена. Прежде чем приступать к тестированию
обменов, необходимо ознакомиться со служебными файлами, которые автоматически
создаются при установке модуля и призваны обеспечить работу модуля.
Начиная с версии модуля 8-1.0.20 появилась возможность сжатия данных перед
передачей их в систему «Монолит-CRM». Для этого необходимо установить последнюю
доступную версию системных файлов модуля (версия mioconnect.dll не старше
1.0.10.32609, обязательно наличие библиотеки dlconnect.dll), после чего необходимо
установить чек-бокс «Включить сжатие данных» (см. рисунок 5). В результате этих
действий параметр UseCompression будет установлен в 1 и система начнет автоматически
сжимать подготовленные данные в формате zip. Данные о заказах в этом случае также
передаются в сжатом виде и автоматически распаковываются перед обработкой в 1С. Если
чек-бокс не устанавливать в 1, обмены будут работать в обычном режиме.
Настройка модуля интеграции для 1С 8
12
6. Описание служебных файлов модуля интеграции.
Так как модуль разработан для интеграции учетных систем, для обмена
информацией необходимо создать таблицы соответствия, которые позволили бы
установить однозначное соответствие элементов учета одной системы элементам учета
другой системы. В настоящее время в модуле применяется две таблицы соответствия –
для товаров и контрагентов (это регистры сведений «Монолит Таблица Сопоставления
Контрагентов» и «Монолит Таблица Сопоставления Номенклатуры»), кроме того,
используется еще один служебный регистр сведений «Монолит Таблица Заказов», в
котором хранится информация о поступивших в систему заказах и их статусах. Данные
регистры создаются вручную или переносятся при объединении конфигурации
дистрибутора с конфигурацией, поставляемой с модулем.
Структура любой таблицы сопоставления проста – с одной стороны, она содержит
минимум информации о сопоставляемых величинах из сторонней базы данных, с другой,
этой информации сопоставляется информация из собственной базы данных дистрибутора.
Так таблица соответствия товаров и единиц измерения содержит 5 полей, которые
позволяют однозначно идентифицировать товар: код в системе CRM, наименование,
единицу измерения по-русски, единицу измерения по-английски и коэффициент пересчета
по отношению к единице измерения «штука». Для однозначного сопоставления этим
полям достаточно всего двух колонок, содержащих информацию из конфигурации
дистрибутора – ссылки на элемент справочника «Номенклатура» и ссылки на элемент
справочника «Классификатор Единиц измерения».
У таблицы сопоставления контрагентов и торговых точек структура такая же: код
торговой точки в CRM, наименование торговой точки, полное наименование торговой
точки и адрес доставки (его еще называют фактическим адресом торговой точки). Из базы
данных дистрибутора берется ссылка на элемент справочника «Контрагенты», ссылка на
элемент справочника «Торговые точки» и в явном виде – адрес доставки (фактический
адрес). Здесь важно знать, что в таблице хранится именно ссылка на элемент, а не код или
какой-либо еще идентифицирующий параметр.
Последний регистр («Монолит таблица заказов») содержит номера и даты
созданных в системе дистрибутора заказов, которые были получены с помощью обмена
CRMOrder модуля, а так же результирующие статусы по этим обменам.
7. Настройка обмена товарами и единицами измерения (обмен CRMWare).
Настройки выбора наименования справочников для номенклатуры и единиц
измерения в модуле нет – они указываются прямо в коде модуля. Для товаров
используется справочник «Номенклатура», а для единиц измерения – справочник
«Классификатор Единиц измерения» (элементы которого используются для заполнения
справочника «Единицы измерения», доступного для редактирования). Поэтому, если у
дистрибутора в системе справочник «Номенклатура» имеет какое-либо иное название, то
необходимо произвести замену одного наименования на другое. То же самое следует
проделать со справочником «Классификатор единиц измерения».
После этого можно открыть 1С в режиме предприятия и запустить внешнюю
обработку Exchange.epf. На закладке «Обмены» необходимо отключить все чек-боксы,
кроме «Классификатор товаров и единиц измерения». После чего нажать кнопку
«Произвести обмен».
Если все предыдущие рекомендации выполнены правильно, то модуль попытается
соединиться с веб-сервисом и через некоторое время в табло сообщений появится
Настройка модуля интеграции для 1С 8
13
информация о результате обмена. Если обмен выполнен успешно, то можно нажать
кнопку «Соответствие товаров и единиц измерения». Откроется форма списка регистра
сведений «Монолит таблица сопоставления номенклатуры», позволяющая провести
сопоставление товаров и единиц измерения.
Рисунок 10. Внешний вид таблицы сопоставления товаров.
Если загрузка данных прошла успешно, следует сразу же провести сопоставление
полученных товарных позиций с товарами, которые есть в базе данных дистрибутора.
Желательно, чтобы принцип ведения справочников номенклатуры и единиц измерения у
дистрибутора совпадал с таковым у поставщика. Это означает, что у одной товарной
позиции может быть сколько угодно единиц измерения. В случае, если одна и та же
товарная позиция присутствует в справочнике более одного раза (например, для случаев,
когда отгрузка происходит «пэками» по 6 или 12 штук), то необходимо путем
копирования создать еще одну запись для это позиции с единицей измерения «штука» и
сопоставить ей вторую запись. Данное действие требует более подробного пояснения.
Обмен остатками может проводиться в тех единицах измерения, в которых у
дистрибутора остатки хранятся на складе. Обмен отгрузками в обязательном порядке
проводится в базовых единицах. Базовой единицей в «Монолит: CRM» принята «штука».
Поэтому, в случае, когда одному коду из «Монолит: CRM» сопоставляется несколько
номенклатурных позиций из базы данных дистрибутора, необходимо обеспечить
возможность грамотного пересчета кратных остатков в штуки. Для этого каждой
номенклатурной позиции из справочника дистрибутора необходимо сопоставить элемент
с единицей измерения «штука» системы «Монолит: CRM».
ВАЖНО: сопоставление товаров и единиц измерения необходимо провести по
всем используемым дистрибутором товарным позициям сразу. В противном случае
возможны проблемы при работе остальных процедур модуля.
ВАЖНО: сопоставление товарных позиций обязательно производить в
полном объеме, то есть с указанием номенклатуры и единицы измерения. В
противном случае даже при правильной настройке остальных параметров, обмен
данными невозможен.
Настройка модуля интеграции для 1С 8
14
8. Настройка обмена остатками на складах (обмен CRMWhBalanceEx).
Обмен остатками происходит следующим образом: рассчитывается период
выборки данных как разница между текущей датой и количеством дней, указанным в поле
для экспорта отгрузок (реквизит «период»), далее создается запрос к базе с разбиением
итогов по дням. Список складов заполняется на закладке «Обмены» внешней обработки
Exchange.epf, точно такой же список должен быть передан в отдел ИТ компаниипоставщика для того, чтобы передаваемые данные попадали на склады, закрепленные за
дистрибутором в системе «Монолит: CRM».
Необходимо помнить, что при обмене остатками в систему «Монолит: CRM»
передается полный код склада. Поэтому в случае использования дистрибутором
большого количества складов, разбитых на группы, необходимо, чтобы длина полного
кода не превышала 15 символов.
Формат файла обмена остатками подробно описан в документе, содержащем
информацию по всем обменам. Структурно файл состоит из двух наборов данных, один из
которых подчинен другому. Ведущий (заголовочный) набор данных CRMWhBalance
содержит информацию о дате, к которой относится передаваемая информация, полный
код склада, номер документа выгрузки и код торгового представителя. Последние два
пункта необходимо оставлять пустыми, так как данный обмен используется в «Монолит:
CRM» для выполнения нескольких процедур, но дополнительная информация из базы
данных дистрибутора при этом не запрашивается. Подчиненный набор данных
CRMWhBalanceLine содержит информацию о коде товара в системе «Монолит: CRM»,
коде единицы измерения в системе «Монолит: CRM» и количестве товара на складе в
указанных единицах.
В версии модуля 8-1.0.19 появилась возможность выборочно загружать
информацию об остатках. Для этого надо установить чек-бокс «Удалять информацию
выборочно» (см. рисунок 4). Если чек-бокс установлен, из системы «Монолит: CRM»
будет удалена информация только с указанной даты и только по указанным в переданном
файле складам. Иначе модуль работает в обычном режиме, то есть, перед загрузкой
удаляется информация по всем складам, связанным с данным кодом DS.
ВАЖНО: при обмене остатками возможна ситуация, когда количество товара
на складе превышает 1000 шт. В этом случае, форматирование может быть
настроено таким образом, что в отчетах и на экране выводится результат с
разделением триад. В 1С версии 8 данной ошибки можно избежать путем установки
в меню «Администрирование» - «Региональные
установки БД» параметра
«Группировка» в значение «3, 0». После чего необходимо проверить, что при
выгрузке результатов значение остатков передается без разделительных символов.
9. Настройка обмена отгрузками (обмен CRMDespatchEx).
В системе «1С Предприятие» версии 8 используется понятие проведения
документа. Процедура проведения изменяет статус документа и, кроме того, осуществляет
движение остатков по регистрам. Поэтому, экспорт отгрузок происходит только по
проведенным документам. Документ записанный, но не проведенный будет при выборке
проигнорирован.
Структурно обмен состоит из трех наборов данных.
CRMDespatchParam содержит следующую информацию: дату начала периода, за
который передаются данные, параметр SkipDelete, отвечающий за удаление данных из
«Монолит: CRM» и флаг сопоставления на стороне дистрибутора (всегда должен
выставляться в 0). Немного подробнее следует описать суть параметра SkipDelete.
Поскольку можно передавать данные за произвольное количество дней (но не
Настройка модуля интеграции для 1С 8
15
превышающее разрешенное для импорта в системе CRM), то данным параметром
регулируется – происходит ли полная очистка данных за указанный интервал по данному
дистрибутору, или же данные будут загружены в дополнение к уже полученным ранее. В
случае, когда параметр SkipDelete равен 0, данные в CRM удаляются, иначе –
добавляются. Важно: для работы модуля в 1С версии 8 необходимо всегда
выставлять этот параметр в 0.
Набор данных CRMDespatch подробно описан в документе, содержащем
информацию по всем форматам обмена. Однако, поскольку модуль по умолчанию
полноценно работает только с типовой конфигурацией, при использовании оригинальных
и сильно измененных типовых конфигураций необходимо понимать каким образом
извлекаются те или иные данные. В порядке следования полей в документе-описании:
- CompanyId, AddressId (Код контрагента и код торговой точки);
Единственной особенностью является то, что даже в случае совпадения кодов (то
есть, если контрагент и торговая точка это один элемент справочника «Контрагенты»),
необходимо заполнять оба поля.
- AddressRegionType (код типа региона);
Является атрибутом торговой точки. Имеет значение 1, если торговая точка
относится к городу, 2 – если она расположена в области. В модуле для типовой
конфигурации, поскольку там контрагент всегда совпадает с торговой точкой данный
параметр заполнен только в одной ветке операторов Если – Тогда – КонецЕсли. Для
нетиповых конфигураций необходимо провести анализ как именно будут получены коды
контрагента и торговой точки и, соответственно, как получить тип региона. Значение
свойства получается тем же запросом, что и документы для обработки.
- SaleChannel (Канал реализации)
Является атрибутом торговой точки. В модуле для типовой конфигурации,
поскольку там контрагент всегда совпадает с торговой точкой данный параметр также
заполнен только в одной ветке операторов Если – Тогда – КонецЕсли. Для нетиповых
конфигураций необходимо провести анализ как именно будут получены коды контрагента
и торговой точки и, соответственно, как получить тип региона. Значение свойства
получается тем же запросом, что и документы для обработки.
- CRMOrderNumber (номер заказа, поступившего из «Монолит: CRM»)
Данный реквизит набора данных заполняется следующим образом. Если расходная
накладная создана на основании заявки покупателя, то в регистре «Монолит таблица
заказов» ищется ссылка на документ, и если она есть, то из этой записи извлекается номер
заказа в CRM, если же накладная была создана сразу, то в файле ищется заказ по номеру
накладной. Поэтому важно, чтобы дистрибутор не нарушал нумерацию документов и
сохранял все привязки документов друг к другу. В противном случае, становится
невозможным установить создана данная реализация на основании заказа, или получена
иным способом (по звонку, личное посещение и т. д.).
- DocumentTypeId (тип документа)
Данный реквизит возник после того, как был запущен механизм работы с
дистрибуторами-консигнаторами. Для того, чтобы контролировать остатки на складах
ответственного хранения компании-поставщику необходимо отслеживать все возможные
виды движения по этим складам. Поэтому была проведена доработка экспорта отгрузок и
добавлен данный реквизит. Значения, которые он может принимать, приведены ниже:
Настройка модуля интеграции для 1С 8
16
- Despatch, для документа вида «Реализация»,
- VendReceipt, для документа вида «Поступление ТМЦ»,
- VendReturn, для документа вида «Возврат поставщику»,
- CustReturn, для документа вида «Возврат от покупателя»,
- ProdReceipt, для документа вида «Списание ТМЦ»,
- ProdReturn, для документа вида «Оприходование ТМЦ»,
- MovingNoteFrom, для документа вида “Перемещение ТМЦ» в части складаисточника,
- MovingNoteTo, для документа вида «Перемещение ТМЦ» в части складаприемника.
ВАЖНО: по всем видам документов каждая строка выводится один раз и
обозначает один вид движения, кроме документов «Перемещение ТМЦ», где по каждой
строке необходимо указать два движения – расход со склада-источника и приход на складприемник.
- DocumentNumber и DocumentDate (номер и дата документа)
В эти реквизиты заносятся номер и дата экспортируемого документа.
- PayDate (предполагаемая дата оплаты)
В данный реквизит заносится предполагаемая дата оплаты. В типовой
конфигурации она существует в документе «Заказ покупателя» в виде реквизита. Если
данный реквизит документа не заполнен, то и поле набора данных не заполняется.
- WareHouseId (код склада)
Данный реквизит представляет собой полный код склада, с которого производилась
отгрузка (или на который произошло поступление товара).
- WareId (код товара в «Монолит: CRM»)
Для того, чтобы данные загрузились в CRM необходимо провести перекодировку
товара из представления в виде справочника 1С к виду, принятому в классификаторе
товаров и единиц измерения в «Монолит: CRM». Для этого при получении очередной
строки документа делается запрос к регистру «Монолит таблица сопоставления товаров»,
который возвращает код CRM, который, в свою очередь, и попадает в формируемый файл.
Важно правильно провести сопоставления, поскольку экспорт отгрузок происходит
только в штуках, для чего используется процедура пересчета из других единиц измерения.
Если заполнение таблицы сопоставления выполнено неправильно или не до конца, то при
выгрузке могут возникнуть дробные величины.
- Price и Quantity (цена и количество)
Цена и количество единицы товара. В случае если в документе используется
единица измерения, отличная от штуки данные для выгрузки получаются путем пересчета
с использованием коэффициента, взятого из таблицы сопоставления.
Набор данных CRMClientAddress используется для передачи данных о клиентах и
торговых точках в систему «Монолит: CRM». Состав набора данных дан в файле,
описывающем форматы обмена. Необязательным в данном наборе является только поле
CRMClientId, все остальные поля могут быть получены из системы учета дистрибутора и
являются обязательными для заполнения. Обязательно необходимо проследить за тем,
чтобы каждая пара «Контрагент + Торговая точка» встречалась в наборе данных только
Настройка модуля интеграции для 1С 8
17
один раз! Поскольку модуль, поставляемый в дистрибутиве, разрабатывается для типовой
конфигурации, при работе с оригинальными (или достаточно сильно измененными)
конфигурациями возможно появление дублей в данном наборе. Чаще всего это связано с
обработкой контрагентов и торговых точек и появлением с одной стороны сочетания пары
с кодом CRM, с другой стороны, появлением такой же пары, но уже не сопоставленной с
каким-либо кодом CRM. При настройке модуля необходимо проверить, чтобы поиск
сопоставления выполнялся всегда и только один раз. Важно также понимать, что
экспорт отгрузок (и связанный с ним набор данных CRMClientAddress) никак не связан с
импортом заказов, т. е отсутствие сопоставлений не говорит о том, что данный набор не
может быть сформирован. На сайте компании Монолит-Инфо есть пример файла экспорта
отгрузок.
ВАЖНО: при обмене отгрузками возможна ситуация, когда количество
товара превышает 1000 шт. В этом случае, форматирование может быть настроено
таким образом, что в отчетах и на экране выводится результат с разделением триад.
В 1С версии 8 данной ошибки можно избежать путем установки в меню
«Администрирование» - «Региональные установки БД» параметра «Группировка» в
значение «3, 0». После чего необходимо проверить, что при выгрузке результатов
значение остатков передается без разделительных символов
Для грамотного заполнения параметров AddressRegionType и SaleChannel
необходимо грамотно заполнить настройки формы Exchande.epf на закладке
«Параметры». Чтобы объяснить логику заполнения нужно вспомнить основные
требования к модулю, а именно – невмешательство во внутреннюю структуру
конфигурации дистрибутора. В данном же случае компания-поставщик рекомендует
своим партнерам добавить в конфигурацию два новых параметра (предполагается, что
данные аналитические признаки у контрагентов отсутствуют). При этом предполагается,
что в типовой конфигурации будут просто созданы новые свойства и заполнен
соответствующий регистр сведений. Если же используется сильно переработанная
конфигурация или полностью оригинальная, что в справочник, содержащий перечень
Торговых точек необходимо добавить два новых реквизита (канал реализации и тип
региона). Тип значения данных реквизитов может быть любым, важно, что в модуле есть
возможность указать сам реквизит.
ВАЖНО: необходимо четко понимать, что принцип добавления реквизитов
должен быть одинаков, в противном случае средствами стандартного модуля произвести
настройку не получится и придется дорабатывать ее под конкретную конфигурацию.
На рисунках 11 и 12 показаны этапы заполнения свойств торговых точек..
Настройка модуля интеграции для 1С 8
18
Рисунок 11. Выбор вида реквизита справочника для заполнения параметров «Канал
реализации» и «Тип региона».
Рисунок 12. Результат выбора первого элемента из списка возможных видов
реквизита справочника.
Настройка модуля интеграции для 1С 8
19
10. Настройка обмена заказами (обмен CRMOrder).
Данный обмен настраивается в последнюю очередь (часто совместно с
описываемым ниже обменом CRMOrderStatus). Он позволяет получить заказы от
торговых представителей с КПК, переданные при синхронизации с «Монолит: CRM».
Схема прохождения заказов следующая: торговый представитель принимает заказ в
торговой точке и заносит его в свой КПК, затем он соединяется посредством GPRS с
системой «Монолит: CRM» и передает заказ в нее. Дистрибутор каждые 15-20 минут с
помощью модуля скачивает имеющиеся заказы себе в базу данных. Полученный заказ не
будет преобразован в документ только в случае, если в нем есть хотя бы один не
сопоставленный товар. Если же все товары сопоставлены, то документ «Заказ покупателя»
или «Реализация» (в зависимости от выбора дистрибутора) будет создан. Если по коду
торговой точки, полученной в заказе, найдена сопоставленная пара кодов Контрагент +
торговая точка, то документ будет создан с указанием контрагента и торговой точки,
иначе необходимо будет провести процедуру сопоставления. Для этого следует нажать
кнопку «Классификатор торговых точек» на закладке «Основная» внешней обработки
Exchange.epf. В результате откроется форма сопоставления, которая создана, как
подчиненная форма регистра сведений «Монолит таблица сопоставления контрагентов».
Она состоит из двух табличных частей. В верхней выводятся записи таблицы
сопоставления контрагентов с возможностью отбора сопоставленных или не
сопоставленных. В нижней таблице выводятся документы, у которых не заполнен
контрагент. После того, как ответственный оператор проведет сопоставление, ему
достаточно нажать кнопку «Заполнить документы» и все документы, которые были
созданы по заявкам с только что сопоставленными торговыми точками, заполнятся
значениями контрагентов и торговых точек.
ВАЖНО: сопоставление контрагентов обязательно проводить в полном
объеме, то есть с указанием контрагента и торговой точки. Даже в случае, когда
значения контрагента и торговой точки совпадает (как, например, это происходит в
типовой конфигурации), необходимо указывать одно и то же значение дважды: в
колонке «Наименование контрагента» и в колонке «Наименование ТТ». В
противном случае обмен работать не будет.
Поскольку каждый дистрибутор, даже пользуясь типовой конфигурацией, волен
заполнять документы ровно настолько, насколько считает это нужным, при обработке
данного набора данных проводится заполнение только тех полей, которые необходимы
для определения документа в системе. Поэтому перед запуском тестирования данной
процедуры специалисту ИТ, проводящему доработку модуля на месте, необходимо четко
определить какие еще реквизиты и какого документа будут заполняться, после чего
следует провести доработку кода во внешней обработке Exchange.epf. Отдельное
внимание надо уделить заполнению табличной части, так как в стандартной версии
модуля не производится выбора типа цены и соответствующих процедур пересчета.
Кроме того, очень часто оставляя нетронутой структуру табличной части, дистрибуторы
дорабатывают логику ее заполнения, что влечет за собой ошибки заполнения документов,
поэтому данную процедуру так же необходимо проконтролировать.
Настройка модуля интеграции для 1С 8
20
Рисунок 13. Внешний вид таблицы сопоставления контрагентов.
Рисунок 14. Пример проведения сопоставления.
Формат файла, содержащего заказы, подробно описан в файле, где представлены
все форматы обмена. Обмен CRMOrder является универсальным и используется в системе
«Монолит: CRM» для выполнения нескольких процедур импорта-экспорта, поэтому не
все его поля являются необходимыми для работы в 1С. Это учтено в модуле для типовой
конфигурации следующим образом – для обработки входящей информации используется
метод работы с xml-файлами, основанный на DOM (Data Object Model) технологии. В
этом случае xml-файл рассматривается как «дерево», и программист имеет возможность
обращаться к конкретным «ветвям» и получать значения конкретных элементов данных.
Настройка модуля интеграции для 1С 8
21
Тогда как при последовательном парсинге файла необходимо перебрать все элементы и
выделить из них необходимые.
11. Настройка обмена статусами заказов (обмен CRMOrderStatus). .
Каждый принятый заказ может иметь три состояния: Transferred, Despatched и
Rejected. После успешной попытки записи документа, информация о нем попадает в
регистр сведений «Монолит таблица заказов», где помимо статуса по умолчанию
(Transferred) полю Export присваивается значение 1, что гарантирует отправку нового
статуса в «Монолит: CRM». В дальнейшем, модуль выбирает все заказы со статусом
Transferred и проверяет их на изменение статуса. Если по заказу существует проведенная
накладная, то статус меняется на Despatched и Export снова выставляется в 1, если
накладная (или заявка) помечена на удаление или отсутствует, то статус данного заказа
выставляется в Rejected, а Export также выставляется в 1. Далее процедура обработки
статусов заказов просто выбирает все имеющие в ячейке Export значение 1 и добавляет их
в файл статусов, формат которого подробно описан в файле форматов. Сформированный
файл отправляется в «Монолит: CRM».
Для того чтобы лучше понимать работу с заказами, необходимо знать каким
образом формируется пакет заказов на стороне «Монолит: CRM». Происходит это
следующим образом. В настоящее время срок жизни заказа составляет 3 дня.
Соответственно, если по данному заказу не получено подтверждение того, что он создан,
он попадает в очередь заказов. После того, как заказ был отправлен дистрибутору, его
приоритет меняется и он перемещается в конец очереди заказов на отправку. Поэтому,
если дистрибутор не создает документов по получаемым заказам, у него может сложиться
впечатление, что он получает одни и те же заказы по несколько раз в день и не получает
более новые, у которых, возможно, дата отгрузки больше, чем у уже имеющихся, но не
просроченных и не принятых.
Дополнительным функционалом работы со статусами является возможность
передачи причины отказа от отгрузки, введенная в версии 8-1.0.11. В этом случае в
регистр сведений «Монолит таблица заказов» добавляется поле с причиной отказа. И даже
если документ отгрузки помечен на удаление (или не существует, то есть уже удален), но
комментария по этому поводу нет, статус Rejected не будет отправлен в систему
«Монолит: CRM». Для того, чтобы заполнить причину отказа необходимо ответственному
оператору предоставить доступ к форме, подчиненной регистру сведений «Монолит
таблица заказов» (см. рисунок 16), которая содержит форму для ввода комментариев.
При открытии формы происходит обращение к регистру «Монолит таблица
заказов», в котором идет поиск документов со статусом Rejected и незаполненным полем
комментария. Глубина поиска определяется параметром «Глубина контроля отмененных
заказов» группы «Параметры комментариев по отмененным заказам» на закладке
«Параметры доп.» (см. рисунок 15). Все такие записи выводятся в табличную часть. Для
облегчения заполнения указывается так же информация о торговой точке. В табличной
части есть два дополнительных текстовых поля. В одно из них («Причина») нужно
обязательно добавить элемент из фиксированного перечня причин, в другое –
«Комментарий» - можно занести какую-либо еще дополнительную информацию. После
заполнения табличной части достаточно дождаться ближайшего обмена статусами заказов
и информация о причинах будет отправлена в систему «Монолит: CRM».
Настройка модуля интеграции для 1С 8
22
Рисунок 15 . Настройка комментариев по не принятым заказам.
Рисунок 16 . Ввод причины отмены заказа.
12. Вспомогательные элементы модуля.
В данном разделе будут рассмотрены вспомогательные элементы модуля,
позволяющие пользователю получить информацию о том, какие и когда выполнялись
обмены, и с каким результатом они закончились.
Настройка модуля интеграции для 1С 8
23
Контроль работы модуля осуществляется на всех этапах его работы. В системе
существует три вида файлов, которые в той или иной форме содержат информацию об
обменах.
Файл MI1C.log – это файл в формате «текст», который заполняется в процессе
работы сервисной службы CRMDataExchangeService, то есть когда модуль функционирует
в автоматическом режиме. Файл содержит информацию о времени инициации очередного
обмена, список обменов (в виде форматированной текстовой строки) и результат работы
модуля. В случае, если обмен не выполнен, приводится системное сообщение об этом. В
случае возникновения проблем с настройкой модуля для работы в автоматическом
режиме, при обращении в службу поддержки необходимо предоставлять этот файл.
Файл Log.xml – файл журнала обменов. Ведется как при обмене в ручном режиме,
так и при автоматическом обмене. Содержит следующую информацию: дата и время,
наименование обмена, тип информации – сообщение или ошибка, само сообщение.
Сообщение может формироваться как в модуле, так и поступать от операционной системы
(в случае, когда попытка передать корректно обработанную информацию по каким-либо
причинам не удалась).
Файл current_request.xml – всегда содержит информацию о последнем успешно
завершенном действии. Таким действием может быть как передача запрос на импорт
заказов, экспорт информации об отгрузках, остатках или статусов обработанных заказов,
сообщение об их успешном приеме в систему «Монолит: CRM» или сообщение об
ошибке при обработке данных. В процессе настройки модуля при возникновении проблем
именно этот файл чаще всего необходимо передать специалистам ИТ, консультирующим
дистрибутора.
Так как файл current_request.xml содержит информацию о последнем успешном
действии, то иногда необходимо получить информацию о том, какая именно информация
вызвала тот или иной ответ. Например, от веб-сервиса CRM получено сообщение об
ошибке в файле – именно его и будет содержать current-request.xml, однако, для анализа
нам необходимо увидеть и проанализировать информацию, которая была отправлена от
дистрибутора. Поэтому модуль был доработан таким образом, чтобы при каждом обмене
сохранять отправляемую информацию в файл непосредственно перед обменом, создавая,
таким образом, архив логов. Настройка данного функционала выполняется следующим
образом. Открываем внешнюю обработку Exchange.epf на закладке «Параметры».
Устанавливаем чек-бокс «Сохранять обмены в файлах», указываем путь к папке, в
которой будет храниться архив и количество дней, в течение которых он будет
сохраняться. Если дистрибутор использует оригинальную конфигурацию, то ему
необходимо сравнить все процедуры импорта-экспорта в своей версии модуля и в
стандартной и перенести из последней блоки «Если – тогда», отвечающие за сохранение
логов.
Удаление файлов с датой, большей, чем установлена в настройках, происходит 1
раз в сутки (при первом обмене). Происходит это по следующему алгоритму. Формат
наименования лог-файла следующий: схема обмена – дата – время. Из наименования
файла выделяется дата и если она больше, чем рассчитанная максимально допустимая
дата, то данный файл удаляется. Необходимость поиска файлов определяется по наличию
файла с текущей датой (то есть, если такой файл уже есть, то сегодня обмены уже
производились, и удаление файлов уже происходило, иначе производим поиск и
удаление).
Настройка модуля интеграции для 1С 8
24
Рисунок 17 . Настройка сохранения лог-файлов.
Для ускорения обработки статусов заказов в версию 8-1.0.11 была добавлена
возможность автоматического удаления обработанных заказов с датой большей, чем
рассчитанная. В поле «Количество дней, за которые хранятся заказы» (см. рисунок 18)
можно ввести любое число, большее 0 (нуля), в этом случае модуль автоматически будет
удалять из регистра «Монолит таблица заказов» все записи с датой заказа (OrdNumDate)
большей, чем текущая дата минус введенный параметр (число). В случае если данный
параметр оставлен равным нулю, удаления записей из регистра не происходит.
В версии 8-1.0.15 добавлена группа реквизитов формы для ведения списка
исключенных из экспорта отгрузок контрагентов. Такими контрагентами могут быть, к
примеру, субдистрибьюторы, имеющие собственные модули для передачи отгрузок в базу
данных поставщика. Список пополняется из классификатора контрагентов по нажатию
кнопки «Добавить» и очищается поэлементно кнопкой «Удалить» (см. рисунок 18).
В версии 8-1.0.16 добавлена возможность установки параметров прокси-сервера
(группа «Параметры настройки прокси-сервера» на рисунке 18), что позволяет
производить тонкую настройку доступа пользователя к сети Интернет.
В Версии 8-1.0.18 добавлена возможность экспорта данных об остатках и отгрузках
за произвольный интервал времени. Для этого устанавливаются даты начала и конца
экспорта (см. рисунок 18). После чего может быть выполнен обмен. ВАЖНО: данный
функционал работает только при экспорте данных вручную!
Настройка модуля интеграции для 1С 8
25
Рисунок 18 . Настройка дополнительных параметров обменов.
Download