Данная обработка позволяет узнать GUID записи справочника или документа в любой базе на платформе 8.3, работающей на управляемых формах, а также сформировать строку кода для конфигуратора для поиска этого элемента.
Скачать файл
ВНИМАНИЕ:
Файлы из Базы знаний - это исходный код разработки.
Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы.
Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных.
Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Когда необходимо в запросе отобрать заведомо известный по GUID элемент справочника в коде конфигуратора. Данная обработка позволяет узнать этот код и сформировать код для конфигуратора в любой базе на платформе 8.3, работающей на управляемых формах.
Открываете нужный справочник, выбираете необходимый элемент. Получаете ГУИД элемента и строку кода для конфигуратора.
Тестировалась на платформе 1С 8.3.23.1912, базы 1С:ERP Управление предприятием 2 (2.5.8.435), Бухгалтерия предприятия, редакция 3.0 (3.0.167.32).
Обработки помогут Вам легко и, главное, быстро (в 5 раз и быстрее штатной обработки 1С), выполнить поиск дублирующих данных в Ваших базах 1С на платформах 8.1-8.3. Это позволит уменьшить объем лишней информации в справочниках и документах, планах видов характеристик и др., упростит работу с данными пользователям. А так же можно, одним нажатием, узнать в каких ссылочных объектах есть вообще дубли! Понятное расположение команд и настроек, в сочетании с описанием и справкой, еще упростят процесс. А так же обновления Вы получаете бесплатно в течение года с момента приобретения данных обработок! (Обновление от 27.11.2023, версия 6.12)
Несколько упакованных в один класс интерфейсов для обработки популярных универсальных коллекций. Для тех, кого раздражает отсутствие действительно единого интерфейса для универсальных коллекций.
В этой статье я хочу рассмотреть еще один кейс применения Clickhouse в связке с 1С - оптимизацию поиска в справочнике по ключевым словам. Здесь не будет готового решения, но будут описаны важные моменты, которые позволят легко применить данный кейс в реальности.
PowerOffice - обработка для поиска, просмотра и обработки данных для пользователей. Доступ к объектам на просмотр и редактирование данных определяется правами пользователя.
Получение ссылки в 1С по бинарной строке из PostgreSQL в виде строки формата bytea или из MSSQL в виде шестнадцатиричной строки. Кроме ссылочных объектов ссылки могут быть получены и для перечислений. Это может быть полезно при анализе логов журнала регистрации или СУБД.
Не узнаем теперь GUID элемента в ваше базе, какая трагедь ;)
Всё-же лучше избегать хард-кода и использовать константы и пр.
Но в целом обработка выполняет свою задачу
(3) А как это поможет без дополнительной обработки? В навигационной ссылке части ГУИД идут не в том порядке, который нужен для создания ссылки.
ГУИД объекта можно легко вытащить через консоль запросов. Также, любой более-менее серьезный редактор объектов показывает ГУИД.
Ссылка.УникальныйИдентификатор() // ИЛИ Новый УникальныйИдентификатор(XMLСтрока(Ссылка))
И идентификатор строкой:
XMLСтрока(Ссылка) // ИЛИ Строка(Ссылка.УникальныйИдентификатор())
Есть способ запросом, способ навигационной ссылкой и есть ещё способ более древний чем дедовский не рекомендованный 1с.
Теперь, что такое навигационная Ссылка?
Это строка содержащая тип объекта и его идентификатор.
Что можно делать с навигационной ссылкой?
1 Открывать в клиенте объект
2 Можно программно забрать из неё тип и получить guid.
И да, навигационную ссылку можно получить программно и в клиенте не используя редакторов.
(5) Тут никто не обсуждал программное получение гуид. Задача стоит получить ГУИД в предприятии, чтобы его значение использовать в коде хардкорно. То что навигационную ссылку можно получить без каких-либо инструментов и так понятно. Но вот вручную ковыряться с ее "хвостом", чтобы получить ГУИД - тот еще изврат. А если предлагаете для этого использовать обработку, то навигационная ссылка тут ни к селу ни к городу.
// Получить структуру из навигационной ссылки
//
// Параметры:
// НавигационнаяСсылка - Строка - Навигационная ссылка
// ПередТочкой - Строка - Если заполнено тогда в типе перед точкой будет вставлено переданное значение.
// Пример: "Ссылка" , ТипОбъекта = "ДокументСсылка.ЗаказКлиента"
//
// Возвращаемое значение:
// Структура - Структура ответа:
// Отработал - Булево - Признак того, что результат получен или не получен
// Результат - Структура - Содержит ИдОбъекта и ТипОбъекта
//
Функция СтруктураНавигационнойСсылки(Знач НавигационнаяСсылка, Знач ПередТочкой = "") Экспорт
Результат = Новый Структура("Отработал", Истина);
Если СтрНайти(НавигационнаяСсылка,"e1cib/data/") = 0
ИЛИ СтрНайти(НавигационнаяСсылка,"?ref=") = 0 Тогда
Результат.Отработал = Ложь;
Возврат Результат;
КонецЕсли;
ПодготовленнаяСтрока = СтрЗаменить(НавигационнаяСсылка, "e1cib/data/", "");
ПодготовленнаяСтрока = СтрЗаменить(ПодготовленнаяСтрока, "?ref=", "||");
МассивРазделеннойСсылки = СтрРазделить(ПодготовленнаяСтрока, "||", Ложь);
Если МассивРазделеннойСсылки.Количество() > 1 Тогда
ТипОбъекта = МассивРазделеннойСсылки[0];
Если ЗначениеЗаполнено(ПередТочкой) Тогда
ТипОбъекта = СтрЗаменить(ТипОбъекта, ".", ПередТочкой + ".");
КонецЕсли;
ГУИДУдОбъектаСтр = Лев(МассивРазделеннойСсылки[1], 32);
ИдОбъекта = Сред(ГУИДУдОбъектаСтр,25,8)
+ "-"
+ Сред(ГУИДУдОбъектаСтр,21,4)
+ "-"
+ Сред(ГУИДУдОбъектаСтр,17,4)
+ "-"
+ Сред(ГУИДУдОбъектаСтр,1,4)
+ "-"
+ Сред(ГУИДУдОбъектаСтр,5,12);
Результат.Вставить("Результат", Новый Структура("ИдОбъекта, ТипОбъекта", ИдОбъекта, ТипОбъекта));
Возврат Результат;
Иначе
Результат.Отработал = Ложь;
Возврат Результат;
КонецЕсли;
КонецФункции
Показать
А еще можно просто скопировать и в клиенте перейти по навигационной ссылке и сразу провалится в объект, что гораздо удобнее нежели сначала использовать какую-то обработку чтобы понять, что это за идентификатор такой...