Как вытащить SQL идентификаторы реквизитов..

Форум 1С: Одинэс.Ру

Найти!

Как вытащить SQL идентификаторы реквизитов..

Antiblo
28.04.2009 - 05:58
Наверняка уже сталкивались..
Необходимо получить таблицу SQL идентификаторов реквизитов спраовчников.
т.е. наименования полей (sp..) в таблицах (sc..)
Из файла DDS вытащить можно, но когда наименование реквизита большое, то оно не помещается в формате DDS полностью и возникает неопределенность для похожих реквизитов. Есть идеи?
К списку тем 1 > К списку форумов

Интересные темы

odines.ru
28.10.2020 - 08:04
Смотри также:
УРБД - если накроется база, то как быть ?
ВводНаОсновании программно
На какой конфе 7.7. можно вести несколько предприятий?

Re: Как вытащить SQL идентификаторы реквизитов..

Antiblo
1 - 28.04.2009 - 06:00
Вдогонку.. В компании у меня 1СPP юзать запрещено..и вообще все ВК! :(

Re: Как вытащить SQL идентификаторы реквизитов..

Друзья зовут меня Курулай
2 - 28.04.2009 - 06:03
интересно, насколько большое должно быть название реквизита, чтобы не помещаться в файле DDS ?

Re: Как вытащить SQL идентификаторы реквизитов..

Друзья зовут меня Курулай
3 - 28.04.2009 - 06:06
Вдогонку: чтобы ответить тебе более конкретно, хотелось бы взглянуть хотя бы на одну пару похожих реквизитов, по которым "возникает неопределенность".
приведи, пожалуйста, имена двух похожих реквизитов (вместе с именами документов)

Re: Как вытащить SQL идентификаторы реквизитов..

Antiblo
4 - 28.04.2009 - 06:08
ДокументВводаВЭксплуатациюДата
ДокументВводаВЭксплуатациюНомер
 
Вот. Хотя бы эти.. Но их гораздо больше..

Re: Как вытащить SQL идентификаторы реквизитов..

Друзья зовут меня Курулай
5 - 28.04.2009 - 06:14
(4) нарушаешь правила нормализации.
вместо этих двух реквизитов сделай реквизит ДокументВводаВЭксплуатацию.
В нём храни ссылку на документ. И нет проблемы.

Интересные темы

odines.ru
28.10.2020 - 08:04
Смотри также:
реквизит типа "Документ"
Как настроить два ключа на одну компоненту.
Подскажите по последовательности в комплексной

Re: Как вытащить SQL идентификаторы реквизитов..

Antiblo
6 - 28.04.2009 - 06:22
Курулай, вопрос же не в этом. И ничего я не нарушаю - так исторически до меня сложилось..

Re: Как вытащить SQL идентификаторы реквизитов..

iogri
7 - 28.04.2009 - 07:22
2(1)
Странный запрет. Использовать ВК нельзя, а напрямую лезть в таблицы SQL - можно.
А почему нельзя-то? Если пользователи не являются локальными администраторам, то это легко обходится, например при помощи vkloader.

Re: Как вытащить SQL идентификаторы реквизитов..

iogri
8 - 28.04.2009 - 07:38
2(0)
В DDS реквизиты справочника идут в том же порядке, что и в дереве конфигурации, и в метаданных.

Re: Как вытащить SQL идентификаторы реквизитов..

Reaper
9 - 28.04.2009 - 07:42
1-Antiblo > Ну и делай как положено! ВК были сделаны только для облегчения работы кодеров, а УЦ 1С преподавали правильное программирование 1С для SQL без всяких ВК. Иди в гугл, ищи описание инстерфейса ADO и флаг тебе в руки.
 
А по поводу соответствия - возьми MD, сделай читую базу, не учетную, и на ней кувыркнись с 1CPP, сформируй себе в табличку с соответствиями и живи с ней.

Re: Как вытащить SQL идентификаторы реквизитов..

Antiblo
10 - 28.04.2009 - 07:50
(8) Это хорошо.. тогда неопределенность снимается.. ОК. спасибо за совет!

Re: Как вытащить SQL идентификаторы реквизитов..

Antiblo
11 - 28.04.2009 - 07:51
(9) табличка должна формироваться на лету в живой базе..
 

Re: Как вытащить SQL идентификаторы реквизитов..

Друзья зовут меня Курулай
12 - 28.04.2009 - 07:55
(8) iogri
уважаемый, восхищён Вами. Вы опять нашли изящное штатное решение.

Re: Как вытащить SQL идентификаторы реквизитов..

iogri
13 - 28.04.2009 - 07:56
2(12)
(весь в смущении)

Re: Как вытащить SQL идентификаторы реквизитов..

FAM
14 - 28.04.2009 - 08:40
(11) Вот зачем такими вещами заниматься "на лету в живой базе"? У тебя что, структура метаданных тоже "на лету в живой базе" меняется?
Опять же непонятен принцип невозможности использования ВК... Кто это запретил? А если этому кому-то показать время выполнения стандартного отчета 1С и с использованием прямых запросов и посчитать сколько денег экономится за год только на ожидании пока сформируется отчет.
Даже если все-таки нельзя всем использовать 1С++, поставь ее себе и после обновления конфы запускай 1С, а при старте пропиши отслеживание даты МД-ника и запуск соответствующих процедур по заполнению нужных таблиц соответствий.
З.Ы. иногда проще сделать вьюхи по нужным таблицам

Re: Как вытащить SQL идентификаторы реквизитов..

di1978
15 - 28.04.2009 - 08:53
а как же v7plus.dll, тоже ведь ВК ?

Re: Как вытащить SQL идентификаторы реквизитов..

FAM
16 - 28.04.2009 - 09:02
(15) она подходит, так как фирмой 1С написана :)

