Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как получить уникальный идентификатор элемента справочника ?
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
andrew76
Добрый день !

Как получить уникальный идентификатор элемента справочника в 1 с7.7.025 ?
Bernet
andrew76 @ Сегодня, 9:23 необходимо зарегистрироваться для просмотра ссылки ,
Если не ошибаюсь в 7.7 ещё не было понятия ссылки. т.е. GUID
denis84
andrew76 @ Сегодня, 9:23 необходимо зарегистрироваться для просмотра ссылки ,
Добрый день! У меня есть такой код получаю по товару

       Спр = СоздатьОбъект("Справочник.Номенклатура");
    Спр.ВыбратьЭлементы();
    Пока Спр.ПолучитьЭлемент() = 1 Цикл
        ИдСтр = ЗначениеВстрокуВнутр(Спр.ТекущийЭлемент());
        ФТ.Ключ.IDINT = ИдСтр;
        Если ФТ.НайтиПоКлючу(0) = 0 Тогда
            Сообщить("Не найден GUID для товара " + Спр.Наименование, "!");
            Продолжить;
        Иначе
            Сообщить(Спр.Наименование, "i");
            Сообщить(ФТ.GUID, " ");
        КонецЕсли;
    КонецЦикла;


denis84 @ Сегодня, 9:35 необходимо зарегистрироваться для просмотра ссылки ,
В 1С 7.7 можно получить так

Через v7plus.dll
Код 1C v 7.x
 Инфо = СоздатьОбъект("AddIn.V7SysInfo");
ГлобальноУникальныйИдентификатор = Инфо.СоздатьGUID();


Через WScript
Код 1C v 7.x

 Функция СоздатьGUID()
TypeLib = CreateObject("Scriptlet.TypeLib");
NewGUID = TypeLib.Guid();
TypeLib = "";
Возврат NewGUID;
КонецФункции

//*******************************************
Процедура Сформировать()
g=СоздатьGUID();
Сообщить("Создан GUID: "+g);
КонецПроцедуры



при OLE доступе:
Код 1C v 7.x
 Если Док_Источник.ВыбратьДокументы(ВыбНачПериода,ВыбКонПериода) = 1 Тогда
Пока Док_Источник.ПолучитьДокумент() = 1 Цикл
Объект = БазаОле.ЗначениеВстрокуВнутр(Док_Источник.ТекущийДокумент());
ИдентификаторДокумента = СокрЛП(ПолучитьИД(Объект));
// Для примера Объект возвращает {"O","0","0","3114","0","0"," 258156CB "},
// а ПолучитьИД(объект) = 258156CB
КонецЦикла;


Еще посмотрите метод:
ЗначениеВСтрокуВнутр(<?>);
Синтаксис:
ЗначениеВСтрокуВнутр(<Объект>)
Назначение:
Преобразование значения объекта агрегатного типа в строковое системное представление.
Возвращает: представление значения объекта в строковом системном виде.
Параметры:
<Объект> - значение объекта агрегатного типа данных которое нужно преобразовать.[/code]
andrew76
Цитата(denis84 @ 02.12.21, 12:35) необходимо зарегистрироваться для просмотра ссылки
ФТ.Ключ.IDINT


что это ?
denis84
andrew76 @ Сегодня, 9:37 необходимо зарегистрироваться для просмотра ссылки ,
это пример в моей обработке в ДБФ ищу поключу, есть такой ID или нет. Вам надо использовать ЗначениеВСтрокуВнутр.

denis84 @ Сегодня, 9:37 необходимо зарегистрироваться для просмотра ссылки ,
вот еще ссылка

необходимо зарегистрироваться для просмотра ссылки
andrew76
denis84 @ Сегодня, 12:48 необходимо зарегистрироваться для просмотра ссылки ,

ЗначениеВСтрокуВнутр не похоже на уникальный идентификатор.Нужно еще какое-то преобразование.
Vofka
Цитата(andrew76 @ 02.12.21, 9:55) необходимо зарегистрироваться для просмотра ссылки
ЗначениеВСтрокуВнутр не похоже на уникальный идентификатор.

Оно по формату не уникальный идентификатор, но само значение вроде уникально будет для каждого элемента.
andrew76
с меня просят именно уникальный идентификатор.
Vofka
Цитата(andrew76 @ 02.12.21, 10:01) необходимо зарегистрироваться для просмотра ссылки
с меня просят именно уникальный идентификатор.

Тогда, наверное, вам придется самому его генерировать и записывать в справочник.
andrew76
Vofka @ Сегодня, 16:41 необходимо зарегистрироваться для просмотра ссылки ,

Ну да,везде в примерах только генерация Нового Идентификатора.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.