Имя: Пароль:
1C
1C 7.7
v7: Как получить структуру хранения базы данных в 7.7
0 breezee
 
20.07.18
09:07
Коллеги, добрый день!
Собственно, Как получить структуру хранения базы данных в 7.7?
1 breezee
 
20.07.18
09:08
Надо составить скульный запрос к базе
2 Волшебник
 
20.07.18
09:08
файл dd
3 breezee
 
20.07.18
09:09
(2) dds?
4 1Сергей
 
20.07.18
09:10
в конфигураторе есть такой пункт меню
5 breezee
 
20.07.18
09:12
(4) Нашел  только "Параметры базы данных SQL". Мне бы названия таблиц
6 1Сергей
 
20.07.18
09:15
(5) Конфигурация - Описание структуры метаданных

Но, оно тебе не поможет
7 Эльниньо
 
20.07.18
09:43
(5) Распечатай dd (dds) и сделай его настольной книгой. На ночь почитывай
8 Карст
 
20.07.18
09:57
(0) общая структура
http://www.script-coding.com/v77tables.html
9 bolder
 
20.07.18
10:21
(8) Спасибо,хорошая статья.
10 breezee
 
20.07.18
10:29
(8) А частную как вытянуть? Для 8 есть метод "ПолучитьСтруктуруХраненияБазыДанных()" а для 7.7 есть аналог?
11 s03
 
20.07.18
10:30
(10) распарсить dd(s)
12 1Сергей
 
20.07.18
10:32
(7) в этих файлах имена обрезаны
13 Карст
 
20.07.18
10:32
(11) + угу совместно с методом метаданные. ибо в dds не всё ...
14 1Сергей
 
20.07.18
10:34
Есть утилиты, которые выводят Main MetaData Stream из md
15 uno-group
 
20.07.18
10:48
Только через ВК
16 Cthulhu
 
20.07.18
11:25
(15): нет.
17 Карст
 
20.07.18
11:57
Gcomp еще как бэээ
18 Злопчинский
 
20.07.18
16:32
ну, можно тупо языком программирования например через
Метаданные.Справочник() = вытащить инфу по всем справочникам. вних - по всем реквизитам.. и по документам и прочее
19 Карст
 
20.07.18
16:36
(18) встречал поделки из серии внешнего отчета - описание структуры базы данных - выводит в виде отчетов
20 uno-group
 
20.07.18
16:38
(18) В 4 автор названия таблиц спрашивает.
21 uno-group
 
20.07.18
16:39
(0) А тебе зачем? Может тебе что то другое нужно
22 Djelf
 
20.07.18
17:48
(0) Парсер 1Cv7.dd и 1Cv7.dds http://catalog.mista.ru/public/15302/
Внутренние данные 1С, можно получить из метаданных, сравнивая реквизиты по номеру т.к. их порядок будет соответствовать.
23 Cthulhu
 
20.07.18
18:22
(20): ичо.
тТхт=ЗначениеВСтрокуВнутр(тЭлемент);
тСЗ=СоздатьОбъект("СписокЗначений");
тСЗ.ИзСтрокиСРазделителями(Сред(Лев(тТхт,СтрДлина(тТхт)-1),2));
тТхт=тСЗ.ПолучитьЗначение(тСЗ.РазмерСписка());
тТхт=СокрЛП(Лев(тТхт,10));
Сообщить("Справочник """+тЭлемент.Вид()+""" лежит в (DBF+CDX)файлах (ну или в sql-таблице) с именем SC"+тТхт+"... чонеясно?","i");
24 big
 
20.07.18
19:43
И все-таки - м.б. использовать 1срр?  Или нужен полный хардкор? ))
25 Djelf
 
20.07.18
19:48
(24) А это от заказчика зависит.
Некоторые 1с++ не используют и не хотят.

И вообще не понятно что (0) хотел.
Может ему вообще в 7ку залезать не надо...
Типа этого: http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=550323&msg=5590201
26 Cthulhu
 
20.07.18
20:42
(24): т.е. встроенный язык - это хардкор, а вк (для того же самого) - это не хардкор?..
хмм, ясно-понятно...
27 Эльниньо
 
31.07.18
18:49
Дабы не плодить ветки, суну сюда

    ТекстЗапроса = "
    |SELECT Row_Id,ObjId,Id,Date,DocId
    |FROM
    |    _1sconst
    |WHERE ObjId<>'     0   ' and DocId='     0   '";
    ТЗ = RS.ВыполнитьИнструкцию(ТекстЗапроса);
    ТЗ.НоваяКолонка("Спр",,,,, 12);
    ТЗ.НоваяКолонка("Объект");
    Форма.Обновить();
    
    Т.ВыбратьСтроки();
    Пока Т.ПолучитьСтроку() = 1 Цикл
        Т.Объект = МетаДатаВорк.ЗначениеИзСтрокиБД(11, Т.Id, Т.ObjId);
        Т.Спр = ???(Т.Id);
    КонецЦикла;

Как мне в Т.Спр получить идентификатор справочника
28 Эльниньо
 
01.08.18
13:20
Вопрос снят
29 Злопчинский
 
01.08.18
13:21
(28) типа ну и хрен с ним или сам решил? если сам - то незачот! пиши ответ
30 Эльниньо
 
01.08.18
13:28
(29) Сам решил.
Сначала:

    Для х = 1 По Метаданные.Справочник() Цикл
        Для у = 1 По Метаданные.Справочник(х).Реквизит() Цикл
            Если Метаданные.Справочник(х).Реквизит(у).Периодический = 1 Тогда
                Тр.НоваяСтрока();
                Тр.Спр = Метаданные.Справочник(х).Идентификатор;
                Тр.Рекв = Метаданные.Справочник(х).Реквизит(у).Идентификатор;
                Тр.АйДи = МетаДатаВорк.ИДРеквизитаСправочника(х, у);
            КонецЕсли;
        КонецЦикла;
    КонецЦикла;

потом:

    Т.ВыбратьСтроки();
    Пока Т.ПолучитьСтроку() = 1 Цикл
        Состояние("Обработка " + Т.НомерСтроки + "/" + Т.КоличествоСтрок());
        Т.Объект = МетаДатаВорк.ЗначениеИзСтрокиБД(11, Т.Id, Т.ObjId);
        с = 0;
        Тр.НайтиЗначение(Т.Id, с, "АйДи");
        Если с > 0 Тогда
            Т.Спр = Тр.ПолучитьЗначение(с, "Спр");
            Т.Рекв = Тр.ПолучитьЗначение(с, "Рекв");
        КонецЕсли;
    КонецЦикла;
31 Эльниньо
 
01.08.18
13:33
Тут поинтереснее нарисовалось.
Похоже, что делали Спр.Удалить(1) и в этом случае периодические значения не удаляются из _1sconst
Много строк, где

Т.Объект = МетаДатаВорк.ЗначениеИзСтрокиБД(11, Т.Id, Т.ObjId);

выдает <Объект не найден>