SASGIS

Веб-картография и навигация

SAS.Wiki

Веб-картография и навигация

Инструменты пользователя

Инструменты сайта


playground:1c_и_sas.планета

Различия

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

Ссылка на это сравнение

playground:1c_и_sas.планета [29/05/2011 12:42]
93.91.4.251
— (текущий)
Строка 1: Строка 1:
-В данной статье рассматривается примеи организация связи между программами 1С и SAS.Планета. 
- 
-Типичной задачей,​ где нужны карты, является работа логиста по планированию развоза. 
-То есть: имеем заказы от покупателей (адреса доставки и объемы (веса)). Из них надо составить маршруты,​ по которым поедут машины. 
- 
-Примерно вот так: 
-{{:​playground:​sas_and_1c:​logistics.png|?​442}} 
- 
- 
-Разумеется,​ что при наличии карты, на которой все это наглядно отображено,​ выполнять такую работу намного проще, особенно когда заказов много. 
- 
-{{:​playground:​sas_and_1c:​razvoz.jpg|?​442}} ​ 
- 
-Информацию из 1С мы будем выводить с помощью технологии,​ описанной [[:​отображение_на_карте_произвольной_информации_точек_картинок_и_т.п._из_базы_данных|здесь]]. Если вкратце - к SAS Планета подключается дополнительный слой, который посредством специального PHP скрипта выбирает из БД информацию о выводимых точках и отдает ее в SAS.Планету в виде картинок и/или слоя KML. 
- 
-Обращение к БД реализуется по-разному,​ в зависимости того, в каком режиме используется 1С - файловом или серверном. 
-При использовании БД в файловом варианте необходима выгрузка информации на сервер БД. (Есть еще вариант с веб-компонентой,​ его рассмотрим в другой раз). ​ 
-Пример выгрузки денных из конфигурации Управление торговлей,​ ред 10.3 
-1. Установите у себя пример базы данных в соответствие с инструкцией 
-2. Установите MySQL ODBC Connector 5.1 
-3. Скачайте обработку выгрузки:​ Выгрузка в САС.epf 
-4. Откройте обработку в режиме "​1С:​Предприятие"​. (Я использовал "​демонстрационную"​ базу "​Управление торговлей"​). 
- 
-Основная форма обработки:​ 
- 
-  
- 
-1. Нажмите кнопку "​Добавить характеристики"​. После этого для справочника "​Контрагенты"​ будут добавлены дополнительные свойства:​ 
- 
-  
- 
-Широта,​ Долгота - географические координаты. ВНИМАНИЕ:​ поскольку в конфигурации "​Управление Торговлей ред. 10.3" для дополнительных свойств типа число всегда установлена точность 15.3, то десятичная точка в координатах сдвинута на 6 знаков вправо. Вместо 55.123456 вводим 55123456. 
-Разумеется,​ в реальном применении можно добавить реквизиты с нужной точностью. В демонстрационном примере это сделано только для того, чтобы обеспечить его работу без внесения изменений в конфигурацию БД. 
-Комментарий - строка,​ до 50 символов. 
-Иконка - название файла с иконкой. В демо-примере есть следующие файлы: (7k.png, auchan.png. metro.png. x5.png, tande.png, victoria.png,​ sweetlife.png,​ spar.png). Если иконка не задана,​ или такого файле нет, то используется иконка noicon.png 
-Раскраска - цвет комментария,​ указывается число в интервале 0-19 
- 
-2. В справочнике "​Контрагенты"​ укажите соответствующие значения для нескольких контрагентов 
- 
-3. В форме обработки укажите параметры подключения к MySQL серверу 
- 
-4. Нажмите кнопку "​Выгрузить"​. 
- 
-5. Обновите слои с точками в SAS.Планете (Масштаб увеличить - подождать 4 секунды - масштаб уменьшить). 
- 
-Более удобен для работы c SAS.Планета серверный вариант использования 1С. То есть сервер уже есть и можно читать информацию можно непосредственно из БД. 1С, не заводя промежуточной базы Благодаря этом на карте будет всегда актуальная информация,​ причем никаких действий со стороны 1С выполнять не потребуется. 
- 
-1С 8 версии может работать с различными серверами БД, однако наиболее широкое распространение получила связка 1С + MS SQL, а в качестве операционной системы - Windows Server различных версий. 
- 
-PHP (я использовал версию 5.2) имеет встроенные средства для работы с MS SQL. Однако,​ поскольку PHP + MS SQL (не путать с MySQL) используется не очень часто, то модуль MSSQL по умолчанию в PHP выключен. Его надо включить - раскомментировать строчку ​ 
-extension=php_mssql.dll 
-в разделе extensions файла php.ini 
-А также из каталога windows\system32 MSSQL сервера взять файл ntwdblib.dll и скопировать его в соответствующий каталог сервера,​ где стоит Apache (и еще можно в каталог PHP). Если этого не сделать,​ то в логе Апача будет сообщение о проблемах в модуле mssql и ни слова об отсутствующей dll ке. 
-Функции PHP для работы с MSSQL аналогичны функциям для работы с MySQL. 
- 
-Осталось найти нужные поля в SQL базе 1С. Дело в том, что 1С встроенными средствами названия полей не показывает. Проще всего будет воспользоваться готовой обработкой,​ например:​ 
-(совсем простая) 
-или 
-http://​infostart.ru/​public/​16282/​ 
-(наоборот навороченная) 
-http://​infostart.ru/​public/​19821/​ 
-(совсем навороченная) 
- 
-В итоге у Вас должно получится что-то вроде такого:​ 
- 
-  
- 
-Необходимо иметь в виду, что идентификаторы таблиц и полей в 1С не являются постоянным,​ т.е. если выгрузить конфиграцию,​ где добавлены таблицы/​поля (не всю БД) из одной базы и загрузить в другую,​ то эти добавленные таблицы/​поля могут получить уже другие идентификаторы. 
- 
-Поскольку в наиболее распространенных типовых конфигурациях 1С готовых полей для хранения координат нет, уже настроенный скрипт привести не могу. Н надеюсь,​ что на основании изложенного здесь принципа и примера скрипта тут, который можно взять за основу написать скрипт под конкретную базу 1С проблем не составит. 
- 
-Что мы получаем на выходе 
- 
-Красивую картинку на карте - это понятно. Но не только ее 
- 
-Возможность использования для каждого места лучшей карты 
-Преимущество использования программы SASПланета в данном случае в том. что мы не привязаны к какой-либо конкретной карте. И чем дальше от столицы,​ тем это важнее. Ведь качество наиболее популярных в интернете карт, обратно пропорционально удалению от Москвы. 
- 
-Во-первых полный контроль над формируемой картой (слоем). Например в ситуации:​ что делать,​ когда точек в тайле слишком много. Если выводить все, то имеем мешанину:​ 
- 
-  
- 
-На мой взгляд,​ это неудобно. 
- 
-Другой вариант,​ который применяется например в слое Panoramio - выводить часть точек. Но он тоже не дает полной картины. Поэтому я лично в таком случае просто вывожу сообщение и большом количестве объектов в тайле: 
- 
-  
- 
-Возможность автономной (без интернета) работы (благодаря умению SAS Планеты работать с кэшем) 
-