Комментарии
Избранное
Подписка
Сортировка:
Древо
Кстати в большинстве подобных доработок (в том числе и в инструментах разработчика) не хватает очень полезной информации - вычисление даты создания объекта по ссылки на объект. Понятно, что там есть свои особенности и нюансы (либо ссылка может дату не содержать, либо содержать, но с некоторым сдвигом относительно реальной даты её добавления в ИБ). Полученная дата помогает сократить период отбора в Журнале Регистрации одним/двумя/тремя днями, если необходимо найти того, кто создал объект.
На днях был подобный случай. Нашли номенклатуру с двумя одинаковыми кодами. Оказалось, что были проблемы с правами и пользователь сам её создал (хотя не должен был иметь прав), кроме того была выключена функциональная опция контролирующая уникальность номенклатурных кодов.
На днях был подобный случай. Нашли номенклатуру с двумя одинаковыми кодами. Оказалось, что были проблемы с правами и пользователь сам её создал (хотя не должен был иметь прав), кроме того была выключена функциональная опция контролирующая уникальность номенклатурных кодов.
Все это уже было:
Функция ПолучитьGUIDпоID(ИД)
Возврат Прав(ИД, 8) + "-" + Лев(Прав(ИД, 12), 4) + "-" + Лев(Прав(ИД, 16), 4) + "-" + Лев(ИД, 4) + "-" + Прав(Лев(ИД, 16), 12);
КонецФункции
Функция ПолучитьIDпоGUID(ГУИД)
Если ЗначениеЗаполнено(ГУИД) Тогда
Возврат Сред(ГУИД,20,4) + Прав(ГУИД,12) + Сред(ГУИД,15,4) + Сред(ГУИД,10,4) + Лев(ГУИД,8);
Иначе
Возврат "";
КонецЕсли;
КонецФункции
// Как преобразовать <Объект не найден> в УникальныйИдентификатор (GUID)
// Как преобразовать <Объект не найден> в УникальныйИдентификатор (GUID)
//
// ГУИДУдОбъкта = <Объект не найден> (84:bf5600145e3710ab11dda4c605dbe824)
ГУИДУдОбъктаСтр = СтрЗаменить(ГУИДУдОбъкта,"<Объект не найден> (","");
ГУИДУдОбъктаСтр = СтрЗаменить(ГУИДУдОбъктаСтр,")","");
ГУИДУдОбъктаСтр = СтрЗаменить(ГУИДУдОбъктаСтр,"0x","");
ГУИДУдОбъктаСтр = Сред(ГУИДУдОбъктаСтр, Найти(ГУИДУдОбъктаСтр,":")+1, СтрДлина(ГУИДУдОбъктаСтр));
// Преобразуем GUID
ГУИД = Сред(ГУИДУдОбъктаСтр,25,8)+"-"+Сред(ГУИДУдОбъктаСтр,21,4)+"-"+Сред(ГУИДУдОбъктаСтр,17,4)+"-"+Сред(ГУИДУдОбъктаСтр,1,4)+"-"+Сред(ГУИДУдОбъктаСтр,5,12);
//и получаем ГУИД = 05dbe824-a4c6-11dd-bf56-00145e3710ab
Функция ПолучитьGUIDпоID(ИД)
Возврат Прав(ИД, 8) + "-" + Лев(Прав(ИД, 12), 4) + "-" + Лев(Прав(ИД, 16), 4) + "-" + Лев(ИД, 4) + "-" + Прав(Лев(ИД, 16), 12);
КонецФункции
Функция ПолучитьIDпоGUID(ГУИД)
Если ЗначениеЗаполнено(ГУИД) Тогда
Возврат Сред(ГУИД,20,4) + Прав(ГУИД,12) + Сред(ГУИД,15,4) + Сред(ГУИД,10,4) + Лев(ГУИД,8);
Иначе
Возврат "";
КонецЕсли;
КонецФункции
// Как преобразовать <Объект не найден> в УникальныйИдентификатор (GUID)
// Как преобразовать <Объект не найден> в УникальныйИдентификатор (GUID)
//
// ГУИДУдОбъкта = <Объект не найден> (84:bf5600145e3710ab11dda4c605dbe824)
ГУИДУдОбъктаСтр = СтрЗаменить(ГУИДУдОбъкта,"<Объект не найден> (","");
ГУИДУдОбъктаСтр = СтрЗаменить(ГУИДУдОбъктаСтр,")","");
ГУИДУдОбъктаСтр = СтрЗаменить(ГУИДУдОбъктаСтр,"0x","");
ГУИДУдОбъктаСтр = Сред(ГУИДУдОбъктаСтр, Найти(ГУИДУдОбъктаСтр,":")+1, СтрДлина(ГУИДУдОбъктаСтр));
// Преобразуем GUID
ГУИД = Сред(ГУИДУдОбъктаСтр,25,8)+"-"+Сред(ГУИДУдОбъктаСтр,21,4)+"-"+Сред(ГУИДУдОбъктаСтр,17,4)+"-"+Сред(ГУИДУдОбъктаСтр,1,4)+"-"+Сред(ГУИДУдОбъктаСтр,5,12);
//и получаем ГУИД = 05dbe824-a4c6-11dd-bf56-00145e3710ab
(6) Функция СтрокадляSQLИзСсылки(ЛюбаяСсылка)
ЛюбаяСсылка16 = врег(ЗначениеВСтрокуВнутр(ЛюбаяСсылка));
ПозицияДвоеточия = Найти(ЛюбаяСсылка16, ":");
Ссылка16 = Сред(ЛюбаяСсылка16, ПозицияДвоеточия + 1, 32);
Ссылка16 = ВРег(Ссылка16);
Возврат Ссылка16;
КонецФункции
Функция СсылкаИзДвоичныхДанных(ЗНАЧ ПустаяСсылка, ДвоичныеДанные)
Если НЕ ТипЗнч(ПустаяСсылка) = Тип("Строка") Тогда
ЛюбаяСсылка16 = врег(ЗначениеВСтрокуВнутр(ПустаяСсылка));
ПозицияДвоеточия = Найти(ЛюбаяСсылка16, ":");
ПустаяСсылка = Лев(ЛюбаяСсылка16, ПозицияДвоеточия);
КонецЕсли;
Если ТипЗнч(ДвоичныеДанные) = Тип("Строка") Тогда
Возврат ЗначениеИзСтрокиВнутр(ПустаяСсылка + ДвоичныеДанные + "}");
Иначе
Возврат ЗначениеИзСтрокиВнутр(ПустаяСсылка + ПолучитьHexСтрокуИзДвоичныхДанных(ДвоичныеДанные) + "}");
КонецЕсли;
КонецФункции
ЛюбаяСсылка16 = врег(ЗначениеВСтрокуВнутр(ЛюбаяСсылка));
ПозицияДвоеточия = Найти(ЛюбаяСсылка16, ":");
Ссылка16 = Сред(ЛюбаяСсылка16, ПозицияДвоеточия + 1, 32);
Ссылка16 = ВРег(Ссылка16);
Возврат Ссылка16;
КонецФункции
Функция СсылкаИзДвоичныхДанных(ЗНАЧ ПустаяСсылка, ДвоичныеДанные)
Если НЕ ТипЗнч(ПустаяСсылка) = Тип("Строка") Тогда
ЛюбаяСсылка16 = врег(ЗначениеВСтрокуВнутр(ПустаяСсылка));
ПозицияДвоеточия = Найти(ЛюбаяСсылка16, ":");
ПустаяСсылка = Лев(ЛюбаяСсылка16, ПозицияДвоеточия);
КонецЕсли;
Если ТипЗнч(ДвоичныеДанные) = Тип("Строка") Тогда
Возврат ЗначениеИзСтрокиВнутр(ПустаяСсылка + ДвоичныеДанные + "}");
Иначе
Возврат ЗначениеИзСтрокиВнутр(ПустаяСсылка + ПолучитьHexСтрокуИзДвоичныхДанных(ДвоичныеДанные) + "}");
КонецЕсли;
КонецФункции
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.