Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Android-клиент для 1С Предприятие.doc
Скачиваний:
7
Добавлен:
17.04.2019
Размер:
625.66 Кб
Скачать

Представление справочников и документов 1с в ms sql-сервере

  1. Каждый справочник 1С в MS SQL-сервере является таблицей с именем вида dbo._Reference<n>, где <n> - число – уникальный номер таблицы в БД, например, dbo._Reference33;

  2. Каждый документ 1С в MS SQL-сервере является таблицей с именем вида dbo._Reference<n>, где <n> - число – уникальный номер таблицы в БД, например, dbo._Reference33;

  1. Каждая таблица имеет обязательные поля:

  • _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);"

  1. обычное поле имеет имя вида _Fld<n>, где <n> - уникальный порядковый номер поля в 1С, например, _Fld21

  2. ссылочное поле имеет имя вида _Fld<n>RRef, где <n> - уникальный порядковый номер поля в 1С, например, _Fld20RRef и содержит двоичный 16-байтный идентификатор записи, при этом в самой таблице никак не обозначено, на какую конкретно таблицу заведена ссылка (т.е. мета-данные о связях отсутствуют);

  3. Табличная часть справочника/документа представляет собой отдельную таблицу с именем вида dbo._Reference<n>_VT<m>, где <n> - уникальный номер основной таблицы, а <m> - табличной части (для иерархии табличных частей), например, dbo._Reference19_VT24;

  1. Поля табличной части:

  • _Reference<n>_IDRRefссылка на запись основной таблицы - двоичный 16-байтный идентификатор записи, где ,<n> - уникальный номер таблицы в БД;

  • _KeyField - внутренний двоичный 16-байтный идентификатор записи;

  • _LineNo<n> - поле N табличной части – последовательный номер для каждой группы записей, где <n> - уникальный номер поля;

  • для обычных полей и ссылок – те же соглашения, что и для основной таблицы

Структура справочника «Мета данные Android» в 1c

Поскольку мета-данные описания справочников и документов 1С не хранятся в таблицах MS SQL-сервера (похоже, находятся в dbo.DBSchema в виде двоичного сериализованного поля), то необходим справочник метаданных клиента (Мета данные Android). В него необходимо занести внутренние имена таблиц (справочников и документов) и их полей, которые используются клиентом. Табличные части документов и справочников оформляются в виде отдельных записей. Заполнение производится разработчиком. При изменении конфигурации, связанном с удалением и повторным созданием справочников и документов, необходимо отредактировать имена таблиц (поле Наименование) и имена полей (поле Field Name). При этом в справочнике метаданных не допускается изменение порядка следования имеющихся полей (поле код для имени таблицы и поле N для имени поля), т.к. клиент извлекает данные из справочника по возрастанию идентификационных кодов, а не по оригинальным именам полей.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]