Re: Как вытащить SQL идентификаторы реквизитов..

Друзья зовут меня Курулай
17 - 28.04.2009 - 09:24
(15,16) покурите (8). Никакие ВК не нужны, задача решается обычным штатным методом (обходом структуры метаданных документа).

Re: Как вытащить SQL идентификаторы реквизитов..

Uho
18 - 28.04.2009 - 09:39
17-Друзья зовут меня Курулай >
+1
 
некоторым чуть что - сразу ВК

Re: Как вытащить SQL идентификаторы реквизитов..

Antiblo
19 - 28.04.2009 - 09:45
(8) к сожалению, порядок в DDS и в дереве метаданных может отличаться..

Re: Как вытащить SQL идентификаторы реквизитов..

Antiblo
20 - 28.04.2009 - 09:49
(14) Не то чтобы на лету.. Просто хочется написать и забыть. Чтобы при любом изменении МД таблица обновлялась сама, а не отслеживать ее изменения.
может быть и вьюхи..
(17) Курулай после перекура должен сам попробовать штатным методом решить задачу.

Re: Как вытащить SQL идентификаторы реквизитов..

iogri
21 - 28.04.2009 - 10:06
2(19)
Сорри. Действительно, есть контрпримеры. Попробую понять логику - ведь программа как-то разбирается, что чему соответствует...

Re: Как вытащить SQL идентификаторы реквизитов..

Друзья зовут меня Курулай
22 - 28.04.2009 - 10:07
(20) я решу, без проблем.
вот тебе подсказка на тот случай, если автор, проектировавший твою конфигу, настолько "креативный", что напихал в один документ кучу реквизитов, у которых в имени совпадают первые 17 символов (это ещё надо умудриться так напроектировать, за такое надо ему руки оторвать и в зад засунуть, там им самое место).
 
Итак, внимание, подсказка: у реквизита есть тип.

Re: Как вытащить SQL идентификаторы реквизитов..

Antiblo
23 - 28.04.2009 - 10:15
О, Богоподобный Курулай! Не смог к несчастью целый штат программистов обойтись без длинных реквизитов - не удосужились они в DDS заглянуть. И, даже (грех-то какой), некоторые типы совпадают у этих кривых реквизитов.

Re: Как вытащить SQL идентификаторы реквизитов..

Antiblo
24 - 28.04.2009 - 10:17
(21) вот знать бы, где она достает это соответствие..

Re: Как вытащить SQL идентификаторы реквизитов..

Друзья зовут меня Курулай
25 - 28.04.2009 - 10:24
(24) соответствие хранится в MD
открой MD в каком-нить текстовом редакторе (или в ворде) и набери в поиске имя реквизита.

Re: Как вытащить SQL идентификаторы реквизитов..

iogri
26 - 28.04.2009 - 10:30
Похоже, логика следующая:
1. Периодическиех реквизитов, естественно, в разделе "справочники" DDS нет, а вот как они описаны, я не нашел :(
2. Для реквизитов неопределенного типа заводится два поля - для указания значения реквизита и его типа
3. Реквизиты типа "строка неопределенной длины" ставятся на последнее место (видимо, в порядке следования, но это надо проверять)
Но, честно говоря, не уверен, что нет еще каких-то нюансов

Re: Как вытащить SQL идентификаторы реквизитов..

Uho
27 - 28.04.2009 - 10:39
26-iogri > Периодическиех реквизитов, естественно, в разделе "справочники" DDS нет, а вот как они описаны, я не нашел :(
там же, где и константы

Re: Как вытащить SQL идентификаторы реквизитов..

Друзья зовут меня Курулай
28 - 28.04.2009 - 10:41
(26,27) соответствия лежат в MD, оттуда их либо как-то программно выковыривать, либо использовать ВК (которая, в принципе, сделает то же самое)

Re: Как вытащить SQL идентификаторы реквизитов..

Uho
29 - 28.04.2009 - 10:43
+(27) "описаны" прочитал как "хранятся" )))
К списку тем 1 > К списку форумов
Тема закрыта и находится в архиве.
Но Вы можете начать новую тему.
« Как правельно выбрать элементы Объединение баз »
© 2009 Форум 1С: Одинэс.Ру