
- •Android-клиент для «1с Предприятие» Архитектура сопряжения клиента с «1c Предприятие»
- •Демонстрационный Android-клиент
- •Настройка параметров Direct-клиента
- •Представление справочников и документов 1с в ms sql-сервере
- •Структура справочника «Мета данные Android» в 1c
- •Используемая версия сервера
- •Настройка параметров ms sql-сервера
- •Разрешите удаленные подключения к sql Server 2005 Express или sql Server 2005 Developer Edition
- •Включите службу sql Server Browser
- •Создание исключений в брандмауэре Windows
- •Создание исключения для sql Server 2005 в брандмауэре Windows
- •Создание исключения для службы sql Server Browser в брандмауэре Windows
Представление справочников и документов 1с в ms sql-сервере
Каждый справочник 1С в MS SQL-сервере является таблицей с именем вида dbo._Reference<n>, где <n> - число – уникальный номер таблицы в БД, например, dbo._Reference33;
Каждый документ 1С в MS SQL-сервере является таблицей с именем вида dbo._Reference<n>, где <n> - число – уникальный номер таблицы в БД, например, dbo._Reference33;
Каждая таблица имеет обязательные поля:
_Code - обязательное поле Код в 1С, порядковый номер записи в таблице;
_Description - обязательное поле Наименование в 1С;
_IDRRef – внутренний двоичный 16-байтный идентификатор в БД, который может быть получен в SQL-запросе в виде символьной строки, например, в виде B9E8001E3341748E11E12BEF55884E81. Все ссылки на записи из табличных частей и их других справочников (документов), имеют такой же вид.
при формировании SQL-запросов необходимо полученные ключи преобразовывать обратно из символьного вида в двоичный, например,
Select * from dbo._Reference7 where
_IDRRef=CONVERT(binary(16),0xB9E8001E3341748E11E12BEF55884E81,2);
"UPDATE "+Tbl[0][0]+" SET "+Fld[0][0]+"="+xGeo+"," +Fld[0][1]+"="+yGeo+" WHERE
_IDRRef= CONVERT(binary(16), 0x"+ driverID +",2);"
обычное поле имеет имя вида _Fld<n>, где <n> - уникальный порядковый номер поля в 1С, например, _Fld21
ссылочное поле имеет имя вида _Fld<n>RRef, где <n> - уникальный порядковый номер поля в 1С, например, _Fld20RRef и содержит двоичный 16-байтный идентификатор записи, при этом в самой таблице никак не обозначено, на какую конкретно таблицу заведена ссылка (т.е. мета-данные о связях отсутствуют);
Табличная часть справочника/документа представляет собой отдельную таблицу с именем вида dbo._Reference<n>_VT<m>, где <n> - уникальный номер основной таблицы, а <m> - табличной части (для иерархии табличных частей), например, dbo._Reference19_VT24;
Поля табличной части:
_Reference<n>_IDRRef – ссылка на запись основной таблицы - двоичный 16-байтный идентификатор записи, где ,<n> - уникальный номер таблицы в БД;
_KeyField - внутренний двоичный 16-байтный идентификатор записи;
_LineNo<n> - поле N табличной части – последовательный номер для каждой группы записей, где <n> - уникальный номер поля;
для обычных полей и ссылок – те же соглашения, что и для основной таблицы
Структура справочника «Мета данные Android» в 1c
Поскольку мета-данные описания справочников и документов 1С не хранятся в таблицах MS SQL-сервера (похоже, находятся в dbo.DBSchema в виде двоичного сериализованного поля), то необходим справочник метаданных клиента (Мета данные Android). В него необходимо занести внутренние имена таблиц (справочников и документов) и их полей, которые используются клиентом. Табличные части документов и справочников оформляются в виде отдельных записей. Заполнение производится разработчиком. При изменении конфигурации, связанном с удалением и повторным созданием справочников и документов, необходимо отредактировать имена таблиц (поле Наименование) и имена полей (поле Field Name). При этом в справочнике метаданных не допускается изменение порядка следования имеющихся полей (поле код для имени таблицы и поле N для имени поля), т.к. клиент извлекает данные из справочника по возрастанию идентификационных кодов, а не по оригинальным именам полей.