пятница, 19 апреля 2013 г.

Описание таблиц SQL для 1С V8.x

Данное описание таблиц применимо к с следующим СУБД:
  • Microsoft SQL Server (клиент-серверный вариант информационной базы).
  • PostgreSQL (клиент-серверный вариант информационной базы).
  • IBM DB2  (клиент-серверный вариант информационной базы)
Основные таблицы:

Название таблицыОписание
Config Основная конфигурация информационной базы. Эта конфигурация соответствует реальной структуре данных и используется 1С:Предприятием 8.х в режиме Предприятия
ConfigSaveКонфигурация, редактируемая Конфигуратором.
Не сама основная конфигурация, а только отличия ее от конфигурации БД (т.е. только измененные объекты). Таким образом, если конфигурации базы данных и основная конфигурация совпадают, то таблица ConfigSave пустая. Конфигурация из ConfigSave переписывается в Config при выполнении "Обновления конфигурации базы данных" в Конфигураторе
FilesСодержит служебную информацию, например, о работе с хранилищем конфигурации
Params
Содержит параметры информационной базы. Среди них:
  • Список пользователей информационной базы. 
  • Национальные настройки информационной базы. 
  • Таблица соответствия объектов метаданных и объектов базы данных (таблиц, полей, индексов). 
_YearOffsetСмещение дат в базе данных. Эта таблица создается только при использовании Microsoft SQL Server
DBSchemaСодержит информацию о структуре базы данных 1С:Предприятия и определяет другие объекты базы данных, используемые данной информационной базой


Таблицы планов обмена, с установленным флагом "Распределенная информационная база":

Название таблицыОписание
_ConfigChangeRec Таблица регистрации изменений объектов конфигурации
_ConfigChangeRec_ExtPropsТаблица имен файлов измененных внешних свойств объектов конфигурации


Таблицы метаданных:

Название таблицыОписание
_Consts Константы.Содержит текущие значения всех констант, определенных в конфигурации
_ConstsChangeRecКонстанты. Таблица регистрации изменений констант. Создается, если хотя бы одна константа участвует хотя бы в одном плане обмена.
_Node<n> Планы обмена. Таблица плана обмена
_Node<n>_VT<k> Планы обмена. Табличная часть плана обмена, создается для каждой табличной части
_Reference<n> Справочники. Таблица справочника
_Reference<n>_VT<k> Справочники. Табличная часть справочника - для каждой табличной части
_ReferenceChangeRec<n> Справочники. Таблица регистрации изменений справочника. Создается, если справочник участвует хотя бы в одном плане обмена.
_Document<n> Документы. Таблица документов для каждого объекта метаданных "документ".
_Document<n>_VT<k> Документы. Табличная часть документа - для каждой табличной части каждого документа.
_DocumentChangeRec<n> Документы. Таблица регистрации изменений объекта метаданных типа "документ". Создается для каждого объекта метаданных типа "документ", если он участвует хотя бы в одном плане обмена.
_Sequence<n> Последовательности документов. Таблица регистрации документов - для каждой последовательности.
_SequenceBoundary<n> Последовательности документов. Таблица границ последовательности - для каждой последовательности.
_SequenceChangeRec<n> Последовательности документов. Таблица регистрации изменений последовательности. Создается для каждой последовательности, которая участвует хотя бы в одном плане обмена.
_DocumentJournal<n> Журналы документов. Таблица журнала документов, создается для каждого журнала документов.
_Enum<n> Перечисления. Таблица перечисления - по одной для каждого перечисления. 
_Chrc<n> Планы видов характеристик. Основная таблица плана видов характеристик.
_Chrc<n>_VT<k> Планы видов характеристик. Табличная часть плана видов характеристик - для каждой табличной части.
_ChrcChangeRec<n> Планы видов характеристик. Таблица регистрации изменений плана видов характеристик. Создается, если план видов характеристик участвует хотя бы в одном плане обмена.
_Acc<n> Планы счетов. Основная таблица плана счетов.
_Acc<n>_ExtDim<k> Планы счетов. Таблица видов субконто плана счетов, создается для плана счетов в том случае, если максимальное количество субконто больше нуля.
_Acc<n>_VT<k> Планы счетов. Табличная часть плана счетов, создается для каждой табличной части плана счетов. 
_AccChangeRec<n> Планы счетов. Таблица регистрации изменений плана счетов. Создается, если план счетов участвует хотя бы в одном плане обмена. 
_CalcKind<n> Планы видов расчета. Основная таблица плана видов расчета.
_CalcKind<n>_BaseCK Планы видов расчета. Таблица базовых видов расчета, создается для плана видов расчета в случае, если его свойство "Зависимость от базы" имеет значение, отличное от "Не зависит".
_CalcKind<n>_DisplacedCK Планы видов расчета. Таблица вытесняемых видов расчета, создается для плана видов расчета в случае, если у него установлен флаг "Использует период действия". 
_CalcKind<n>_LeadingCK Планы видов расчета. Таблица ведущих видов расчета - для каждого плана видов расчета.
_CalcKindDN<n> Планы видов расчета. Вспомогательная таблица для порядка вытеснения, создается, если у плана видов расчета установлен флаг "Использует период действия". 
_CalcKind<n>_VT<k> Планы видов расчета. Табличная часть плана видов расчета, создается для каждой табличной части.
_CalcKindChangeRec<n> Планы видов расчета. Таблица регистрации изменений плана видов расчета. Создается, если план видов расчета участвует хотя бы в одном плане обмена. 
_InfoReg<n> Регистры сведений. Таблица движений регистра сведений.
_InfoRegChangeRec<n> Регистры сведений. Таблица регистрации изменений регистра сведений. Создается, если регистр сведений участвует хотя бы в одном плане обмена.
_AccumReg<n> Регистры накопления. Таблица движений регистра накопления.
_AccumRegTotals<n> Регистры накопления. Таблица итогов регистра накопления, если регистр поддерживает остатки.
_AccumRegTurnovers<n> Регистры накопления. Таблица оборотов регистра накопления, если регистр поддерживает обороты. 
_AccumRegChangeRec<n> Регистры накопления. Таблица регистрации изменений регистра накопления. Создается, если регистр накопления участвует хотя бы в одном плане обмена.
_AccumRegOptions Регистры накопления. Таблица настроек хранения итогов регистров накопления одна на все регистры накопления. 
_AccntReg<n> Регистры бухгалтерии. Таблица движений регистра бухгалтерии
_AccntRegED<n> Регистры бухгалтерии. Таблица значений субконто регистра бухгалтерии, создается в том случае, если он ссылается на план счетов, у которого максимальное количество субконто больше нуля.
_AccTtl0<n> Регистры бухгалтерии. Таблица итогов по счету.
_AccTtl<i><n> Регистры бухгалтерии. Таблица итогов по счету с количеством видов субконто равным i, где i от 1 до максимального количества субконто. 
_AccTtlC<n> Регистры бухгалтерии. Таблица итогов оборотов между счетами, только для регистра бухгалтерии поддерживающего корреспонденцию. 
_AccntRegChangeRec<n> Регистры бухгалтерии. Таблица регистрации изменений регистра бухгалтерии. Создается, если регистр бухгалтерии участвует хотя бы в одном плане обмена. 
_AccntRegOptions Регистры бухгалтерии. Таблица настроек хранения итогов одна на все регистры бухгалтерии.
_CalcReg<n> Регистры расчета. Таблица движений регистра расчета.
_CalcRegActPer<n> Регистры расчета. Таблица фактических периодов действия для регистра расчета, создается, если у регистра расчета установлен флаг "Период действия".
_CalcRegChangeRec<n> Регистры расчета. Таблица регистрации изменений регистра расчета. Создается для каждого регистра расчета, участвующего хотя бы в одном плане обмена.
_CalcRegRecalc<n> Регистры расчета. Таблица перерасчета регистра расчета, создается для каждого перерасчета.
_CalcRegRecalcChangeRec<n> Регистры расчета. Таблица регистрации изменений перерасчета. Создается, если перерасчет участвует хотя бы в одном плане обмена.
_BPRoutePoint<n> Бизнес-процессы. Таблица точек маршрута бизнес-процесса для каждого бизнес-процесса.
_BusinessProcess<n> Бизнес-процессы. Основная таблица бизнес-процесса. 
_BusinessProcess<n>_VT<k> Бизнес-процессы. Табличная часть бизнес-процесса для каждой табличной части.
_BusinessProcessChangeRec<n> Бизнес-процессы. Таблица регистрации изменений бизнес-процесса. Создается для каждого бизнес-процесса, участвующего хотя бы в одном плане обмена.
_Task<n> Задачи. Основная таблица задачи.
_Task<n>_VT<k> Задачи. Табличная часть задачи для каждой табличной части.
_TaskChangeRec<n> Задачи. Таблица регистрации изменений в задачах. Создается для каждого объекта метаданных типа "задача", который участвует хотя бы в одном плане обмена. 


Структуру и название таблиц используемых для хранения данных в БД 1С 8.х можно посмотреть, выполнив следующий код на встроенном языке 1С:

 МассивИменМетаданных = Новый Массив();
 МассивИменМетаданных.Добавить("Справочник.Номенклатура");

 // Таблица значений, содержащая таблицы указанного объекта.
 Таблицы = ПолучитьСтруктуруХраненияБазыДанных(МассивИменМетаданных);
 Построитель = Новый ПостроительОтчета;
 Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(Таблицы);
 Построитель.ЗаполнитьНастройки();
 Построитель.Вывести(ЭлементыФормы.ПолеТабличногоДокумента1);
 Обновить();
 
 //Для Каждого Таблица Из Таблицы Цикл
 // ПоляТаблицы = Таблица.Поля;
 // Для Каждого Поле Из ПоляТаблицы Цикл
 //  // Просмотр свойств таблицы.
 // КонецЦикла; 

 // ИндексыТаблицы = Таблица.Индексы;
 // Для Каждого Индекс Из ИндексыТаблицы Цикл
 //  // Просмотр свойств индекса.
 // КонецЦикла;   
 //КонецЦикла;    

вторник, 9 апреля 2013 г.

Сканируем документы по сети. Или как расшарить сканер в Ubuntu?

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

Имеем:
Копутеры в разных подсетях (192.168.1.0/24, 192.168.2.0/24, 192.168.10.0/24) и МФУ Canon MF4010, подключенный по USB к 192.168.1.6

Обозначения:
scanserver - компьютер, к которому подключен сканер;
scanclient - компьютер, к которого необходимо сканировать по сети;


На scanserver:

Ставим недостающие пакеты:
$sudo apt-get install sane-utils

Правим конфиги:

$sudo mcedit /etc/sane.d/saned.conf

в самый конец файла добавляем IP-адрес scanclient 
(Если клиентов несколько, то можно указать диапозон IP-адресов (например, 192.168.1.1-192.168.1.4)
 или всю подсеть (например, 192.168.1.0/24))

192.168.1.0/24
192.168.2.0/24
192.168.10.0/24

$sudo mcedit /etc/inetd.conf

добавляем в него строку:
sane-port stream tcp nowait saned:saned /usr/sbin/saned saned

(если такая строка есть, но закомментирована - соответственно раскомментировать ее)


Рестартуем openbsd-inetd:
$sudo service openbsd-inetd restart


Если в системе еще нет группы scanner - создаем ее, и добавляем себя и пользователя saned в эту группу:
$sudo groupadd scanner
$sudo usermod -aG scanner user
$sudo usermod -aG scanner saned

Правим конфиг 40-libsane.rules:
$sudo mcedit /lib/udev/rules.d/40-libsane.rules

ищем свой сканер, должно быть что то типа:

# Canon imageCLASS MF4010 | Canon imageCLASS MF4018
ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="26b4", ENV{libsane_matched}="yes"

приводим строку к такому виду:

# Canon imageCLASS MF4010 | Canon imageCLASS MF4018
ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="26b4", ENV{libsane_matched}="yes", MODE="664", GROUP="scanner"


Если вашего сканера нет в файле, его можно добавить вручную по idVendor и idProduct, которые можно получить командой на scanserver:
$sane-find-scanner

в ответ должно быть что тот типа:
found USB scanner (vendor=0x04a9 [Canon Inc.], product=0x26b4 [MF4010]) at libusb:001:003

Теперь правим /etc/default/saned:
$sudo mcedit /etc/default/saned

устанавливаем RUN=yes

Рестартуем saned:
$sudo service saned restart

На этом настройка scanserver-a завершена...


На scanclient:

Ставим недостающие пакеты:
$sudo apt-get install sane-utils

Правим конфиг:

$sudo mcedit /etc/sane.d/net.conf

в самый конец файла добавляем IP-адрес scanserver
192.168.1.6 

Проверяем доступность сканера:
$sudo scanimage -Lq

В ответ должны получить что-то вроде:
device `net:192.168.1.6:pixma:04A926B4_SD3008250258Q' is a CANON Canon imageCLASS MF4010 multi-function peripheral

В конфиге /etc/sane.d/dll.conf проверяем наличие строки (раскаментируем/добовляем):
net


Если в системе еще нет группы scanner - создаем ее, и добавляем себя и пользователя saned в эту группу:
$sudo groupadd scanner
$sudo usermod -aG scanner user
$sudo usermod -aG scanner saned

На этом ВСЕ!!! Можно пробовать сканировать с помощью XSane или другой подходящей программой, используя расшаренный сканер.


ЗАМЕЧАНИЕ!!!
Если после настройки есть ругань на ограничение правах использования сканера, то на scanserver в конфиге /etc/inetd.conf следует заменить строку параметров:

sane-port stream tcp nowait saned:saned /usr/sbin/saned saned
заменить на:
sane-port stream tcp nowait root /usr/sbin/saned saned

Sony Xperia P + Ubuntu 12.04. Или подключаем Android 4.0+ к Ubuntu 12.04

Давно не было необходимости подключать свой телефон к копутеру по USB. А тут вот столкнулся. К своему удивлению обнаружил, что по-умолчанию 12-я убунта на умеет работать со смартами на android 4.0+ как с обычной флешкой по USB. Пришлось лечить.

Устанавливаем Go-mtpfs:

$sudo add-apt-repository ppa:webupd8team/unstable
$sudo apt-get update && sudo apt-get install go-mtpfs
Для монтирования устройства выполняем:
$go-mtpfs /media/MyAndroid

Для отмонтирования устройства выполняем:
$fusermount -u /media/MyAndroid



Убираем лишние значки с панели Gnome 3.

Значки типа: "специальные возможности", "индикатор раскладки клавиатуры" (у меня Xneur установлен), "индикатор батареи" мне не нужны. Было принято убрать лишнее с панели:

$sudo mcedit /usr/share/gnome-shell/js/ui/panel.js

закоментим оригинальные строки:

/*const STANDARD_STATUS_AREA_ORDER = ['a11y', 'display', 'keyboard', 'volume', 'bluetooth', 'network', 'battery','userMenu'];
 const STANDARD_STATUS_AREA_SHELL_IMPLEMENTATION = {
'a11y': imports.ui.status.accessibility.ATIndicator,
'volume': imports.ui.status.volume.Indicator,
'battery': imports.ui.status.power.Indicator,
'keyboard': imports.ui.status.keyboard.XKBIndicator,
'userMenu': imports.ui.userMenu.UserMenuButton
 };*/

и напишем как нам надо:

const STANDARD_STATUS_AREA_ORDER = [ 'volume', 'bluetooth', 'network'];
const STANDARD_TRAY_ICON_SHELL_IMPLEMENTATION = {
 'volume': imports.ui.status.volume.Indicator,
'userMenu': imports.ui.userMenu.UserMenuButton
 };

Перезагружаем Gnome (Alt+F2 —> r). Готово!

Свои ярлыки в меню Gnome 3 Ubuntu 12.04

Для того, чтобы создать собственный ярлык в главном меню Gnome 3 Ubuntu 12.04, например, для 1С:Предприетие 7.7, необходимо в /usr/share/applications/ создать desktop-файл такого содержания:

#mcedit /usr/share/applications/1cv77.desktop

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=env WINEPREFIX="/home/alah/.wine" wine start /Unix "/home/alah/wine_c/Program Files/1Cv77/BIN/1cv7s.exe"
Categories=Wine;
Icon[ru_RU]=/home/alah/.local/share/icons/hicolor/32x32/apps/1FDC_1Cv7s.0.png
Name[ru_RU]=1С:Предприятие 7.7
Icon=/home/alah/.local/share/icons/hicolor/32x32/apps/1FDC_1Cv7s.0.png
Name=1C:Enterprise 7.7

где

Exec - команда запуска приложения;
Categories - подкатегория, куда положить ярлык;
Icon - путь к иконке для ярлыка;
Name - имя ярлыка;

вторник, 19 февраля 2013 г.

FTP server за 15 минут!

Разворачиваем FTP-server за 15 минут на Ubuntu server 10.04

Ставим необходимые пакеты:
$ sudo apt-get install proftpd

Настраиваем:
$ sudo mcedit /etc/proftpd/proftpd.conf

#Тип сервера (выделенный)
ServerType                    standalone

#Чтобы предотвратить попытку положить или взломать демон proftpd командой "ls */../*/../*/..."
DenyFilter                      \*.*/

#Разрешить перезапись файлов
AllowOverwrite               on

#Разрешить "дозаливку" файлов при ошибках
AllowStoreRestart           on

#Максимальное кол-во подключений с одного хоста + сообщение при превышении ограничения
MaxClientsPerHost          2                     "too many connections by peer"

#Общее максимальное кол-во подключений
MaxInstances                 10

#Мыло админа
ServerAdmin                  admin@my.domen.com

#Имя сервера
ServerName                   "MY FTP SERVER"

#Замыкать всех в каталоге "/mnt/users/ftp"
DefaultRoot                    /mnt/users/ftp

#Удалить данные при прерывании сессии
DeleteAbortedStores       on

#Не показывать файлы пока они полностью не загружены на сервер
HiddenStores                  on

#Маска прав для вновь созданных файлов и каталогов
#первый параметр для файлов (666 - параметр = новый файл)
#второй параметр для каталогов (777 - параметр = новый каталог)
Umask                           022            022

#Root`y логиниться запрещено
RootLogin                       off

#Сообщение при удачном логине
DisplayLogin                   /etc/proftpd/.welcome.msg

#Запретить удаление файлов всем, кроме пользователя alah
<Limit WRITE>
          AllowUser            alah
          DenyAll
          IgnoreHidden       on
</Limit>

#Разрешить всем выкладывать файлы на сервер
<Limit STOR>
          AllowAll
</Limit>

#Глобальные настройки сервера для всех виртуальных
<Global>
           DefaultRoot              /mnt/users/ftp
           DeleteAbortedStores on
           HiddenStores            on
           Umask                     022          022
           RootLogin                 off
           DisplayLogin             /etc/proftpd/.welcome.msg
</Global>

#Настройки анонимных подключений
<Anonymous /mnt/users/ftp>
           #Юзер, от имени которого будем работать
           User                            ftp
           Group                          ftp
           UserAlias                     anonymous         ftp

           #Проверять наличие у юзера оболочки
           RequireValidShell         off

           #Просить пароль у анонимов
           AnonRequirePassword  off

           #Разрешить фнонимам презаписывать файлы
           AllowOverwrite            off

           #Максимальное кол-во анонимов
           MaxClients                  10             "Sorry, max %m users -- try again later"

           #Ограничить логины анонимов с определенных хостов
           <Limit LOGIN>
                      Order allow,deny
                      Allow from all
                      Deny from .microsoft.com, .msn.com
           </Limit>

           #Запретить анонима удалять файлы с сервера
           <Limit WRITE>
                      DenyAll
           </Limit>
</Anonymous>

На папку /mnt/users/ftp нужно дать права 777

Готово! Можно пользоваться.

P.S.

Если FTP-сервер за NAT`ом - необходимо добавить в конфиг следующие опции:

MasqueradeAddress ftp.mydomain.com  # FQDN вашего FTP
MasqueradeAddress 123.45.67.89         # внешний IP

PassivePorts            57000 58000            # диапазон портов для пассивного подключения

и разрешить диапазон портов пассивного подключения в IPTABLES:

# iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# iptables -A INPUT -p tcp --match multiport --dports 57000:58000 -j ACCEPT

ну и пробросить соответствующие порты на шлюзе.

четверг, 14 февраля 2013 г.

Настройка доступа к Firebird/interBase Server через ODBC. Ubuntu 12.04


Вдогонку к "Настройка доступа к Microsoft SQL Server через ODBC. Ubuntu 12.04" решил описать связку Linux->Firebird/InterBase.

Устанавливаем драйвер:

Установка необходимых пакетов:

$sudo apt-get install unixodbc unixodbc-bin unixodbc-dev odbcinst firebird2.5-super libfbclient2

Создаем необходимый симилинк:
#Для i386
$sudo ln -s /usr/lib/libfbclient.so.2 /usr/lib/libfbclient.so

#Для x86_64
$sudo ln -s /usr/lib/x86_64-linux-gnu/libfbclient.so.2 /usr/lib/x86_64-linux-gnu/libfbclient.so


На момент написания статьи последней версией драйвера была 2.0.1.152.
Последнюю версию на текущий момент см. тут

Качаем драйвер и копируем его куда следует:
#Для i386

$wget http://sourceforge.net/projects/firebird/files/firebird-ODBC-driver/2.0.1-Release/OdbcFb-LIB-2.0.1.152.i686.gz
$tar zxvf OdbcFb-LIB-2.0.1.152.i686.gz
$sudo cp -f libOdbcFb.so /usr/lib/odbc/
$sudo chmod +x /usr/lib/odbc/libOdbcFb.so

#Для x86_64
Для 64-битной системы драйвер оказался недоработанным (косяки работы с датой и "съедались" некоторые буквы у char`в). Пришлось собирать из svn свой.
$wget https://dl.dropbox.com/u/61986139/libOdbcFb.so.tar.gz
$tar zxvf libOdbcFb.so.tar.gz
$sudo cp -f libOdbcFb.so /usr/lib/x86_64-linux-gnu/odbc/
$sudo chmod +x /usr/lib/x86_64-linux-gnu/odbc/libOdbcFb.so



Собсна, переходим к конфигурированию...

Настраиваем драйвер:

$sudo mcedit /etc/odbcinst.ini 

и  добавляем секцию для Firebird/InterBase:

#Для i386
[Firebird]
Description = Firebird/InterBase(r) driver
Driver  = /usr/lib/odbc/libOdbcFb.so
Setup  = /usr/lib/odbc/libOdbcFb.so
FileUsage = 1
UsageCount = 4

#Для x86_64
[Firebird]
Description = Firebird/InterBase(r) driver
Driver  = /usr/lib/x86_64-linux-gnu/odbc/libOdbcFb.so
Setup  = /usr/lib/x86_64-linux-gnu/odbc/libOdbcFb.so
FileUsage = 1
UsageCount = 4



Настраиваем непосредственно систему ODBC. Создаем DSN.
Сделать это можно 2-мя способами:

1. Через GUI:

Используя мастер настройки:
$ODBCCreateDataSourceQ4

Используя ODBC администратор:
$ODBCManageDataSourcesQ4


2. Путем редактированию конфигов:

$sudo mcedit /etc/odbc.ini

Добавляем в него соответствующую секцию:

#Для i386
[MixPos]
Description = Firebird/InterBase(r) driver
Driver  = Firebird

#Если сервер Выньдовый, то путь к БД пишется в таком формате
#Dbname = 192.168.10.41:d:\mixpos\data\mixdata.fdb

#Если сервер на Linux, то путь к БД пишется в таком формате
Dbname  = 192.168.10.1:/mnt/base/mixpos/mixdata.fdb

User                                = SYSDBA
Password                         = masterkey
Role                                = 
CharacterSet                   = WIN1251
ReadOnly                        = No
NoWait                           = No
Dialect                            = 3
QuotedIdentifier              = Yes
SensitiveIdentifier           = No
AutoQuotedIdentifier       = No

#Для x86_64
[MixPos]
Description = Firebird/InterBase(r) driver
Driver  = Firebird

#Если сервер Выньдовый, то путь к БД пишется в таком формате
#Dbname = 192.168.10.41:d:\mixpos\data\mixdata.fdb

#Если сервер на Linux, то путь к БД пишется в таком формате
Dbname  = 192.168.10.1:/mnt/base/mixpos/mixdata.fdb

User                                = SYSDBA
Password                         = masterkey
Role                                = 
CharacterSet                   = WIN1251
ReadOnly                        = No
NoWait                           = No
Dialect                            = 3
QuotedIdentifier              = Yes
SensitiveIdentifier           = No
AutoQuotedIdentifier       = No


где:
Description - описание драйвера.
Driver - имя раздела из файла /etc/odbcinst.ini.
Dbname - путь к  базе данных на Firebird/InterBase сервере, к которой нужно получить доступ.
User и Password - пользователь, грантованный на работу с данной БД.
Role - роль, с которой осуществляется подключение к БД.

CharacterSet - кодировка БД.


Конфигурирование завершено...


Устанавливаем параметры драйвера в систему:

$sudo odbcinst -i -d -f /etc/odbcinst.ini

Устанавливаем настройки ODBC в систему:

$sudo odbcinst -i -s -l -f /etc/odbc.ini

!!!!ВАЖНО!!!!
Если в /etc/odbc.ini вносятся какие-либо изменения, процедуру установки ностроек ODBC в систему, необходимо повторить (sudo odbcinst -i -s -l -f /etc/odbc.ini)


Проверка установленных DSN:

$odbcinst -s -q

Проверка подключения к БД:

$isql MixPos

видим что то типа:

+---------------------------------------+
| Connected!                                 |
|                                                   |
| sql-statement                             |
| help [tablename]                        |
| quit                                            |
|                                                   |
+---------------------------------------+
SQL> 
 

Чтобы удалить параметры драйвера из системы:
$sudo odbcinst -u -d -n Firebird

Чтобы удалить регистрацию DSN из системы:
$sudo odbcinst -u -s -l -n MixPos

Во избежание конфликтов, лучше удалить локальный настройки ODBC:
$rm /home/name/.odbc.ini


Все, можно работать.