Как получить Id реквизита справочника (fieldid) ?
глМД = СоздатьОбъект("MetaDataWork");
ИДЮрАдрес = Прав(_IDToStr(глМД.ИДРеквизитаСправочника("ЮрЛица","ЮрАдрес")),4);
В таблицах 1SBLOB и 1SCONST есть поле blockno – длинные строки разбиваются на строки одинаковой длины и в этом поле пишется номер блока. Первые 9 символов нулевого блока задают длину строки.
1SBLOB
fieldid - ИДЮрАдрес
objid - id справочника ЮрЛица
blockno - номер блока
Отдельным запросом получается ТЗ длинных наименований, при печати извлекается из нее.
P.S>
Т.к. 95% полей у меня длины меньше 130 символов, то в базовый запрос добавляю 2 поля (блока)
Цитата:| SELECT
| СпрЮрЛица.id as [Объект_ЮрЛицо $Справочник.ЮрЛица]
| ,TabЮрАдрес0.Block as ЮрАдресБлок1
| ,TabЮрАдрес1.Block as ЮрАдресБлок2
//... другие поля
| FROM
| $Справочник.ЮрЛица as СпрЮрЛица
| LEFT JOIN 1SBLOB as TabЮрАдрес0 ON рЛица.id+' 0'
| LEFT JOIN 1SBLOB as TabЮрАдрес1 ON рЛица.id+' 1'
(здесь соединение по индексу)
При печати , если длина больше - извлекаю стандартныс способом 1С (1С использует индекс, тоже достаточно быстро)