Версия для печати темы (https://pro1c.org.ua/index.php?s=5f6a94f797594d4e0a43259b989c23bc&showtopic=66825)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 7.7 _ Как получить уникальный идентификатор элемента справочника ?

Автор: andrew76 02.12.21, 9:23

Добрый день !

Как получить уникальный идентификатор элемента справочника в 1 с7.7.025 ?

Автор: Bernet 02.12.21, 9:31

andrew76 @ Сегодня, 9:23 * ,
Если не ошибаюсь в 7.7 ещё не было понятия ссылки. т.е. GUID

Автор: denis84 02.12.21, 9:37

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 02.12.21, 9:37

Цитата(denis84 @ 02.12.21, 12:35) *
ФТ.Ключ.IDINT


что это ?

Автор: denis84 02.12.21, 9:48

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

denis84 @ Сегодня, 9:37 * ,
вот еще ссылка

https://pro1c.org.ua/redirect.php?http://catalog.mista.ru/1c/articles/635159/

Автор: andrew76 02.12.21, 9:55

denis84 @ Сегодня, 12:48 * ,

ЗначениеВСтрокуВнутр не похоже на уникальный идентификатор.Нужно еще какое-то преобразование.

Автор: Vofka 02.12.21, 9:58

Цитата(andrew76 @ 02.12.21, 9:55) *
ЗначениеВСтрокуВнутр не похоже на уникальный идентификатор.

Оно по формату не уникальный идентификатор, но само значение вроде уникально будет для каждого элемента.

Автор: andrew76 02.12.21, 10:01

с меня просят именно уникальный идентификатор.

Автор: Vofka 02.12.21, 13:41

Цитата(andrew76 @ 02.12.21, 10:01) *
с меня просят именно уникальный идентификатор.

Тогда, наверное, вам придется самому его генерировать и записывать в справочник.

Автор: andrew76 02.12.21, 16:30

Vofka @ Сегодня, 16:41 * ,

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

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua