Имя: Пароль:
1C
1C 7.7
v7: Идентификатор документа
,
0 Irken_1
 
27.09.11
11:21
Подскажите плииз, мне надо выгружать документы из 77 в 8.2, загружаю в другой документ, не через правила конвертации, по какому признаку их идентифицировать? Я думала по повоу функции ЗначениеВСтроку(ТекДок)
Может кто знает что выкладывает в строку эта функция? у меня на приеме иднетификационное поле из 26 символов.
может кто подскажет как идентифицировать документ?
1 smaharbA
 
27.09.11
11:22
ЗначениеВСтрокуВнутр
2 Irken_1
 
27.09.11
11:24
я это тоже пробовала, но мне надо 26 символов.. у меня обрезается, я не совсем понимаю что выкладывается в эту строку через запятые :-(
3 ЧеловекДуши
 
27.09.11
11:25
ЗначениеВСтрокуВнутр - в 8-ке она не работает :)
4 smaharbA
 
27.09.11
11:25
(3) кто сказал ?
5 ЧеловекДуши
 
27.09.11
11:26
(4)И как она там называется?
6 smaharbA
 
27.09.11
11:26
(5) БазаОЛЕ.ЗначениеВСтрокуВнутр(ДокОЛЕ,Неопределено)
7 smaharbA
 
27.09.11
11:28
(2) для идентификации тебе достаточно последнее значение после последней запятой, а для уверенности еще и третье (но оно не обязательно)
8 smaharbA
 
27.09.11
11:32
+ (6) не поверишь

Глобальный контекст (Global context)
ЗначениеВСтрокуВнутр (ValueToStringInternal)
Синтаксис:

ЗначениеВСтрокуВнутр(<Значение>)
Параметры:

<Значение> (обязательный)

Тип: Произвольный. Преобразуемое значение.
Возвращаемое значение:

Тип: Строка. Системное представление значения в информационной базе.
Описание:

Получает системное строковое представление переданного значения.

Доступность:

Сервер, толстый клиент, внешнее соединение.
9 Irken_1
 
27.09.11
12:03
(3)мне в 8-ке не надо его разворачивать, мне нужен идентификатор этого документа.
(7)а сколько символов после последней запятой? мне бы типа IDDoc какой-нибудь получить
10 ЧеловекДуши
 
27.09.11
12:08
(9)А ты поиском пользоваться умеешь?
Так то лучше всего воспользоваться ВК 1С++, она это делает быстрее и проще.
11 ЧеловекДуши
 
27.09.11
12:08
(8)Хм, и что за структуру она запишет в строку?
12 smaharbA
 
27.09.11
13:21
(9)
Функция глПолучитьОбъектИД(Объект) Экспорт
// Функция получает ИД объекта
// Объект - объект метаданных
   Перем Сп,Стр;
   Сп=СоздатьОбъект("СписокЗначений");
   Сп.ДобавитьЗначение("",Объект);
   Сп.ПолучитьЗначение(1,Стр);
   Возврат Число(Стр);
КонецФункции    // глПолучитьИДОбъекта
13 Mikeware
 
27.09.11
13:27
14 Irken_1
 
27.09.11
13:34
Спасибо всем!
Не ругайте сильно, я ж бландинка :-)))))
15 Mikeware
 
27.09.11
13:43
(14) Плох тот чайник, который не мечтает стать самоваром :-)
16 Эльниньо
 
27.09.11
14:26
(12) Ошибка
17 smaharbA
 
27.09.11
14:58
(16) где ?
18 Эльниньо
 
27.09.11
15:08
(17) Извини - сходу не въехал. СЗ с панталыку сбил.
Пожалуй самый красивый способ получения ИД.
Твой креатив?
19 smaharbA
 
27.09.11
19:55
(18) нет, по сути (хотя и мой "креатив") это Рупоровский "СтрокаФормы"
20 Cthulhu
 
27.09.11
19:57
(19): а как получить "полный" Ид то?..
21 smaharbA
 
27.09.11
19:58
(20) никак без ид вида = вперед умытая Россия
22 smaharbA
 
27.09.11
19:59
3 + после
23 Cthulhu
 
27.09.11
20:02
// (21): А вот это:
тСЗ=СоздатьОбъект("СписокЗначений");
тТхт=ЗначениеВСтрокуВнутр(тОбъект);
тСЗ.ИзСтрокиСРазделителями(Сред(Лев(тТхт=,СтрДлина(тТхт=)-1),2));
тИд=тСЗ.ПолучитьЗначение(тСЗ.РазмерСписка());
// - полный. только, цyк0, медленно!..
24 smaharbA
 
27.09.11
20:03
и тз в том числе, но сз в среднем быстрее

Ну не ходи Иван Иваныч по врачам
25 Cthulhu
 
27.09.11
20:03
//блин, перекосило копипасту из более развернутой глобалки:
тСЗ=СоздатьОбъект("СписокЗначений"); тТхт=ЗначениеВСтрокуВнутр(тОбъект);
тСЗ.ИзСтрокиСРазделителями(Сред(Лев(тТхт,СтрДлина(тТхт)-1),2));
тИд=тСЗ.ПолучитьЗначение(тСЗ.РазмерСписка());
26 Cthulhu
 
27.09.11
20:04
(24): так все-таки. нет бістрого способа получения полного Ид (или Ид вида объекта)???
27 smaharbA
 
27.09.11
20:09
(26) есть
Функция ПолучаемИДЧегоУгодно(Об)
 СтрокаДействийФормы=Об;
 Возврат СтрокаДействийФормы;
КонецФункции
28 smaharbA
 
27.09.11
20:09
+ РупорАбсурда
29 Cthulhu
 
27.09.11
20:14
(27): чоооо???
это куда? и - если для этого форму открывать - так тормоза охренеть какие в вычислении...
или как?
30 smaharbA
 
27.09.11
20:14
пох
31 Cthulhu
 
27.09.11
20:15
(30): на (26) ответ "пох", я правильно понял?
32 smaharbA
 
27.09.11
20:19
да, абсолютно как и о пуле
33 Cthulhu
 
27.09.11
20:21
(32): т.е. нет ответа? или обиделся настолько за свою неправоту с пулей, что отвечать не бушь?
34 smaharbA
 
28.09.11
09:27
не обиделся, в несилах было вчера писать
35 Cthulhu
 
28.09.11
18:52
(34): а чичас?
36 smaharbA
 
28.09.11
19:12
чичас в силах ))
не знаю быстрого метода получить ид вида объекта
пользуюсь этим

//-------------------------------------------------------------------------
Функция глПолучитьВидИД(Объект="") Экспорт
// Функция получает ИД вида объекта
// Объект - объект метаданных
   Перем Сп,Тип;
   Тип=ТипЗначения(Объект);
   Если Тип=2 Тогда
       Тмп=ПолучитьПустоеЗначение(Объект);
   ИначеЕсли Тип=12 Тогда
       Тмп=ПолучитьПустоеЗначение("Документ."+Объект.Вид());
   ИначеЕсли Тип=11 Тогда
       Тмп=ПолучитьПустоеЗначение("Справочник."+Объект.Вид());
   ИначеЕсли Тип=10 Тогда
       Тмп=ПолучитьПустоеЗначение("Справочник."+Объект.Вид());
   ИначеЕсли Тип=15 Тогда
       Тмп=ПолучитьПустоеЗначение("Счет."+Объект.Вид());
   ИначеЕсли Тип=1 Тогда
       Возврат Объект;
   КонецЕсли;
   Сп=СоздатьОбъект("СписокЗначений");
   Сп.ИзСтрокиСРазделителями(ЗначениеВСтрокуВнутр(Тмп));
   Возврат Число(Сп.ПолучитьЗначение(4));
КонецФункции    // глПлучитьВидИД(Объект)
37 Cthulhu
 
28.09.11
19:22
(36): угумц, типа моего (25) - то же тормозное ЗначениеВСтрокуВнутр, но у меня полный Ид объекта, а у тебя только Ид Вида.
Иэхх, в с++ вроде это все из объектной модели вытаскивается - придется только ради этого с++ ставить штоль?..
38 Cthulhu
 
28.09.11
19:26
(36): и там у тя в комментарии - ошибка. Объект - элемент не метаданных, а данных. Если Объект - элемент метаданных, то Тип у тя всегда будет ревен 100 ;)
39 Cthulhu
 
28.09.11
19:31
ЗЫ: кстати, с этим ТипЗначения - приколы иногда встречаются, со значением 100 в частности. ТипЗначенияСтр() - гораздо информативнее. Отладчиком можно убедиться в любой обработке в ПриОткрытии с табло вбив:
ТипЗначения(Метаданные.Справочник("<ТвойВид>"))
ТипЗначения(глВернутьЗначение(Контекст))
ТипЗначенияСтр(Метаданные.Справочник("<ТвойВид>"))
ТипЗначенияСтр(глВернутьЗначение(Контекст))
(вместо глВернутьЗначение - какая-нито твоя функция, возвращающая полученный параметр)
40 smaharbA
 
28.09.11
20:53
ТипЗначения быстрее, проверено
41 Cthulhu
 
28.09.11
21:06
(40): насколько?
42 smaharbA
 
28.09.11
21:07
(41) не вспомню, много итераций делал и пришел к выводу везде где возможно заменять на ТипЗначения, особенно где в циклах
43 Cthulhu
 
28.09.11
21:31
(42): спсб, проверю.
но в некоторых случаях - лучше ...стр(). см.(39), например, там ТипЗначения вернет 100 в обоих случаях, а ТипЗначенияСтр - годно вернет "Метаданные" и "ГрупповойКонтекст".
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой