|   |   | 
| 
 | v7: GUID в 7 | ☑ | ||
|---|---|---|---|---|
| 0
    
        dan4ik 22.04.13✎ 06:19 | 
        Приветствую, как получить Уникальный идентификатор объекта в 1с 7.7?     | |||
| 1
    
        dan4ik 22.04.13✎ 06:20 | 
        Подобие 8, Выборка.Ссылка.УникальныйИдентификатор()     | |||
| 2
    
        Wobland 22.04.13✎ 06:23 | 
        ты ветку завёл, чтобы удобней было красную Я нажимать?
  http://help1c.com/faq/view/552.html | |||
| 3
    
        el-gamberro 22.04.13✎ 06:26 | 
        ЗначениеВСтрокуВнутр()
  где-то в строке ИД-шник есть | |||
| 4
    
        dan4ik 22.04.13✎ 06:30 | 
        Получается так ЗначениеВСтрокуВнутр(Документ.ТекущийДокумент())??     | |||
| 5
    
        Wobland 22.04.13✎ 06:31 | 
        (4) выходит, где-то там     | |||
| 6
    
        dan4ik 22.04.13✎ 06:33 | 
        Мда...) Спасибо за помощь)     | |||
| 7
    
        el-gamberro 22.04.13✎ 06:37 | 
        (6) там не вся строка УИД, а только кусок, точнее самый последний параметр в строке.     | |||
