![]() |
![]() |
![]() |
|
Реализация физического хранения периодических реквизитов | ☑ | ||
---|---|---|---|---|
0
Udjin
09.12.03
✎
10:30
|
All, поделителитесь, плиз...
Как реализовано физическое хранение периодических реквизитов в 1С 7.7 SQL версии? |
|||
1
Udjin
09.12.03
✎
11:52
|
К примеру связываем таблицу справочника с таблицей _1SCONST по справочник_ID = _1SCONST.OBJID, а само определение какой реквизит какому _1SCONST.ID принадлежит можно произвести только опытным путем?
|
|||
2
skunk
09.12.03
✎
12:11
|
Еслия правильно понял вопрос, то смотри в таблице справочника поле ID нужного элемента. а затем отбираешь все записи таблици 1SCONST с полем OBJID равный полученному ID.
|
|||
3
Udjin
09.12.03
✎
12:47
|
это понятно :)
Не понятно вот что: к примеру в справочнике_А есть периодический реквизит "Подразделение", опытным путем я определила, что для "Подразделениz" _1SCONST.ID=5895, где соответсвенно _1SCONST.OBJID=справочник_А_ID. У справочника_А есть еще 15 периодических реквизитов, определить все их _1SCONST.ID опытным путем можно, но может есть другой путь. Вот он как раз и интересует. |
|||
4
skunk
09.12.03
✎
13:37
|
открываешь md и задаешь поиск строки параметром поиска указываешь искомый переодический реквизит.
Пример в ТиС ищем курс валюты. Задаем поиск - ,"Валюты", ," - указывается для уменьшения ложных срабатываний, а то там валют сам понимаешь. Должен найти следующие: {"14","Валюты","","","0","3","1","1","1","10","1","2","1","19","19","0","1","1", {"Params", {"17","Курс","","","N","10","4","0","1","1","1","1","0","0","1","0","0"} Перед нужным реквизитом стоит цифра в кавычках это и есть идентификатор реквизита в БД. То бишь для нас это 17. Далее переводишь ее 36-ую систему счисления, используя цифры 0..9 и латинские буквы A..Z. Получаешь "E". При отборе 1SCONST смотришь в нем поле ID и отбираешь с нужным тебе реквизитом. |
|||
5
skunk
09.12.03
✎
13:40
|
В скуле не знаю как сделать, но выылить базу в md всегда можно
|
|||
6
Udjin
09.12.03
✎
15:29
|
Спасибо, skunk!
Думаю примерно этом мне и надо. Жаль, что все равно автоматически это никак не увязать... Нужна работа ручками, нужна... |
|||
7
skunk
09.12.03
✎
15:34
|
Почему есть проги котрые смотрят md. У меня есть пару сылок на эту имфу, волшебник подсказал, смотри тему Формат файла внешних отчетов.
Так что терпение и труд все перетрут. Удачного поиска! |
|||
8
Udjin
09.12.03
✎
16:30
|
to skunk:
Еще раз спасибо, тоже полезная инфа! Жаль что поиска по форуму нет :( |
|||
9
Волшебник
09.12.03
✎
19:53
|
(8) услышал, воспринял. Как немного освобожусь, займусь поиском.
|
|||
10
Udjin
10.12.03
✎
12:09
|
(9)
Будем ждать с нетерпением! |
|||
11
skunk
15.12.03
✎
03:58
|
(10)Возвращаясь к теме. Сейчас могу сказать как это сделать программно.
|
|||
12
Udjin
15.12.03
✎
11:58
|
(11) Что для этого нужно, чтобы Вы сказали?
|
|||
13
skunk
15.12.03
✎
12:14
|
Да в принципе ничего. Если со внешними компонентами проблем нет, тогда ищите в интернете библиотеки ActiveMD.dll и Compound.dll и их используйте. По моему первая будет получше, больше возможностей.
У меня есть ActiveMD 0.4.1.00 и Compound.dll 4.5. Если надо могу скинуть мылом. |
|||
14
Udjin
15.12.03
✎
15:59
|
с ActiveMD.dll разбираюсь, но пока как-то не очень успешно.
|
|||
15
skunk
15.12.03
✎
16:55
|
В чем проблема, сразу бы писанула
|
|||
16
Udjin
15.12.03
✎
18:41
|
Пробная работа с ActiveMD.
В 1С окрываю файл Конфигуратор.ert. Там все поля пустые, пробую указать в поле "путь" путь к 1Cv7.md - выдается ошибка: "М.Д.Идентификатор=Идентификатор; {путь к файлу конфигуратор.ERT(186): неизвестное имя". Другие .ert файлы не открываются, ошибка: "... Значение не представляет агрегатный объект (...)" |
|||
17
skunk
15.12.03
✎
20:10
|
А ты его dll в системе за регистрировал.
|
|||
18
Udjin
15.12.03
✎
20:11
|
да
|
|||
19
skunk
15.12.03
✎
20:29
|
Покажи текст обработки
|
|||
20
skunk
15.12.03
✎
21:05
|
регистриовать COM сервер надо командой
regsrv32 <полный путь до dll>\ActivateMD.dll винда скажет там чего то success! Проверка в реестре есть ключ HKEY_CLASSES_ROOT\ActiveMD.MDFile Дальше 1С. Пример получение всех справочников плюс все атрибуты справочников, их ID в десятичной и шестнадцатиричной представлении: //******************************************* Процедура Сформировать() MD = СоздатьОбъект("ActiveMD.MDFile"); MD.Open("c:\test\trade 2003\1cv7.md"); Для x = 1 По MD.Reference() Цикл Spr = MD.Reference(x); Сообщить(Spr.Identifier); Для y = 1 По Spr.Attribute() Цикл Attr = Spr.Attribute(y); Сообщить(" " + Attr.Identifier + "; Десятичное представление:" + Attr.ID + "; Тридцатишестиричное представление:" + _IdToStr(Attr.ID)); КонецЦикла КонецЦикла; MD.Close(); КонецПроцедуры Все ок. |
|||
21
Udjin
16.12.03
✎
10:01
|
Спасибо, skunk, очередной раз выручаешь!
При регистрации dll я не указывала полный путь до нее :) После того как указала, все стало на свои места. |
|||
22
skunk
16.12.03
✎
10:58
|
Я первый раз вижу женщину программистку, которая знает, то что я незнаю. Виват! Удачи тебе в нашем не легком труде.
|
|||
23
Udjin
16.12.03
✎
11:50
|
к ветке по теме: "OFF: Счастье":
Счастье - это когда skunk ТАК ВОТ отвечает и желает удачи :) P.S. Пишу здесь, потому как там боюсь, могут не понять... |
|||
24
skunk
16.12.03
✎
16:38
|
А ты думаешь я один сюда заглядываю, не думаю, что мы в троем накрутили 263 просмотра.
P.S. А на самом деле я ужасно злой и страшный тип. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |