Здесь показаны различия между двумя версиями данной страницы.
1c_и_sas.планета [29/05/2011 14:28] 93.91.4.251 создано |
1c_и_sas.планета [01/10/2014 03:29] (текущий) 178.186.200.242 |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | В данной статье рассматривается примеи организация связи между программами 1С и SAS.Планета. | + | В данной статье рассматривается пример организация связи между программами 1С и SAS.Планета. |
Типичной задачей, где нужны карты, является работа логиста по планированию развоза. | Типичной задачей, где нужны карты, является работа логиста по планированию развоза. | ||
Строка 6: | Строка 6: | ||
Примерно вот так: | Примерно вот так: | ||
- | {{:playground:sas_and_1c:logistics.png?442}} | + | {{:sas_and_1c:logistics.png?442}} |
Разумеется, что при наличии карты, на которой все это наглядно отображено, выполнять такую работу намного проще, особенно когда заказов много. | Разумеется, что при наличии карты, на которой все это наглядно отображено, выполнять такую работу намного проще, особенно когда заказов много. | ||
- | {{:playground:sas_and_1c:razvoz.jpg?442}} | + | {{:sas_and_1c:razvoz.jpg?442}} |
Информацию из 1С мы будем выводить с помощью технологии, описанной [[:отображение_на_карте_произвольной_информации_точек_картинок_и_т.п._из_базы_данных|здесь]]. Если вкратце - к SAS Планета подключается дополнительный слой, который посредством специального PHP скрипта выбирает из БД информацию о выводимых точках и отдает ее в SAS.Планету в виде картинок и/или слоя KML. | Информацию из 1С мы будем выводить с помощью технологии, описанной [[:отображение_на_карте_произвольной_информации_точек_картинок_и_т.п._из_базы_данных|здесь]]. Если вкратце - к SAS Планета подключается дополнительный слой, который посредством специального PHP скрипта выбирает из БД информацию о выводимых точках и отдает ее в SAS.Планету в виде картинок и/или слоя KML. | ||
Строка 16: | Строка 16: | ||
Обращение к БД реализуется по-разному, в зависимости того, в каком режиме используется 1С - файловом или серверном. | Обращение к БД реализуется по-разному, в зависимости того, в каком режиме используется 1С - файловом или серверном. | ||
При __использовании 1C в файловом варианте__ необходима выгрузка информации на сервер БД. (Есть еще вариант с веб-компонентой, его рассмотрим в другой раз). | При __использовании 1C в файловом варианте__ необходима выгрузка информации на сервер БД. (Есть еще вариант с веб-компонентой, его рассмотрим в другой раз). | ||
- | Пример выгрузки денных из конфигурации Управление торговлей, ред 10.3 | + | Пример выгрузки данных из конфигурации Управление торговлей, ред 10.3 |
- | **1**. Установите у себя пример базы данных в соответствие с инструкцией | + | **1**. Установите у себя пример базы данных в соответствие с [[:отображение_на_карте_произвольной_информации_точек_картинок_и_т.п._из_базы_данных|инструкцией]] |
**2**. Установите [[http://www.mysql.com/downloads/connector/odbc/|MySQL ODBC Connector 5.1]] | **2**. Установите [[http://www.mysql.com/downloads/connector/odbc/|MySQL ODBC Connector 5.1]] | ||
- | **3**. Скачайте обработку выгрузки: Выгрузка в САС.epf | + | **3**. Скачайте обработку выгрузки: {{:sas_and_1c:vygruzka_v_sas.zip|Выгрузка в САС}} |
**4**. Откройте обработку в режиме "1С:Предприятие". (Я использовал "демонстрационную" базу "Управление торговлей"). | **4**. Откройте обработку в режиме "1С:Предприятие". (Я использовал "демонстрационную" базу "Управление торговлей"). | ||
Строка 28: | Строка 28: | ||
Основная форма обработки: | Основная форма обработки: | ||
- | {{:playground:sas_and_1c:vygruzka_epf.png|}} | + | {{:sas_and_1c:vygruzka_epf.png|}} |
- | **1**. Нажмите кнопку "Добавить характеристики". После этого для справочника "Контрагенты" будут добавлены дополнительные свойства: | + | **1**. Нажмите кнопку "Добавить свойства". После этого для справочника "Контрагенты" будут добавлены дополнительные свойства: |
- | {{:playground:sas_and_1c:svoistva.png|}} | + | {{:sas_and_1c:svoistva.png|}} |
//Широта//, //Долгота// - географические координаты. ВНИМАНИЕ: поскольку в конфигурации "Управление Торговлей ред. 10.3" для дополнительных свойств типа число всегда установлена точность 15.3, то десятичная точка в координатах сдвинута на 6 знаков вправо. Вместо 55.123456 вводим 55123456. | //Широта//, //Долгота// - географические координаты. ВНИМАНИЕ: поскольку в конфигурации "Управление Торговлей ред. 10.3" для дополнительных свойств типа число всегда установлена точность 15.3, то десятичная точка в координатах сдвинута на 6 знаков вправо. Вместо 55.123456 вводим 55123456. | ||
Строка 39: | Строка 39: | ||
//Комментарий// - строка, до 50 символов. | //Комментарий// - строка, до 50 символов. | ||
- | //Иконка// - название файла с иконкой. В демо-примере есть следующие файлы: (7k.png, auchan.png. metro.png. x5.png, tande.png, victoria.png, sweetlife.png, spar.png). Если иконка не задана, или такого файле нет, то используется иконка noicon.png | + | //Иконка// - название файла с иконкой. В демо-примере есть следующие файлы: (7k.png, auchan.png. metro.png. x5.png, tander.png, victoria.png, sweetlife.png, spar.png). Если иконка не задана, или такого файле нет, то используется иконка noicon.png |
//Раскраска// - цвет комментария, указывается число в интервале 0-19 | //Раскраска// - цвет комментария, указывается число в интервале 0-19 | ||
Строка 51: | Строка 51: | ||
**5**. Обновите слои с точками в SAS.Планете (Масштаб увеличить - подождать 4 секунды - масштаб уменьшить). | **5**. Обновите слои с точками в SAS.Планете (Масштаб увеличить - подождать 4 секунды - масштаб уменьшить). | ||
- | Более удобен для работы c SAS.Планета __серверный вариант использования 1С__. То есть сервер уже есть и можно читать информацию можно непосредственно из БД. 1С, не заводя промежуточной базы Благодаря этом на карте будет всегда актуальная информация, причем никаких действий со стороны 1С выполнять не потребуется. | + | Более удобен для работы c SAS.Планета __серверный вариант использования 1С__. То есть сервер уже есть и можно читать информацию можно непосредственно из БД 1С, не заводя промежуточной базы. Благодаря этом на карте будет всегда актуальная информация, причем никаких действий со стороны 1С выполнять не потребуется. |
1С 8 версии может работать с различными серверами БД, однако наиболее широкое распространение получила связка 1С + MS SQL, а в качестве операционной системы - Windows Server различных версий. | 1С 8 версии может работать с различными серверами БД, однако наиболее широкое распространение получила связка 1С + MS SQL, а в качестве операционной системы - Windows Server различных версий. | ||
Строка 58: | Строка 58: | ||
<code>extension=php_mssql.dll</code> | <code>extension=php_mssql.dll</code> | ||
в разделе extensions файла php.ini | в разделе extensions файла php.ini | ||
- | А также из каталога windows\system32 MSSQL сервера взять файл ntwdblib.dll и скопировать его в соответствующий каталог сервера, где стоит Apache (и еще можно в каталог PHP). Если этого не сделать, то в логе Апача будет сообщение о проблемах в модуле mssql и ни слова об отсутствующей dll ке. | + | А также из каталога windows\system32 MSSQL сервера взять файл ntwdblib.dll и скопировать его в соответствующий каталог сервера, где стоит Apache (и еще можно в каталог PHP). Если этого не сделать, то в логе Апача будет сообщение о проблемах в модуле mssql и ни слова об отсутствующей dll'ке. |
Функции PHP для работы с MSSQL аналогичны функциям для работы с MySQL. | Функции PHP для работы с MSSQL аналогичны функциям для работы с MySQL. | ||
Осталось найти нужные поля в SQL базе 1С. Дело в том, что 1С встроенными средствами названия полей не показывает. Проще всего будет воспользоваться готовой обработкой, например: | Осталось найти нужные поля в SQL базе 1С. Дело в том, что 1С встроенными средствами названия полей не показывает. Проще всего будет воспользоваться готовой обработкой, например: | ||
+ | http://ocvita.ru/content/view/81/ | ||
(совсем простая) | (совсем простая) | ||
или | или | ||
Строка 110: | Строка 111: | ||
</code> | </code> | ||
- | Необходимо иметь в виду, что идентификаторы таблиц и полей в 1С не являются постоянным, т.е. если выгрузить конфиграцию, где добавлены таблицы/поля (не всю БД) из одной базы и загрузить в другую, то эти добавленные таблицы/поля могут получить уже другие идентификаторы. | + | Необходимо иметь в виду, что идентификаторы таблиц и полей в 1С не являются постоянным, т.е. если выгрузить конфигурацию, где добавлены таблицы/поля (не всю БД) из одной базы и загрузить в другую, то эти добавленные таблицы/поля могут получить уже другие идентификаторы. |
- | Поскольку в наиболее распространенных типовых конфигурациях 1С готовых полей для хранения координат нет, уже настроенный скрипт привести не могу. Но надеюсь, что на основании изложенного здесь принципа и примера скрипта тут, который можно взять за основу написать скрипт под конкретную базу 1С проблем не составит. | + | Поскольку в наиболее распространенных типовых конфигурациях 1С готовых полей для хранения координат нет, уже настроенный скрипт привести не могу. Но надеюсь, что на основании изложенного здесь принципа и вышеуказанного примера скрипта, который можно взять за основу написать скрипт под конкретную базу 1С проблем не составит. |
Что мы получаем на выходе | Что мы получаем на выходе | ||
Строка 119: | Строка 120: | ||
**1**. Возможность использования для каждого места лучшей карты | **1**. Возможность использования для каждого места лучшей карты | ||
- | Преимущество использования программы SASПланета в данном случае в том. что мы не привязаны к какой-либо конкретной карте. И чем дальше от столицы, тем это важнее. Ведь качество наиболее популярных в интернете карт, обратно пропорционально удалению от Москвы. Если уж на часто используемой карты от Google канал им. Москвы (а это, прямо скажем, не деревенская улица и даже не МКАД) заканчивается у платформы Морозки | + | Преимущество использования программы SAS.Планета в данном случае в том. что мы не привязаны к какой-либо конкретной карте. И чем дальше от столицы, тем это важнее. Ведь качество наиболее популярных в интернете карт, обратно пропорционально удалению от Москвы. Если уж на часто используемой карты от Google канал им. Москвы (а это, прямо скажем, не деревенская улица и даже не МКАД) заканчивается у платформы Морозки |
- | {{:playground:sas_and_1c:moscowchannel.png?442}} | + | {{:sas_and_1c:moscowchannel.png?442}} |
То говорить о каком-либо качестве карт километров хотя бы за 100 от столицы уже не приходится. | То говорить о каком-либо качестве карт километров хотя бы за 100 от столицы уже не приходится. | ||
Строка 127: | Строка 128: | ||
**2**. Полный контроль над формируемой картой (слоем). Например в ситуации: что делать, когда точек в тайле слишком много. Если выводить все, то имеем мешанину: | **2**. Полный контроль над формируемой картой (слоем). Например в ситуации: что делать, когда точек в тайле слишком много. Если выводить все, то имеем мешанину: | ||
- | {{:playground:sas_and_1c:overplaced.png?442}} | + | {{:sas_and_1c:overplaced.png?442}} |
На мой взгляд, это неудобно. | На мой взгляд, это неудобно. | ||
- | Другой вариант, который применяется например в слое Panoramio - выводить часть точек. Но он тоже не дает полной картины. Поэтому я лично в таком случае просто вывожу сообщение и большом количестве объектов в тайле: | + | Другой вариант, который применяется например в слое Panoramio - выводить часть точек. Но он тоже не дает полной картины. |
- | {{:playground:sas_and_1c:many_objects.png?442}} | + | Поэтому я лично в таком случае просто вывожу сообщение и большом количестве объектов в тайле: |
- | **3**. Возможность автономной (без интернета) работы (благодаря умению SAS Планеты работать с кэшем) | + | {{:sas_and_1c:many_objects.png?442}} |
+ | |||
+ | **3**. Возможность автономной (без интернета) работы (благодаря умению SAS.Планеты работать с кэшем) | ||