![]() |
![]() |
![]() |
|
Уникальный идентификатор объекта в 1с77 | ☑ | ||
---|---|---|---|---|
0
gr_83
28.11.07
✎
08:21
|
Проблема синхронизаций при конвертации документов между управленческой 77 и бухгалтерской 80. Есть ли какой нибудь уникальный идентификатор объекта в 1с77. Кто знает отпишите очень нужно
|
|||
1
ZanderZ
28.11.07
✎
08:23
|
(0) ЗначениеВСтрокуВнутр сделай и посмотри
|
|||
2
igork1966
28.11.07
✎
08:23
|
||||
3
gr_83
28.11.07
✎
08:28
|
Кто нибудь пробовал таким образом
Инфо = СоздатьОбъект("AddIn.V7SysInfo"); ГлобальноУникальныйИдентификатор = Инфо.СоздатьGUID(); |
|||
4
igork1966
28.11.07
✎
08:33
|
(3) Поле соответствующее нужно будет создавать и код править.
Ps. Не знаю что у тебя за проблемы, но некоторые юзают для обменов служебную таблицу УРИБД в которой фиксируются измененые объекты... это не исключает (1,2,3) |
|||
5
gr_83
28.11.07
✎
08:38
|
Спсаибо тебе igork1966 за отклик, жалко не могу по адресу обратится керио не пускает, зарубает сразу
|
|||
6
igork1966
28.11.07
✎
08:43
|
(5) Это ты про (2)? Могу сюда копи-пасте.
|
|||
7
igork1966
28.11.07
✎
08:44
|
(6) +
Внутренние идентификаторы объектов Функция ПолучитьИД_Вариант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 ИД информационной базы (УРИБ). В таком виде он будет, если передавать не Объект.ТекущийЭлемент(), а просто Объект. <сообщил Балбесс> Типы объектов: Неопределенный "U" Число "N" Строка "S" Дата "D" <<Справочник>> "B" <<Документ>> "O" <<Счет>> "T" <<ПланСчетов>> "P" <<ВидСубконто>> "K" <<Календарь>> "C" <<ВидРасчета>> "A" <сообщил mcltd> |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |