playground:1c_и_sas.планета
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версия | |||
| playground:1c_и_sas.планета [29/05/2011 14:29] – 93.91.4.251 | playground:1c_и_sas.планета [01/06/2011 06:16] (текущий) – удалено vdemidov | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | В данной статье рассматривается примеи организация связи между программами 1С и SAS.Планета. | ||
| - | |||
| - | Типичной задачей, | ||
| - | То есть: имеем заказы от покупателей (адреса доставки и объемы (веса)). Из них надо составить маршруты, | ||
| - | |||
| - | Примерно вот так: | ||
| - | |||
| - | {{: | ||
| - | |||
| - | Разумеется, | ||
| - | |||
| - | {{: | ||
| - | |||
| - | Информацию из 1С мы будем выводить с помощью технологии, | ||
| - | |||
| - | Обращение к БД реализуется по-разному, | ||
| - | При __использовании 1C в файловом варианте__ необходима выгрузка информации на сервер БД. (Есть еще вариант с веб-компонентой, | ||
| - | Пример выгрузки денных из конфигурации Управление торговлей, | ||
| - | |||
| - | **1**. Установите у себя пример базы данных в соответствие с инструкцией | ||
| - | |||
| - | **2**. Установите [[http:// | ||
| - | |||
| - | **3**. Скачайте обработку выгрузки: | ||
| - | |||
| - | **4**. Откройте обработку в режиме " | ||
| - | |||
| - | Основная форма обработки: | ||
| - | |||
| - | {{: | ||
| - | |||
| - | **1**. Нажмите кнопку " | ||
| - | |||
| - | {{: | ||
| - | |||
| - | // | ||
| - | Разумеется, | ||
| - | |||
| - | // | ||
| - | |||
| - | // | ||
| - | |||
| - | // | ||
| - | |||
| - | **2**. В справочнике " | ||
| - | |||
| - | **3**. В форме обработки укажите параметры подключения к MySQL серверу | ||
| - | |||
| - | **4**. Нажмите кнопку " | ||
| - | |||
| - | **5**. Обновите слои с точками в SAS.Планете (Масштаб увеличить - подождать 4 секунды - масштаб уменьшить). | ||
| - | |||
| - | Более удобен для работы c SAS.Планета __серверный вариант использования 1С__. То есть сервер уже есть и можно читать информацию можно непосредственно из БД. 1С, не заводя промежуточной базы Благодаря этом на карте будет всегда актуальная информация, | ||
| - | |||
| - | 1С 8 версии может работать с различными серверами БД, однако наиболее широкое распространение получила связка 1С + MS SQL, а в качестве операционной системы - Windows Server различных версий. | ||
| - | |||
| - | PHP (я использовал версию 5.2) имеет встроенные средства для работы с MS SQL. Однако, | ||
| - | < | ||
| - | в разделе extensions файла php.ini | ||
| - | А также из каталога windows\system32 MSSQL сервера взять файл ntwdblib.dll и скопировать его в соответствующий каталог сервера, | ||
| - | Функции PHP для работы с MSSQL аналогичны функциям для работы с MySQL. | ||
| - | |||
| - | Осталось найти нужные поля в SQL базе 1С. Дело в том, что 1С встроенными средствами названия полей не показывает. Проще всего будет воспользоваться готовой обработкой, | ||
| - | http:// | ||
| - | (совсем простая) | ||
| - | или | ||
| - | http:// | ||
| - | (посложнее) | ||
| - | http:// | ||
| - | (совсем навороченная) | ||
| - | |||
| - | В итоге у Вас должно получится что-то вроде такого: | ||
| - | <code php> | ||
| - | function gettotallabel($x1, | ||
| - | $arr = array(); | ||
| - | $bcolor1 = array(255, 255, 255); | ||
| - | $bcolor2 = array(224, 224, 224); | ||
| - | |||
| - | $t_sk = ' | ||
| - | $t_sk_x = ' | ||
| - | $t_sk_y = ' | ||
| - | |||
| - | $t_ml = ' | ||
| - | $t_mlm = ' | ||
| - | $t_mlm_id = ' | ||
| - | $t_mlm_zadanie = ' | ||
| - | |||
| - | $t_orders = ' | ||
| - | $t_orders_weight = ' | ||
| - | $t_orders_sk = ' | ||
| - | $t_orders_datefinal = ' | ||
| - | |||
| - | $sBegdateStart = date(' | ||
| - | $sBegdateEnd = date(' | ||
| - | $sEnddateEnd = date(' | ||
| - | |||
| - | // заказы на текущий день НЕ на маршруте | ||
| - | $query = " | ||
| - | SELECT | ||
| - | COUNT(*) AS kolvoOrders, | ||
| - | COUNT(DISTINCT orders.$t_orders_sk) AS kolvoPoints, | ||
| - | SUM(orders.$t_orders_weight) AS weight | ||
| - | FROM | ||
| - | $t_orders AS orders | ||
| - | WHERE | ||
| - | orders.$t_orders_datefinal=' | ||
| - | AND orders._IDRRef IN | ||
| - | (SELECT orders_IDRRef FROM # | ||
| - | $result = my_mysql_query($query); | ||
| - | $rowFree = mssql_fetch_assoc($result); | ||
| - | </ | ||
| - | |||
| - | Необходимо иметь в виду, что идентификаторы таблиц и полей в 1С не являются постоянным, | ||
| - | |||
| - | Поскольку в наиболее распространенных типовых конфигурациях 1С готовых полей для хранения координат нет, уже настроенный скрипт привести не могу. Но надеюсь, | ||
| - | |||
| - | Что мы получаем на выходе | ||
| - | |||
| - | Красивую картинку на карте - это понятно. Но не только ее | ||
| - | |||
| - | **1**. Возможность использования для каждого места лучшей карты | ||
| - | Преимущество использования программы SASПланета в данном случае в том. что мы не привязаны к какой-либо конкретной карте. И чем дальше от столицы, | ||
| - | |||
| - | {{: | ||
| - | |||
| - | То говорить о каком-либо качестве карт километров хотя бы за 100 от столицы уже не приходится. | ||
| - | |||
| - | **2**. Полный контроль над формируемой картой (слоем). Например в ситуации: | ||
| - | |||
| - | {{: | ||
| - | |||
| - | На мой взгляд, | ||
| - | |||
| - | Другой вариант, | ||
| - | |||
| - | {{: | ||
| - | |||
| - | **3**. Возможность автономной (без интернета) работы (благодаря умению SAS Планеты работать с кэшем) | ||
/home/sasgisor/public_html/wikisasiya/data/attic/playground/1c_и_sas.планета.1306679388.txt.gz · Последнее изменение: (внешнее изменение)
