0. alfir70 160 07.11.19 20:35 Сейчас в теме

Ссылка по ГУИДам

Универсальная обработка для получения ссылки по различным уникальным идентификаторам (UID для sql, GUID, ...) и обратно.

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. timeforlive 11 08.11.19 05:24 Сейчас в теме
Чем вам эта обработка не угодила?
https://infostart.ru/public/983887/
3. Voblhned 40 08.11.19 08:06 Сейчас в теме
(1) все как всегда, платностью. А тут делаешь свое и потом делаешься, возможность заработать =) Че как маленький то
wowik; narutouzumaki_13; +2 Ответить
4. timeforlive 11 08.11.19 08:56 Сейчас в теме
(3) Ты еще не понял, почему я ссылку указал в первом посте? Че как маленький то ^_^
7. alfir70 160 08.11.19 12:16 Сейчас в теме
(1) я не делал редактор объектов - он - тяжелый
просто поиск объекта в базе по разным уидам
9. alfir70 160 08.11.19 12:24 Сейчас в теме
(1) я для себя делал
беру гуиды из sql (не 1с база)
и быстро нужно найти объект в 1с
2. PerlAmutor 46 08.11.19 06:37 Сейчас в теме
Кстати в большинстве подобных доработок (в том числе и в инструментах разработчика) не хватает очень полезной информации - вычисление даты создания объекта по ссылки на объект. Понятно, что там есть свои особенности и нюансы (либо ссылка может дату не содержать, либо содержать, но с некоторым сдвигом относительно реальной даты её добавления в ИБ). Полученная дата помогает сократить период отбора в Журнале Регистрации одним/двумя/тремя днями, если необходимо найти того, кто создал объект.

На днях был подобный случай. Нашли номенклатуру с двумя одинаковыми кодами. Оказалось, что были проблемы с правами и пользователь сам её создал (хотя не должен был иметь прав), кроме того была выключена функциональная опция контролирующая уникальность номенклатурных кодов.
5. avpostnikov 10 08.11.19 11:11 Сейчас в теме
(2)А версионирование вас чем не устраивает?
10. PerlAmutor 46 08.11.19 18:26 Сейчас в теме
(5) Тем, что оно включено не для всех объектов конфигурации (как в пользовательском режиме, так и внутри конфигурации). Тем, что версия может не писаться при обмене через планы обменов. Тем, что старые версии могут чиститься регламентным заданием.
11. alfir70 160 08.11.19 18:48 Сейчас в теме
(2) по какому принципу вы хотите искать дату создания исходя из ссылки?
12. PerlAmutor 46 08.11.19 18:54 Сейчас в теме
6. simonovich 08.11.19 12:14 Сейчас в теме
Все это уже было:


Функция Получить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
8. alfir70 160 08.11.19 12:22 Сейчас в теме
(6) Функция СтрокадляSQLИзСсылки(ЛюбаяСсылка)
ЛюбаяСсылка16 = врег(ЗначениеВСтрокуВнутр(ЛюбаяСсылка));
ПозицияДвоеточия = Найти(ЛюбаяСсылка16, ":");
Ссылка16 = Сред(ЛюбаяСсылка16, ПозицияДвоеточия + 1, 32);
Ссылка16 = ВРег(Ссылка16);
Возврат Ссылка16;
КонецФункции

Функция СсылкаИзДвоичныхДанных(ЗНАЧ ПустаяСсылка, ДвоичныеДанные)
Если НЕ ТипЗнч(ПустаяСсылка) = Тип("Строка") Тогда
ЛюбаяСсылка16 = врег(ЗначениеВСтрокуВнутр(ПустаяСсылка));
ПозицияДвоеточия = Найти(ЛюбаяСсылка16, ":");
ПустаяСсылка = Лев(ЛюбаяСсылка16, ПозицияДвоеточия);
КонецЕсли;

Если ТипЗнч(ДвоичныеДанные) = Тип("Строка") Тогда
Возврат ЗначениеИзСтрокиВнутр(ПустаяСсылка + ДвоичныеДанные + "}");
Иначе
Возврат ЗначениеИзСтрокиВнутр(ПустаяСсылка + ПолучитьHexСтрокуИзДвоичныхДанных(ДвоичныеДанные) + "}");
КонецЕсли;
КонецФункции
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Екатеринбург
зарплата до 120 000 руб.
Полный день

Консультант-аналитик 1С
Рязань
зарплата до 80 000 руб.
Полный день

Программист 1С
Рязань
зарплата от 90 000 руб.
Полный день

Бизнес-архитектор 1С, ведущий консультант
Санкт-Петербург
Полный день

Руководитель проектов 1С
Санкт-Петербург
Полный день