0. alfir70 161 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 161 08.11.19 12:16 Сейчас в теме
(1) я не делал редактор объектов - он - тяжелый
просто поиск объекта в базе по разным уидам
9. alfir70 161 08.11.19 12:24 Сейчас в теме
(1) я для себя делал
беру гуиды из sql (не 1с база)
и быстро нужно найти объект в 1с
2. PerlAmutor 47 08.11.19 06:37 Сейчас в теме
Кстати в большинстве подобных доработок (в том числе и в инструментах разработчика) не хватает очень полезной информации - вычисление даты создания объекта по ссылки на объект. Понятно, что там есть свои особенности и нюансы (либо ссылка может дату не содержать, либо содержать, но с некоторым сдвигом относительно реальной даты её добавления в ИБ). Полученная дата помогает сократить период отбора в Журнале Регистрации одним/двумя/тремя днями, если необходимо найти того, кто создал объект.

На днях был подобный случай. Нашли номенклатуру с двумя одинаковыми кодами. Оказалось, что были проблемы с правами и пользователь сам её создал (хотя не должен был иметь прав), кроме того была выключена функциональная опция контролирующая уникальность номенклатурных кодов.
5. avpostnikov 10 08.11.19 11:11 Сейчас в теме
(2)А версионирование вас чем не устраивает?
10. PerlAmutor 47 08.11.19 18:26 Сейчас в теме
(5) Тем, что оно включено не для всех объектов конфигурации (как в пользовательском режиме, так и внутри конфигурации). Тем, что версия может не писаться при обмене через планы обменов. Тем, что старые версии могут чиститься регламентным заданием.
11. alfir70 161 08.11.19 18:48 Сейчас в теме
(2) по какому принципу вы хотите искать дату создания исходя из ссылки?
12. PerlAmutor 47 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 161 08.11.19 12:22 Сейчас в теме
(6) Функция СтрокадляSQLИзСсылки(ЛюбаяСсылка)
ЛюбаяСсылка16 = врег(ЗначениеВСтрокуВнутр(ЛюбаяСсылка));
ПозицияДвоеточия = Найти(ЛюбаяСсылка16, ":");
Ссылка16 = Сред(ЛюбаяСсылка16, ПозицияДвоеточия + 1, 32);
Ссылка16 = ВРег(Ссылка16);
Возврат Ссылка16;
КонецФункции

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

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

Вакансии

Программист/Cтарший программист 1С
Москва
зарплата от 100 000 руб. до 250 000 руб.
Полный день

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

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

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

Консультант-аналитик 1С
Москва
зарплата от 40 000 руб. до 120 000 руб.
Полный день