1С - Внутренние идентификаторы объектов

02.02.10

Разработка - Универсальные функции

1С 7.7 - Внутренние идентификаторы объектов

Функция ПолучитьИД_Вариант1(Объект)
Перем Стр;
Стр=ЗначениеВСтрокуВнутр(Объект);
СЗ=СоздатьОбъект("СписокЗначений");
СЗ.ИзСтрокиСРазделителями(Сред(Стр,2,СтрДлина(Стр)-2));
Возврат СЗ.ПолучитьЗначение(СЗ.РазмерСписка());
КонецФункции
//_____________________________________________________________________________

Функция ПолучитьИД_Вариант2(Объект)
Перем Стр;
СЗ=СоздатьОбъект("СписокЗначений");
СЗ.ДобавитьЗначение("",Объект);
СЗ.ПолучитьЗначение(1,Стр);
Возврат Стр;
КонецФункции
//_____________________________________________________________________________

Процедура Сформировать()
// Пусть "Объект" - это реквизит формы типа "Справочник"
Сообщить("Объект: "+Объект.ТекущийЭлемент());
Сообщить("Вариант 1: "+ПолучитьИД_Вариант1(Объект.ТекущийЭлемент()));
Сообщить("Вариант 2: "+ПолучитьИД_Вариант2(Объект.ТекущийЭлемент()));
КонецПроцедуры




Если нужно получить id в том виде, в котором он хранится в таблицах 1С, воспользуйтесь недокументированной функцией _IdToStr(),
н-р: Сообщить("Вариант 1: "+_IdToStr(ПолучитьИД_Вариант1(Объект.ТекущийЭлемент())));
Подробнее о недокументированных возможностях 1С можно посмотреть здесь.

Необходимо добавить, что если база с использованием УРБД, то система не контролирует уникальность этого идентификационного номера.
Необходимо еще к номеру добавлять место создания, т.е. префикс той базы, где был создан объект.

Формат строки, полученной с помощью ф-ии ЗначениеВСтрокуВнутр():

Список = СоздатьОбъект("СписокЗначений");
Список.ДобавитьЗначение("O"); // тип
Список.ДобавитьЗначение("0"); // длина
Список.ДобавитьЗначение("0"); // точность
Список.ДобавитьЗначение("255"); // ИД вида объекта
Список.ДобавитьЗначение("0"); // флаг неотр. (?)
Список.ДобавитьЗначение("0"); // флаг разделения триад (?)
Список.ДобавитьЗначение("9548"); // ИД объекта
Зн = ЗначениеИзСтрокиВнутр("{"+Список.ВСтрокуСРазделителями()+"}")

Седьмой параметр списка - строка 13 символов:
01-10 ИД вида объекта
11-20 ИД объекта
21-23 ИД информационной базы (УРИБ).
В таком виде он будет, если передавать не Объект.ТекущийЭлемент(), а просто Объект.

Типы объектов:
Неопределенный "U"
Число "N"
Строка "S"
Дата "D"
<> "B"
<> "O"
<> "T"
<> "P"
<> "K"
<> "C"
<> "A"



(с) интернет

См. также

Универсальные функции Программист Платформа 1С v7.7 Россия Абонемент ($m)

В библиотеку собраны различные функции по работе с документами, журналами, типами данных, строками, датой и временем, таблицами значений, Excel, файлами, XML, JSON, Http-сервисами, SMTP серверами и т.п.

1 стартмани

22.12.2023    1371    14    user706545_kseg1971    0    

5

Универсальные функции Программист Платформа 1С v7.7 Конфигурации 1cv7 Россия Бесплатно (free)

Получение реквизитов контрагентов из 1С:Контрагент для старых конфигураций под 1с 7.7.

25.04.2022    2339    zhenyat    7    

8

Механизмы платформы 1С Программист Платформа 1С v7.7 Конфигурации 1cv7 Бесплатно (free)

В статье расписаны примеры из жизни использования "Виртуального" работника. Разобраны вопросы, возникающие при работе с ним.

28.11.2021    1827    user707242_Gold_karas    18    

5

Универсальные функции Программист Платформа 1С v7.7 Россия Бесплатно (free)

Функция выводит таблицу значений в табличный документ. (v7.7) Особенно полезно при отладке. Не нужно вносить изменения в код, вызываем функцию как вычисляемое выражение при останове. Если таблица обрабатывается в несколько этапов, можно вывести её после каждого и визуально проследить эволюцию.

30.06.2021    5138    Zoltan_Black    11    

2

Универсальные функции Системный администратор Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Установка принтера по умолчанию в 1С 7.7. Обработка может быть полезна в том случае, когда нужно установить принтер по умолчанию, а доступа к рабочему столу нет (например, терминальный режим без рабочего стола или remoteApp)

1 стартмани

13.02.2019    13933    4    alsen    3    

5

Универсальные функции Программист Платформа 1С v7.7 Конфигурации 1cv7 1С:Комплексная 7.7 Абонемент ($m)

Предлагается набор функций 1с 7.7 для формирования строки json стандартными средствами.

1 стартмани

10.12.2018    10766    malovandrey    7    

19
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Арчибальд 2709 02.02.10 16:33 Сейчас в теме
Сейчас 5 минут пройдет, и отплюсуюсь :D
6. V0fka 29 02.02.10 16:55 Сейчас в теме
2. Tatitutu 3847 02.02.10 16:36 Сейчас в теме
(с) интернет
- вот как то так, но не как не программа (тем более Ваша)
был раньше сайт хороший с FAQ по 1С как то http://www.sinor.ru/~my1c (точно не помню названия,сайт закрыт, но точно вижу что это оттуда)
4. V0fka 29 02.02.10 16:52 Сейчас в теме
(2) у меня это в текстовом файле было. Откуда взял - не помню. Вот и написал (с) интернет :oops:
8. vip 02.02.10 16:58 Сейчас в теме
(4) У Рупора Абсурда ты взял не спросясь.
7. vip 02.02.10 16:57 Сейчас в теме
(2) угу
У Ёпрста ссылка есть.
Ёпрст; +1 Ответить
9. СергейКа 670 02.02.10 18:13 Сейчас в теме
(2) ссылка точная.
Прикладываю файл оттуда в виде doc. Когда-то был скопирован... Не изменял, с примечаниями оригинала.
Прикрепленные файлы:
1с.doc
Rokky78; Арчибальд; +2 Ответить
12. Ёпрст 1065 03.02.10 10:38 Сейчас в теме
(2) Весь FAQ с синьёры есть в вебархиве, если что.
3. RomDron 02.02.10 16:52 Сейчас в теме
А то-же для восьмерки?
5. V0fka 29 02.02.10 16:53 Сейчас в теме
10. RomDron 03.02.10 08:17 Сейчас в теме
(5) Ответ можно считать так "Это невозможно в принципе"? :D
11. Ёпрст 1065 03.02.10 10:37 Сейчас в теме
Баян с синьёры ?
Низачот
13. Ёпрст 1065 03.02.10 10:39 Сейчас в теме
Оставьте свое сообщение