| 8
    
        Рэйв 22.04.13✎ 06:57 | 
        Функция ПолучитьИД(Нечто)
  Перем Стр; Если ПустоеЗначение(Нечто)=1 Тогда Возврат "не выбран объект"; КонецЕсли; Ид=СтрЗаменить(СтрЗаменить(ЗначениеВСтрокуВнутр(Нечто),",",РазделительСтрок),"""",""); Ид=СтрЗаменить(Ид,"{",""); Ид=СтрЗаменить(Ид,"}",""); ТбКод=Прав(СтрПолучитьСтроку(Ид,7),3); ТбИд=_IdToStr(СтрПолучитьСтроку(Ид,7)); ТбИдЧисло=ТбИд+ТбКод; IDD=СокрЛП(ТбИдЧисло); Возврат IDD; КонецФункции | |||
| 9
    
        Aleksey 22.04.13✎ 07:36 | 
        (8) Так короче
  Функция ПолучитьID(Объект) Экспорт Перем Стр; Стр=ЗначениеВСтрокуВнутр(Объект); СЗ=СоздатьОбъект("СписокЗначений"); СЗ.ИзСтрокиСРазделителями(Сред(Стр,2,СтрДлина(Стр)-2)); Возврат сокрЛП(_IdToStr(СЗ.ПолучитьЗначение(СЗ.РазмерСписка()))); КонецФункции | |||
| 10
    
        ЧеловекДуши 22.04.13✎ 07:45 | 
        Короче, так
  Функция ПолучитьДокументПоИдДок(РеквВидИдДок) Перем Мета; Перем Рез; Мета=СоздатьОбъект("MetaDataWork"); Рез = Мета.ЗначениеИзДлиннойСтрокиБД("Документ",СтрЗаменить(Лев(РеквВидИдДок,13),"%"," ")); Возврат Рез; КонецФункции // ПолучитьДокументПоИдДок(РеквВидИдДок) Функция ПолучитьID_1СПП(ТекЭлем,ЧислоБукв) Перем Рез; Перем Мета; Рез = ""; Мета = СоздатьОбъект("MetaDataWork"); Если ЧислоБукв = 9 Тогда Рез = Мета.ЗначениеВСтрокуБД(ТекЭлем); ИначеЕсли ЧислоБукв = 13 Тогда Рез = Мета.ЗначениеВДлиннуюСтрокуБД(ТекЭлем); ИначеЕсли ЧислоБукв = 23 Тогда Рез = Мета.ЗначениеВСамуюДлиннуюСтрокуБД(ТекЭлем); ИначеЕсли ЧислоБукв = 3 Тогда Рез = Прав(Мета.ЗначениеВСтрокуБД(ТекЭлем),3); ИначеЕсли ЧислоБукв = 6 Тогда Рез = Лев(Мета.ЗначениеВСтрокуБД(ТекЭлем),6); КонецЕсли; Рез = СтрЗаменить(Рез," ","%"); Возврат Рез; КонецФункции // ПолучитьID_1СПП(ТекЭлем,13) | |||
| 11
    
        Aleksey 22.04.13✎ 07:55 | 
        (10) В каком место твоя портянка требующая наличия дополнительных не штатных ВК короче?     | |||
| 12
    
        ЧеловекДуши 22.04.13✎ 07:58 | 
        (11) Чего? Сам ты партянка, это халявный 1С++
  И неважно, что база будет ДБФ и не будет использоваться интерфейсный механизм запросов. Просто по скорости получения ИД, этот самый быстрый :) | |||
| 13
    
        Aleksey 22.04.13✎ 08:01 | 
        (12) Еще раз это штатная ВК? Нет? Тогда до свидание     | |||
| 14
    
        Rie 22.04.13✎ 08:07 | 
        (13) А что, можно пользоваться только штатными ВК? Сама концепция ВК как бы намекает, что их могут писать и другие люди.     | |||
| 15
    
        ЧеловекДуши 22.04.13✎ 08:15 | 
        (13) Да и не смотри... я твои штатные Шатал.
  Не для тебя пишу :) | |||
| 16
    
        Рэйв 22.04.13✎ 08:15 | 
        (14)Так не факт что у ТС эта вк подключена.     | |||
| 17
    
        Rie 22.04.13✎ 08:21 | 
        (16) Тут два момента:
  1. Кто мешает подключить? 2. Если нужен уникальный ID - то что с ним ТС собирается делать? "Штатные" средства 1С им пользуются невидимо для программиста. | |||
| 18
    
        Aleksey 22.04.13✎ 08:27 | 
        (14) Другие <> не все. У некоторых по разным причинам их может и не быть     | |||
| 19
    
        vde69 22.04.13✎ 08:29 | 
        (17) представь справочник огромный, нужно найти 1 элемент зная его ID, делается это заменой строки и потом СтрокаВнутрВЗначение() работает на ура быстрее любых прямых запросов....     | |||
| 20
    
        Aleksey 22.04.13✎ 08:29 | 
        (17)
  1. Причин много, начина от религии и заканчивая параноей у руководства/админа 2. ТОже что и 1С с ним делает, т.е. для идентификации объекта. Внезапно да? | |||
| 21
    
        Rie 22.04.13✎ 08:36 | 
        (19) С этим согласен. Но это уже предполагает знание того, как построить аргумент для ЗначениеИзСтрокиВнутр - а в таком случае вопрос (0) просто не возникнет.     | |||
| 22
    
        Rie 22.04.13✎ 08:43 | 
        (20) Ну, религия - это дело личное. Но если паранойя у руководства - тут, согласен, действительно могут возникнуть проблемы. (Что не повод априори всем "нештатным" ВК говорить "до свиданья". Как пример - АТОЛовские ВК считать штатными или нет? Или Штриховские?).     | |||
| 23
    
        ЧеловекДуши 22.04.13✎ 08:47 | 
        (16) Это уже решать ТС, может он одумается и пристрастится к прекрасному :)
  А вот ему (0) Еще и обработочка для удобной регистрации ВК: http://yadi.sk/d/aR0fed5Y4EpN9 Там же и ВК лежат :) | |||
| 24
    
        Ковычки 22.04.13✎ 09:02 | 
        СтрокаДействийФормы=Объект;
  Сообщить(СтрокаДействийФормы); | |||
| 25
    
        Ковычки 22.04.13✎ 09:05 | 
        (9)
  Функция глПолучитьОбъектИД(Объект) Экспорт // Функция получает ИД объекта // Объект - объект метаданных Перем Сп,Стр; Сп=СоздатьОбъект("СписокЗначений"); Сп.ДобавитьЗначение("",Объект); Сп.ПолучитьЗначение(1,Стр); Возврат Число(Стр); КонецФункции // глПолучитьИДОбъекта //------------------------------------------------------------------------- Функция глПолучитьВидИД(Объект="") Экспорт // Функция получает ИД вида объекта // Объект - объект метаданных Перем Сп,Тип; Тип=ТипЗначения(Объект); Если Тип=2 Тогда Тмп=ПолучитьПустоеЗначение(Объект); ИначеЕсли Тип=12 Тогда Тмп=ПолучитьПустоеЗначение("Документ."+Объект.Вид()); ИначеЕсли Тип=11 Тогда Тмп=ПолучитьПустоеЗначение("Справочник."+Объект.Вид()); ИначеЕсли Тип=10 Тогда Тмп=ПолучитьПустоеЗначение("Справочник."+Объект.Вид()); ИначеЕсли Тип=15 Тогда Тмп=ПолучитьПустоеЗначение("Счет."+Объект.Вид()); ИначеЕсли Тип=1 Тогда Возврат Объект; КонецЕсли; Сп=СоздатьОбъект("СписокЗначений"); Сп.ИзСтрокиСРазделителями(ЗначениеВСтрокуВнутр(Тмп)); Возврат Число(Сп.ПолучитьЗначение(4)); КонецФункции // глПлучитьВидИД(Объект) | |||
| 26
    
        Mikeware 22.04.13✎ 09:32 | 
        (19) а зачем тут прямой запрос?
  собственно, действия системы будут аналогичны что при ЗначениеИзСтрокиБД, что при формировании из внутреннего представления ЗначениеИзСтрокиВнутр() ----- а вообще, к ТС - ТрадиционныйКитайскийВопрос™ | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |