На PORTA.ru
ОГРОМНЫЙ выбор портативной техники:
MD-плееры CD-плееры MP3-плееры Кассетные плееры Диктофоны Радио Цифр. камеры Сотовые Дешевые ноутбуки |
||
Внутренние идентификаторы объектов Функция ПолучитьИД_Вариант1(Объект)
Перем Стр; Стр=ЗначениеВСтрокуВнутр(Объект); СЗ=СоздатьОбъект("СписокЗначений"); СЗ.ИзСтрокиСРазделителями(Сред(Стр,2,СтрДлина(Стр)-2)); Возврат СЗ.ПолучитьЗначение(СЗ.РазмерСписка()); КонецФункции //_____________________________________________________________________________ Функция ПолучитьИД_Вариант2(Объект) Перем Стр; СЗ=СоздатьОбъект("СписокЗначений"); СЗ.ДобавитьЗначение("",Объект); СЗ.ПолучитьЗначение(1,Стр); Возврат Стр; КонецФункции //_____________________________________________________________________________ Процедура Сформировать() // Пусть "Объект" - это реквизит формы типа "Справочник" Сообщить("Объект: "+Объект.ТекущийЭлемент()); Сообщить("Вариант 1: "+ПолучитьИД_Вариант1(Объект.ТекущийЭлемент())); Сообщить("Вариант 2: "+ПолучитьИД_Вариант2(Объект.ТекущийЭлемент())); КонецПроцедуры //_____________________________________________________________________________ Если нужно получить id в том виде, в котором он хранится в таблицах 1С, воспользуйтесь недокументированной функцией _IdToStr(), н-р: Сообщить("Вариант 1: "+_IdToStr(ПолучитьИД_Вариант1(Объект.ТекущийЭлемент()))); Подробнее о недокументированных возможностях 1С можно посмотреть здесь. Необходимо добавить, что если база с использованием УРБД, то система не контролирует уникальность этого идентификационного номера. Необходимо еще к номеру добавлять место создания, т.е. префикс той базы, где был создан объект. <замечание от Анатолия Лытькова> Формат строки, полученной с помощью ф-ии ЗначениеВСтрокуВнутр(): Список = СоздатьОбъект("СписокЗначений"); Список.ДобавитьЗначение("O"); // тип Список.ДобавитьЗначение("0"); // длина Список.ДобавитьЗначение("0"); // точность Список.ДобавитьЗначение("255"); // ИД вида объекта Список.ДобавитьЗначение("0"); // флаг неотр. (?) Список.ДобавитьЗначение("0"); // флаг разделения триад (?) Список.ДобавитьЗначение("9548"); // ИД объекта Зн = ЗначениеИзСтрокиВнутр("{"+Список.ВСтрокуСРазделителями()+"}") <cообщил АЛьФ> Седьмой параметр списка - строка 13 символов: 01-10 ИД вида объекта 11-20 ИД объекта 21-23 ИД информационной базы (УРИБ). В таком виде он будет, если передавать не Объект.ТекущийЭлемент(), а просто Объект. <сообщил Балбесс> Типы объектов:
-
Наверх -
|
||||||||||||||||||||||
В качестве благодарности за решение проблемы, щелкните здесь. Поддержите развитие сайта. Спасибо! |
Автор и разработчик: Кайгородов Андрей aka mszsuz. mszsuz@online.sinor.ru ICQ#33993114. Дата последнего обновления страницы: Tuesday 18.05.2004 9:22 |