Аккредитованный удостоверяющий центр
▼ Выберите ваш город ▼
Центр Выдачи
Электронных Подписей

Электронная подпись за 1 час для:

Подборки из журналов Программисту

Источник: http://www.klerk.ru/soft/

Не знаю, все ли внешние источники, изображенные на картинке, можно использовать в 1С, но многие из них точно можно прикрутить к 1С, в том числе и установленном на сервере под управлением замечательной свободной ОС LINUX.

Свобода выбора - необходимое преимущество

Добрый день, уважаемые товарищи! Господам тоже доброго времени суток, ежели вы к нам с Парижу понаехали. Речь ныне пойдет о замечательном инструменте, доступном в 1С - внешних источниках данных. Для того, чтобы разобраться в принципиальных моментах связи с ними, попробуем подключить два варианта внешних источников: MySQL и PostgreSQL. Для этого нам понадобится сервер под управлением ОС LINUX (у меня уже есть "сервер" в лице домашнего ноутбука - на нем и будем тренироваться), на котором установлен сервер 1С и, например, PostgreSQL с патчами от 1С (лично я использую замечательную сборку от Postgres PRO).

Вообще, можно подключить множество разных источников данных к 1С, включая MS SQL (из Linux). Подробности о других источниках можно нагуглить самостоятельно, а вот о MySQL и PostgreSQL я расскажу подробно и с картинками.

Теоретическая часть

Собственно, 1С работает со внешними источниками посредством соединения с ними через механизм ODBC (Open Database Connectivity, т.е. открытый коннектор к базам данных). Для windows все просто - качаем где-нибудь нагугленный дистриб с коннектором, молимся, чтобы в нем не было троянов с руткитами и на свой страх и риск ставим (да, сгущаю краски). В Linux все уже находится в репозитариях с цифровой подписью и сертификатами степень защищенности которых пользователям M$ и не снилась, а код которых открыт, как душа ребенка. В итоге не надо ничего искать в гугле - достаточно набрать $ apt-caсhe search:

$ apt-cache search odbc libiodbc2 - iODBC Driver Manager odbc-mdbtools - MDB tools ODBC driver odbcinst - Helper program for accessing odbc ini files odbcinst1debian2 - Support library for accessing odbc ini files unixodbc - Basic ODBC tools erlang-odbc - Интерфейс Erlang/OTP к базам данных SQL freetds-common - конфигурационные файлы для клиентских библиотек FreeTDS SQL libiodbc2-dev - iODBC Driver Manager (development files) libodbc1 - Библиотека ODBC для Unix libreoffice-base-drivers - Database connectvity drivers for LibreOffice libreoffice-sdbc-firebird - Firebird SDBC driver for LibreOffice ...

В общем много всего - экрана три-четыре. Обратите внимание на FreeTDS - это драйвер для MS SQL! Может кому пригодиться...

Практическая часть

Итак, для того, чтобы подключить внешний источник, нам необходимо установить пакет поддержки ODBC под Linux. Для mysql достаточно выполнить команду:

$ sudo apt-get install libmyodbc

После чего необходимо откорректировать файл /etc/odbcinst.ini, в котором добавить секцию:

[MySQL] Description = ODBC for MySQL Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so FileUsage = 1

Для PostgrqSQL достаточно такой команды (и файлы править не надо):

$ sudo apt-get install odbc-postgresql

Все, после этого можно лезть в конфигуратор и подтыкать внешние таблицы. Для MySQL нужно делать так:

Тут мы подключили внешний источник из СУБД MySQL. База данных test, сервер - по-умолчанию localhost. После того, как мы нажмем "Ок", у нас на экране появится список таблиц данной БД и их поля. Можно выбрать, какие поля нам нужны, и нажать готово.

Дальше если мы зайдем в саму таблицу, то увидим знакомую картину, практически аналогичную справочнику. Можно использовать характеристики, устанавливать роли полей (для ключа и представления), в модуле менеджера можно указать функции для получения полей представления и самого представления. В модуле объекта доступны функции "ПередЗаписью", "ПриКопировании", "ПередУдалением" и т.д. и т.п. Также есть флаги для указания, что таблица доступна только для чтения... В общем и целом картина приятная у меня складывается.

При открытии 1С у нас данный внешний источник попадет в ту подсистему, в которую мы его добавим. Например, сюда:

Вот наша табличка "TestTbl". Но для того, чтобы увидеть сей чудный скрин, нужно еще кое-что сделать, а именно снова прописать наше соединение к БД, т.е. еще раз повторить те же действия, что мы делали в конфигураторе (не совсем понимаю логику разработчиков 1С, ну да и ладно):

Если Ваш источник находится на другом сервере 1С, то Вем нужно будет, сами понимаете, указать параметр Server. Т.к. у меня All In One, то мне так париться незачем.

Давайте проделаем то же самое с PostgreSQL. Тут следует обратить внимание на то, что при подключении к БД 1С, нужно указать драйвер PostgreSQL Unicode. Строка соединения в моем случае будет выглядеть так:

DRIVER={PostgreSQL Unicode};Database=jim;Server=localhost;

Подключение источника прошло успешно, но после попытки обновить данные (F5) мы видим такое вот сообщеньице:

С этим бороться можно только с помощью демонического списка, в котором не нужно выбирать те поля, которые 1С не сможет отобразить. В консоли же запросов все работает:

Заключение

Собственно, для подключения внешних источников данных к 1С, сервером для которой служит ОС Linux, не нужно обладать какими-либо уникальными админскими линуксовыми знаниями - все делается элементарно и просто. Вот небольшая пошаговая инструкция:

  1. Найти с помощью apt-caсhe search нужный пакет (по слову "odbc" в идеале совмещенному с | grep dbname) и установить. Если так не нашлось - погуглить.
  2. Проверить, появилась ли запись в файлике /etc/odbcinst.ini на данную тему. Если нет - добавить, обнаружив библиотеки в /usr/lib/x86_64-linux-gnu/odbc/ (вы же используете 64-битную систему, да?)
  3. Зайти в конфигуратор и добавить внешний источник.
  4. Добавить таблицу источника и задать строку подключения, имя пользователя и пароль (обычно убрав аутентификацию ОС).
  5. Если что-то не подключается - проверить строку подключения и погуглить на эту тему.
  6. Профит!

При вопросе укажите: 1) вы организация, ИП или физ. лицо 2) налог (УСН/ ОСНО, ЕНВД).
Отвечайте за нас, кто сможет. Любое знание и опыт могут быть полезными. Администрация

На правах рекламы

    Рейтинг@Mail.ru    

Ильдар

© 2008 - 2016 OtchetOnline - аккредитованный удостоверяющий центр
Тел.: 8 800 7007 801 (звонок бесплатный)