![]() |
|
v7: получение справочника по ID, поправьте функцию | ☑ | ||
---|---|---|---|---|
0
Холст
16.01.12
✎
13:47
|
Функция ПолучитьОбъект(ИД, Вид)
тСпр = СоздатьОбъект("Справочник."+Вид); Сообщить(ЗначениеВСтрокуВнутр(тСпр)); СЗопора = ЗначениеИзСтрокиВнутр("{""VL"",{}}");//СЗ СЗопора.ИзСтрокиСРазделителями(ЗначениеВСтрокуВнутр(тСпр)); ИДтипа = СЗопора.ПолучитьЗначение(1); ИДвида = СЗопора.ПолучитьЗначение(4); Список = СоздатьОбъект("СписокЗначений"); Список.ДобавитьЗначение(ИДтипа); // тип Список.ДобавитьЗначение("0"); // длина Список.ДобавитьЗначение("0"); // точность Список.ДобавитьЗначение(ИДвида); // ИД вида объекта Список.ДобавитьЗначение("0"); // флаг неотр. (?) Список.ДобавитьЗначение("0"); // флаг разделения триад (?) Список.ДобавитьЗначение(СокрЛП(ИД)); // ИД объекта Зн = ЗначениеИзСтрокиВнутр("{"+Список.ВСтрокуСРазделителями()+"}"); Сообщить(СокрЛП(Зн)); Сообщить(Зн.Код); Возврат(Зн); КонецФункции //ПолучитьОбъет |
|||
1
Холст
16.01.12
✎
13:47
|
решение где то рядом, но чтото не дается
|
|||
2
Shaman100M
16.01.12
✎
13:51
|
Функция ПолучитьОбъектПоИД(ИД,ВидСпр)
ПустЗнач = ЗначениеВСтрокуВнутр(ПолучитьПустоеЗначение("Справочник." + ВидСпр)); Возврат ЗначениеИзСтрокиВнутр(Лев(ПустЗнач,СтрДлина(ПустЗнач) - 15)) + ИД + """}"; КонецФункции // |
|||
3
Ёпрст
гуру
16.01.12
✎
13:53
|
(0) в ИДтипа и ИДвида - у тебя мусор
|
|||
4
Shaman100M
16.01.12
✎
13:54
|
+ (2) скобочку, конечно же, в конец строки :
Возврат ЗначениеИзСтрокиВнутр(Лев(ПустЗнач,СтрДлина(ПустЗнач) - 15) + ИД + """}"); |
|||
5
Mikeware
16.01.12
✎
13:58
|
этта... а ид в 36-ричный вид преобразовывать ужо не надо? Ну и т.д.
|
|||
6
Ёпрст
гуру
16.01.12
✎
13:58
|
гораздо проще так:
мд.ЗначениеИзСтрокиБД |
|||
7
Mikeware
16.01.12
✎
14:03
|
(6) А вдруг у него 1с++ нет, и религия не позволяет..
|
|||
8
Rie
16.01.12
✎
14:05
|
Для полноты картины есть _StrToId и _IdToStr.
|
|||
9
Ёпрст
гуру
16.01.12
✎
14:07
|
(7) тогда не ясно, зачем ему вообще могут понадобится унутренние идентификаторы объектов.
|
|||
10
Shaman100M
16.01.12
✎
14:17
|
(5) в (0) про это не сказано, и, судя по коду, может и не надо. )) А так (8).
(9) ну, может, хранить где-нить ссылку на объект в текстовом виде, для синхронизации, например. |
|||
11
Mikeware
16.01.12
✎
14:40
|
(10) 1. Не сказано, но "классически" id подразумевается в 36-ричном виде
кроме того, в (8) нет указаний на ид базы создания. а он тоже входи в ид объекта. 2. Ну ведь как-то он должен ее получить.... |
|||
12
Холст
16.01.12
✎
15:04
|
Спасибо помогли,
ИД брался из файла обмена УРИБ, там ИД в виде "12043|PEC", поэтому код несколько изменился Функция ПолучитьОбъектПоИД(ИД,ВидСпр) сИД = СтрЗаменить(СокрЛП(ИД),"|",РазделительСтрок); резИД = Формат(СтрПолучитьСтроку(сИД,1),"С10")+СтрПолучитьСтроку(сИД,2); ПустЗнач = ЗначениеВСтрокуВнутр(ПолучитьПустоеЗначение("Справочник." + ВидСпр)); Зн = ЗначениеИзСтрокиВнутр(Лев(ПустЗнач,СтрДлина(ПустЗнач) - 15) + резИД + """}"); //Сообщить(СокрЛП(Зн)); //Сообщить(Зн.Код); Возврат Зн; КонецФункции |
|||
13
Холст
16.01.12
✎
15:06
|
на выходе это делается некий "просмотрщик" объектов, присланных по УРБД
|
|||
14
Mikeware
16.01.12
✎
15:07
|
(12)анапуркуа
сИД = СтрЗаменить(СокрЛП(ИД),"|",РазделительСтрок); резИД = Формат(СтрПолучитьСтроку(сИД,1),"С10")+СтрПолучитьСтроку(сИД,2) ?????????????? СтрЗаменить(СокрЛП(ИД),"|","") - не проще? |
|||
15
Ёпрст
гуру
16.01.12
✎
15:07
|
(12) на нимфостарте валяется готовая поделка пдля просмотра файлов уриба - что прилетело в файле обмена.
|
|||
16
Mikeware
16.01.12
✎
15:09
|
(13) таких "порсмотрщиков" если и не дофига, то с пяток будет....
месье - любитель велосипедов? |
|||
17
filh
16.01.12
✎
15:09
|
(13) есть готовая поделка, только не помню название.
|
|||
18
Холст
16.01.12
✎
15:11
|
(14) СтрЗаменить(СокрЛП(ИД),"|","") - не взлетело
(15) не нашел (( |
|||
19
Холст
16.01.12
✎
15:17
|
||||
20
dk
16.01.12
✎
15:25
|
делал такую фигню
но как-то попроще 1. создавал пустую ссылку через ПолучитьПустоеЗначение("Справочник.ххх"); 2. получал ЗначениеВстрокуВнутр(ПустаяСсылка); 3. подменял пустую ссылку на нужную и тут варианты - смотря в каком виде у тебя внутренний приходит варианты с отделением правых 3-х символов и преобразованием оставшейчся части через _StrToId или _IdToStr |
|||
21
Shaman100M
16.01.12
✎
15:30
|
(11) Видишь, все же не понадобилось. ;)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |