Как сделать обычный элемент справочника предопределенным? #222502


#0 by Олег1234
Делаю по принципу, описанному тут Для пользователя все работает как надо: предопределенный элемент виден в справочнике и все ссылки на него работают корректно. Однако, при попытке получить программно ссылку на предопределенный стандартным способом (по имени предопределенного) получаем ссылку вида <Объект не найден>... Похоже имя созданного предопределенного осталось связано со "старой" ссылкой на элемент данных. Кто знает где и как это можно поправить? Заранее благодарен!
#1 by Defender aka LINN
Может стоит создать элеме6нт обычным способом, а потом заменить все ссылки на него?
#2 by Олег1234
Так предопределенный элемент и был создан обычным способом. А ссылки заменять очень не хочется, поскольку их весьма много и замена каждой приводит к необходимости записи объекта, содержащего ссылку. Кроме того, задача возникает периодически и для того, чтобы каждый раз запускать обработки, которые перезаписывают "полбазы" требуется черезчур много серверного времени и ресурсов. А дело-то ведь всего лишь в одной ссылке, которую гда-то (в какой -то таблице) надо заменить. Если кто знает где эту ссылку заменить, подскажите, пожалуйста!
#3 by Олег1234
Хотелось бы предложить разработчикам платформы подумать над штатным способом связывать предопределенные элементы с данными ИБ. Что мешает, например, в платформе реализовать возможность в режиме "Предприятие" сопоставить предопределенному элементу произвольный элемент справочника, для которого этот предопределенный задан в режиме "Конфигуратор"
#4 by Фокусник
На то он и ПРЕДопределенный (: Т.е. перед внесением данных в базу. Хотя конечно в растущей организации вопрос весьма актуальный...
#5 by Олег1234
Вот я и говорю, что есть желание расширить механизм предопределенных элементов до механизма предопределенных ссылок на элементы справочника и тогда можно рассматривать механизм предопределенных как расширение механизма констант. Ведь для любой константы ссылочного типа (например типа "СправочникСсылка.Контрагенты") у пользователя есть возможность установить в эту константу ссылку на любой элемент заданного типа. Почему бы и для предопределенных элементами не разрешить этого?
#6 by Олег1234
"Почему бы и для предопределенных элементами не разрешить этого?" следует читать как "Почему бы и для предопределенных элементов не разрешить этого?"
#7 by Олег1234
Проще завести вместо предопределенного константу и положить в нее нужную ссылку, чем менять все ссылки в базе.
#8 by Олег1234
Чувствую, придется заводить константу....эх, хотелось как лучше...
#9 by Neco
Гм.. "Поиск и замена дублирующихся элементов справочников" должна помочь в замене элемента одного на другой. ЗЫ: Как вариант - поиграться уникальным идентификатором.
#10 by Олег1234
Я и не говорю, что не помогает, я говорю. что неоптимально (очень долго).
#11 by Олег1234
И к тому же мартышкин труд. Задача-то плевая: был элемент справочника без имени в метаданных, а надо назначить ему имя в метаданных, чтобы обращатся к нему программно.... Неужели для этого необходимо столько усилий? Элемент-то остался тем-же...
#12 by Олег1234
Я ж вообще не хочу данные трогать, я хочу назвать их для программиста!
#13 by Neco
Что заничт долго? Для благородного дела времени должно хватить. Операция одноразовая или такое всегда нужно делать? Как вариант запросом SQL заменить заменить во всех таблицах старый ГУИД на новый. Запрос вроде пишется не сложно.
#14 by megalodon
не взлетит, ГУИД предопределенного элемента еще и в метаданных хранится.
#15 by Олег1234
Как заменить всюду старые ссылки на новые я знаю. Мне интересно нельзя ли как-то старому непредопределенному назначить свойство предопределенности и имя (идентификатор) в конфигураторе?
#16 by Олег1234
Вот оно и "не взлетает", когда я просто удаляю старый, а гуид старого записываю в нужное поле нового. Как бы и в метаданных прописать?
#17 by Олег1234
взлетит, поскольку там предлагается заменять все ссылки на гуид старого гуидом нового, который и останется в метаданных, только этого хочется избежать
#18 by megalodon
а, ну если предлагается средствами SQL менять все ссылки :-))) это ж сколько времени на написание запроса уйдет :-) имхо лучше обработкой воспользоваться.
#19 by Олег1234
согласен
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

Похожие вопросы 1С