#0
by Zhuravlik
Добрый день. Понадобилось выбрать данные из _1S.CONST, вот читаю про ее структуру, не могу понять: OBJID - ID объекта периодического реквизита (справочника) или периодической константы, для непериодических констант это поле равно ‘ 0 ’. Тип - Строка. Т.е. поле "OBJID" - это элемент, которому принадлежит установленное значение периодического реквизита? ------- ID - ID (идентификатор) константы или периодического реквизита справочника. Тип представлен в виде десятичного числа (_StrToID). Тип - Число(int). Это вид объекта? Что значит "идентификатор периодического реквизита справочника", если это ссылка на значение пер. реквизита, то зачем это нужно, он ведь уже сохранен в VALUE (Значение константы или периодического реквизита. Для неопределенных типов по умолчанию заполняется «U». Тип- Строка.)?
#7
by Zhuravlik
Т.е. это его "Вид"? Я так подумал сначала (делал запрос выводил все поля, там строки длиной 4 символа), но отбор с фильтром по виду этого поля вернул пустую таблицу, а значения точно есть.
#8
by Zhuravlik
Подскажите пожалуйста, так и не разобрался что такое ID. В написано "идентификатор периодического реквизита (идентификатор метаданных)", но я не понимаю как по нему условие делать в запросе. Есть элемент справочника "Тест", у него периодический реквизит "пРеквизит". Я так понимаю что ID - это ссылка на "пРеквизит". Но как по нему поставить условие? Вот мне надо выбрать из таблицы констант значения для определенного реквизита. Я пишу: SELECT Константы.value as [Значение] FROM [_1S.CONST] as Константы WHERE Константы.OBJID = :Тест AND Условие "Константы.ID = 'пРеквизит'" - неправильное, просто у меня задача сделать фильтр по нему, а как его в значение фильтра передать - не пойму. Там строка 4 символа...
#13
by viktor_vv
Это внутренний идентификатор реквизита в конфе, не значение которое там хранится. В 1С++ в metadatawork можно получить его значение ИДРеквизитаСправочника(<?>) Синтаксис: ИДРеквизитаСправочника(<НомИмяСпр>,<НомИмяРекв>) Назначение: возвращает внутренний номер реквизита справочника по его идентификатору или порядковому номеру. Возвращаемое значение: (Число) внутренний ид реквизита справочника. Параметры: <НомИмяСпр> - (строка/число) идентификатор справочника или порядковый номер определяется от 1 до Метаданные.Справочник; <НомИмяРекв> - (строка/число) идентификатор реквизита или порядковый номер определяется от 1 до Метаданные.Справочник(х).Реквизит;
#14
by viktor_vv
А чем вызвано такое удивление ? Или ЧСВ охота поднять, какой ты прогрессивный, и юзаешь восьмерку :).
#15
by Zhuravlik
Отличаю, я заведомо неправильно это написал, чтобы понятно было что я хочу. В запросе с условием на элемент справочника мне возвращается в поле ИД именно строка в 4 символа. Типа такого: " 4JR" А в самом запросе как-то можно на него указать? Наподобие :ВидСправочника.Тест ?
#18
by Zhuravlik
Попробовал, значения которое мне возвращает этот метод нет ни в одной ячейке id, в результате запроса с фильтром по элементу...
#19
by Zhuravlik
ркОдометр - число, более 4 символов. А в тз в поле ID именно 4-символьные строки, и там понятное дело такой фильтр не проходит. Искал примеры на 1С++, что-то не нашел ничего...
#21
by Zhuravlik
Я не понимаю( Почему тогда я в поле ИД вижу строку, а этот метод мне возвращает цифры?
#22
by viktor_vv
Че-то я не пойму, все нормально работает. В колонке | Константы.ID as ИДРек показывает число, котрое по сообщить выходит.
#24
by Zhuravlik
Это мои значения поля ID: 4JR 4JS 4K3 4K4 4KN 4KL HJ2 Q18 OF9 T4P XD9 Q18 4JR 4JS 4K0 4K3 4K4 4KN 4KL HJ2
#30
by Zhuravlik
Пробовал делать условие на Str2Id(Константа.ID) - тоже не проходит. Сейчас значит буду рыть как преобразовать число в 16-ричное и подставлю в запрос.
#38
by viktor_vv
Да так предположил, правда оно там и не 16 и не 36. Упс, точно :). Пытаюсь понять как же его там получить, но не совпадает.
#39
by Zhuravlik
Знаю. Расхлебываю потихоньку) А почему тогда мне Str2Id(Константа.ID) возвращает не то? Синтаксис: str2id(СтрИД) Параметры: СтрИД: Строка представляющая число в 36ричной записи Возвращает: Целое число. Описание: Преобразует строку - запись числа в 36ричном формате в целое число.
#43
by ADirks
ID: Прав(" "+МДВ.ЧислоВСтроку(МДВ.ИДОбъекта(Метаданные.Справочник("Сотрудники").Реквизит("Подразделение")), 36), 4)
#58
by viktor_vv
От жеж оказывается че оно Михалыч :) ${ИсторияРеквизита|PropertyHistory}.<Справочник>. <ПериодическийРеквизит> = ХХХХ
#61
by Zhuravlik
Спасибо! Вся проблема в невнимательном прочтении доки... ИсторияРеквизита / PropertyHistory Подстановка идентификатора указанного периодического реквизита справочника: :ИсторияРеквизита|PropertyHistory.ИмяСправочника.ИмяРеквизита[~] При нулевом модификаторе подставляется строка длиной 4 символа - идентификатор периодического реквизита в 36ричной записи При модификаторе 1 подставляется
#68
by viktor_vv
Так че-то не прокатило с "$" ТекстЗапроса = " |Select no such column: $ИсторияРеквизита.Поставщики.ДоГраницы тоже самое с ":" нормально отрабатывает.
#70
by Zhuravlik
Помогите еще?.. Теперь не могу протипизировать значение (VALUE). Тип реквизита в базе задан как "Справочник.Сотрудники". Возвращается из таблицы констант строка 23 символа. Я понимаю, что надо лефт-джойн, и доставать оттуда либо 13-сим, либо 9-сим, а какую таблицу подключать? Вроде это в SPххх хранится, а как к ней обратиться?
#72
by Zhuravlik
+ Типизация :Неопределенный ничего не дала, а получить оттуда substr(3, 12) - одни пробелы будут...
#73
by Mikeware
протипизируцй $Справочник связывать надо с таблицей SP, а дальге цифры полученные переводом из 36 вв 10 первызх 4 смимворов из 13? f
#74
by Zhuravlik
Я делал $Справочник, пустота, значение есть точно. Про SP - не найду как ее подключить?
#77
by Zhuravlik
Помогите мне разобраться с "кашей в голове"? - Вот описание: 9 символов – определен тип и вид объекта (например «Справочник.Клиенты»), в ID включается только порядковый номер в 36-ричной системе исчисления. Под порядковый номер отводятся первые 6 символов, последние 3 символа зарезервированы под код базы УРБД. 13 символов – определен только тип объекта, вид не задан (например «Справочник»). Первые 4 символа – идентификатор вида (как он задан в метаданных), последующие 9 символов – по аналогии с предыдущим пунктом. 23 символа – не определен тип и вид объекта. В таком случае в первых 2 символах хранится тип объекта (будет рассмотрен ниже), следующие 13 символов формируются аналогично предыдущему пункту. - Почему сказано, что 9 - определен тип и вид, 13 - определен вид, 23 - не определен тип и вид? Т.е. почему размер поля больше, а инфы в нем хранится меньше?
#78
by Mikeware
с точностю до наеборот: в видизированном и типизированном занчении (чар9) нам достаточно зранить только ид в типизированном - нам достаточно хранить вид и ид (чар4+чар9=чар13) в неопределенном мы вынужденв хранить и тип, и вид, и ид - получается, что онр чар23 - тип+вид+ид
#80
by Zhuravlik
Т.е. 2 символа в начале - это закодированная строка типа "Справочник"? И почему, если в 23 символах хранятся и тип и вид и ид, то я в константах на выходе получал 2 символа + Пробелы?
#81
by Zhuravlik
+ substr(Периодика.value,1,9) - значит именно в константах первые 9 символов это ИД? Или хранится как ИД+Вид+Тип?
#82
by Ёпрст
:))))))))) в value просто хранится значение реквизита, для строки - строка, для числа - число, для справочника - id (9 символов) для документа - iddoc, для справочника неопределенного вида - 13 , для неопределенного типа 23.. всё собственно.
#83
by viktor_vv
Ну это именно для поля Value в константах. Если у тебя реквизит определнного вида, то так и пишется. 9 символов – определен тип и вид объекта (например «Справочник.Клиенты») + "для периодического реквизита справочника", то в value пишется только ID с сначала.
#85
by viktor_vv
Два символа, это конкретный ID конкретного элемента справочника, максимум может быть девять символов, это если с РИБ.
#86
by viktor_vv
Можешь еще дернуть какую-нибудь запись из 1Scrdoc и посмотреть в поле Paretntval, как представляется реквизит неопределнного вида. Там все немного по другому.
#88
by Zhuravlik
Я его читал и перечитывал неоднократно в самых разных статьях. Если бы хоть в одной из них было написано как у вас в я бы не задавал этих вопросов...
#89
by Ёпрст
не, тут ты путаешь с доком, в константах, для скуля - это строка 255, для дбф - 23 (не помню только, разбивается она на блоки как в блобе или нет ?)
#91
by Mikeware
было написано. В многих. в доке к 1с++ написано, в описании структуры на метапрог или скрипткодинг - тоже...
#94
by Zhuravlik
Ясно) Только что слету написал три разных запроса к таблицам констант с разными условиями, без вашей помощи я бы так быстро всего этого не уразумел. Спасибо огромное за науку))
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- v7: v7 : НДС при возврате
- v7: Что нужно чтоб подключить ККМ Меркурий 112F к 1с V7 Торговля + склад
- v7: v7.7 премещение элемента справочника
- v7: Подскажите про корректировку dbeng32.dll
- v7: v8: v7: Кто-нибудь сумел скачать комплект отчетности за I квартал 2007 года
- v7: 1С V7.7 в сети
- v7: 1C:V7 starter program (for SQL) - обнаружена ошибка
- v7: Перенос данных Бухгалтерия из v7 в v8
- v7: v7 Перехват глобального события ПриЗаписи() или ОбработкаПроведения()
В этой группе 1С
- Не работает автомасштаб табличного документа
- УстановитьПривилегированныйРежим(Истина) не работает
- Как получить УИД Справочника через ком
- Внешние обработки прикрепленные к справочнику "Номенклатура" УТ 11
- ЗУП 82 Сумма, выплаченая договорнику не попадает в Т51
- не выполняется условие
- Ошибка при создании dbf (Перед выполнением операции нужно открыть базу)
- Бухгалтерия 2.0: добавленный счет не попадает в баланс. А должен ли?
- При проведении документа не выполняется обработка проведения
- v7: получить движения произвольного документа по регистрам
- Как программную лицензию сделать приоритетной
- (ЗУП) Как установить отбор при открытии списка документов? (ЗП к выплате)
- v8: Как отформатировать дату правильно?
- ЗУП: Пытаюсь изменить расчетный листок
- Комплексная автоматизация Аналитика Учета Затрат Ключи Аналитики Вида Учета
- Ошибка эквайринговой системы 4309
- УТ11. Не отгружается заказ клиента.
- v8: Нужна сквозная нумерация по двум базам (без префикса)
- v7: Передача даты и времени документа через COM из 1С 7.7 в 1С 8.2
- запрос к РС. измерение составного типа