Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема SubList\SubList_Number.... (число прочтений - 4241 )
Zealot
1c++ donor
Отсутствует


Будьте профессионалами!

Сообщений: 180
Местоположение: KIEV
Зарегистрирован: 17. Сентября 2007
Пол: Мужской
SubList\SubList_Number....
08. Декабря 2007 :: 23:09
Печать  
Может кто знает как выудить вот код (мКодФормыСписка) формы списка привязанного к конкретному справочнику, документу и т.д.

SubList\SubList_Number[мКодФормыСписка]\WorkBook\Dialog Stream

Вручную соспоставлять блин долгая процедура, к соженению по разным стримредакторам очень долго искать и сопоставлять, хотелось перебором например как:

Для мИндекс = 1 По Метаданные.Справочник() Цикл                        
мКодФормыСписка = ТРАЛИВАЛИПРОЦЕДУРАИЛИССЫЛКА!
мОбКомпонентаCompound.Stream2file(КаталогИБ()+"\1Cv7.MD", СокрЛП(Шаблон("SubList\SubList_Number[СокрЛП(мКодФормыСписка)]\WorkBook\Dialog Stream")), КаталогИБ()+"temp\1cv7.md.tmp", 0);
....

Заранее благодарен!

Добавлю:

Вот сдесь все ОК потому что ID метаданных соответсвует и тута все работает:

1) мОбКомпонентаCompound.Stream2file(КаталогИБ()+"\1Cv7.MD", СокрЛП(Шаблон("Subconto\Subconto_Number[СокрЛП(мКодСправочника)]\WorkBook\Dialog Stream")), КаталогИБ()+"temp\1cv7.md.tmp", 0);

2) мОбКомпонентаCompound.Stream2file(КаталогИБ()+"\1Cv7.MD", СокрЛП(Шаблон("SubFolder\SubFolder_Number[СокрЛП(мКодСправочника)]\WorkBook\Dialog Stream")), КаталогИБ()+"temp\1cv7.md.tmp", 0);

А вот формы списка не понимаю как нумеруются и где лежат их связи!
  

Старание и труд все перетрут.
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: SubList\SubList_Number....
Ответ #1 - 08. Декабря 2007 :: 23:55
Печать  
Три часа ночи. И это был не я, а моя тень  Смех

P.S. В старых добрых сказках всегда говорили - "утро вечера мудренее". Не спеши...
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: SubList\SubList_Number....
Ответ #2 - 10. Декабря 2007 :: 05:39
Печать  
Не понял Печаль. Ты хочешь получить текст модуля по названию метаданных?
  
Наверх
ICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: SubList\SubList_Number....
Ответ #3 - 10. Декабря 2007 :: 11:08
Печать  
Ну, во-первых, у одного справочника форм списка может быть несколько (собсна именно поэтому у них есть свой идентификатор). Так что код перебора должен быть примерно такой:
Код
Выбрать все
Для мСпр = 1 По Метаданные.Справочник() Цикл
    Для мСпрСписок = 1 По Метаданные.Справочник(мСпр).ФормаСписка()
	  // вот тут как-то надо получить идентификатор формы списка, примерно так же, как ты делаешь для мКодСправочника
    КонецЦикла;
КонецЦикла; 



Во-вторых, соответствие названия объекта метаданных и его идентификатора хранится в 1cv7.md\Metadata\Main Metadata Stream
Подробнее тут: http://1c.alterplast.ru/1cv7md/index.html
и еще немного вот тут: http://1c.alterplast.ru/gcomp/index.html

Ну и традиционный вопрос: а нафига все это, может твою задачу можно решить другим способом, попроще?
  
Наверх
www  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: SubList\SubList_Number....
Ответ #4 - 10. Декабря 2007 :: 11:12
Печать  
+1
Учитывая что ТекстМодуля можно получить через Формекс.
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: SubList\SubList_Number....
Ответ #5 - 10. Декабря 2007 :: 14:18
Печать  
Zealot

Можно посмотреть, как сделана загрузка текста классов из MD:

1cpp
ModuleString.cpp
CModuleString::LoadModuleFromMD
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Zealot
1c++ donor
Отсутствует


Будьте профессионалами!

Сообщений: 180
Местоположение: KIEV
Зарегистрирован: 17. Сентября 2007
Пол: Мужской
Re: SubList\SubList_Number....
Ответ #6 - 11. Декабря 2007 :: 12:31
Печать  
САМОЕ ПРОСТОЕ РЕШЕНИЕ!

мОбActiveMD =СоздатьОбъект("ActiveMD.MDFile");
     мОбActiveMD.Открыть(КаталогИБ()+"1cv7.md", "");
     Для мИндекс_1 = 1 По Метаданные.Справочник() Цикл
           мИдентификаторСправочника = Метаданные.Справочник(мИндекс_1).Идентификатор;
           мСправочникСсылка = мОбActiveMD.Справочник(мИдентификаторСправочника);
           Для мИндекс_2 = 1 По Метаданные.Справочник(мИндекс_1).ФормаСписка() Цикл
                 мИдентификаторФормы = Метаданные.Справочник(мИндекс_1).ФормаСписка(мИндекс_2).Идентификатор;                  
                 Сообщить(мСправочникСсылка.ФормаСписка(мИдентификаторФормы).ID);
           КонецЦикла;
     КонецЦикла;

Да тут я вижу многие умничали насчет того нафига такое надо!
Ответ простой: надо!  Смех  На  самом деле создаю (описываю) структуры метаданных для управления ею из под предприятия, вкратце
"Справочник.СистемаСправочники"
"Справочник.СистемаСправочникиЗакладки"
"Справочник.СистемаСправочникиРеквизиты"
"Справочник.СистемаСправочникиПечатныеФормы"
"Справочник.СистемаСправочникиВизуальныеФормы"

П.С. Кто умный поймет выгоду  Подмигивание
  

Старание и труд все перетрут.
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: SubList\SubList_Number....
Ответ #7 - 11. Декабря 2007 :: 12:37
Печать  
Я не умный.
Да и неинтересно теперь стало.
  
Наверх
 
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: SubList\SubList_Number....
Ответ #8 - 11. Декабря 2007 :: 13:37
Печать  
gcomp -d
потом смотрим в src\объектыМетаданных.txt
  
Наверх
www  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать