Имя: Пароль:
1C
1С v8
Внутренний идентификатор объекта
0 Pandoch
 
30.06.20
15:00
Доброго времени суток. Подскажите, при замене отчета в дереве конфигурации командой "Заменить на внешнюю обработку, отчет..." меняется ли внутренний идентификатор объекта (отчета)?
1 dka80
 
30.06.20
15:28
Нет
2 yurikmellon2
 
30.06.20
15:37
(0) скорее всего нет и это элементарно проверить
    ГУИД = ЭтотОбъект.Отчет;
    Сообщить("GUID = " + ГУИД.УникальныйИдентификатор());
3 Pandoch
 
30.06.20
15:45
(2) что за этотОбъект.Отчет...  если обращаться напрямую к Отчеты.[имяОтчета], то метода УникальныйИдентификатор() нет у объекта метаданных.
4 hhhh
 
30.06.20
15:59
(3) ну это понятно. Отчеты.[имяОтчета] - это же менеджер отчета. откуда у менеджера уникальный идентификатор?
5 vi0
 
30.06.20
16:12
проверь в базе данных, в профайлере, в выгрузке объектов в файлы (там выгружается уид?) итд
6 kuzyara
 
02.07.20
09:10
(3) Внутренний идентификатор объекта метаданных хранится в выгрузке конфигурации в файлы:

<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses"; ... version="2.6">
    <Report uuid="1ce0ffe7-2218-4d9d-88d5-d3eec204bfff"> - это внутренний гуид отчета
        <InternalInfo>
            <xr:GeneratedType name="ReportObject.ДебиторскаяЗадолжность1" category="Object">
                <xr:TypeId>3311a413-fb08-45c9-be4b-b320c47c6eae</xr:TypeId> - это гуид типа менеджера
                <xr:ValueId>4f5a9265-1f7c-4f92-a8df-85144ebaffc5</xr:ValueId>
            </xr:GeneratedType>
            <xr:GeneratedType name="ReportManager.ДебиторскаяЗадолжность1" category="Manager">
                <xr:TypeId>ecc49699-1c84-4abb-80a2-4a57d2bd7986</xr:TypeId> - это гуид типа объекта
                <xr:ValueId>86b8975f-1fe6-4354-864b-8a398a8596c6</xr:ValueId>
            </xr:GeneratedType>

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

Помимо внутреннего идентификатора у каждого объекта метаданных есть идентификаторы типов. Например ОтчетМенеджер.<Имя отчета> и ОтчетОбъект.<ИмяОтчета>. https://yadi.sk/i/vkB0iW5ID5Hbhg

Все типы имеют свои идентификаторы, но при загрузке через "Заменить на внешнюю обработку, отчет..." они, так же как и идентификатор метаданных, заменяются на текущие.

Например - загрузка в отчет ABCАнализПокупателей внешнего отчета ДебиторскаяЗадолжность.epf вызовет лишь добавление суффикса (такой отчет уже есть в конфигурации), а все идентификаторы останутся прежними. https://yadi.sk/i/FEQt8t4rVtJ8pQ
7 kuzyara
 
02.07.20
09:43
(4) > откуда у менеджера уникальный идентификатор?
Это идентификатор типа:


ВнутренняяСтрокаМенеджер = ЗначениеВСтрокуВнутр(Отчеты.ДебиторскаяЗадолжность);
//{"#",b0291e09-dae8-47bb-b380-9c25be22fab3,
//{0}
//}
ИдентификторТипаМенеджер = ЗначениеВСтрокуВнутр(ТипЗнч(Отчеты.ДебиторскаяЗадолжность));
//{"T",b0291e09-dae8-47bb-b380-9c25be22fab3}
ОтчетОбъект = Отчеты.ДебиторскаяЗадолжность.Создать();
ВнутренняяСтрокаОбъект = ЗначениеВСтрокуВнутр(ОтчетОбъект);
// {"#",6737b9b2-732d-4051-8166-59d1d4209295}
ИдентификторТипаОбъект = ЗначениеВСтрокуВнутр(ТипЗнч(ОтчетОбъект));
// {"T",6737b9b2-732d-4051-8166-59d1d4209295}
Закон Брукера: Даже маленькая практика стоит большой теории.