v7: Сохранение в справочнике значения неопределенного типа #579662


#0 by Евгений Береза
Здравствуйте, уважаемые коллеги! ПОдскажите, как хранить в элементе справочника СписокЗначений? Реквизиту справочника назначен тип Неопределенный. В этом реквизите хочу хранить Списокзначений
#1 by almar
Список значений надо преобразовать в строку, а строку уже можно сохранять
#2 by Евгений Береза
просто преобразование? А при считывании - обратное преобразование?
#3 by vcv
Не сохранится в реквизите неопределенного типа. Под такой реквизит выделено 22 байта. На хранение ссылок на любые объекты БД хватает, числа/даты тоже можно сохранять, а вот строки режет. Нужно делать строку очень большой или неограниченной длины, и сохранять в ней ЗначениеВСтрокуВнутр(Значение).
#4 by Евгений Береза
понятно! А обратное преобразование - значениеизстрокивнутр?
#5 by Rie
Что в списке значений будет? Если ссылки - то рискуешь ссылочной целостностью. Может, имеет смысл создать подчинённый справочник?
#6 by Евгений Береза
Там хранятся ссылки на фирмы. задачу не буду рассказывать полностью, долго... ПОдчиненный - думаю, не имеет смысла, слишком "жирно" для такой задачки :) А вот как обратно получить этот список значений - пока не получается
#7 by Евгений Береза
ДоступФирмы - это экранный элемент фирмы - реквизит справочника Вот так правильно? А обратная загрузка - вот так? дф = значениеизстрокивнутр(фирмы);
#8 by vcv
Правильно обратно. Только проверь значение реквизита "фирмы". Не обрезается ли он. Если оставил реквизит справочника "неопределенный" - тогда обрезается 22 символа. Нужен реквизит "строка неопределенной длины".
#9 by Евгений Береза
не-не, я реквизит изменил на "строка неопределенной длины". ВОт только как теперь загрузить из строки в экранный элемент? ПОлучается что тип переменной "дф" неопределен...
#10 by Rie
Ну, если на ссылочную целостность начхать, то... "Экранный элемент" - это кто? Поле списка?
#11 by vcv
Если "дф" - это на форме элемент "Поле списка" или "Поле со списком", тогда грузить нужно так: ЗначениеИзСтрокиВнутр(фирмы).Выгрузить(дф)
#12 by Евгений Береза
Да, поле списка! Може, оно у меня криво записывается... сообщить(ТипЗначенияСтр(дф)) после ситывания возвращает неопределенный тип...
#13 by МимохожийОднако
Покажи код полностью. Не стесняйся.
#14 by Евгений Береза
код из под 1с-ки кривым шрифтом блин переносится.. не могу код показать....
#15 by Rie
А переключиться в Конфигураторе на русский перед тем, как код копировать?
#16 by Евгений Береза
#17 by Евгений Береза
да... устал я видать :)
#18 by Евгений Береза
вот этот код - работа при добавлении в списокзначений
#19 by Rie
Всё ж таки подумай над подчинённым справочником. Не знаю, что там вокруг, но подчинённому справочнику тут - самое место. IMHO. доступфирмы - это кто? Поле списка или (я надеюсь на это) переменная со значением типа СписокЗначений? Ну и код, который выполняет обратное преобразование - тоже хотелось бы видеть.
#20 by Евгений Береза
да, доступфирмы - это поле списка на форме вот считывающий код
#21 by Евгений Береза
фирмы - это реквизит справочника
#22 by Rie
Ещё раз - попробуй подчинённые справочники! :-) Но если хочешь извращаться, то // Туда:
#23 by Rie
+ Кстати, на форму можно бросить не просто поле списка, а поле списка с пометками. Если справочник Фирмы небольшой - то красивее будет.
#24 by Евгений Береза
я уже думал о пометках - красоту потом буду наводить! :)
#25 by Евгений Береза
Ура! Получилось! Я все забываю про использование полезных процедур "выгрузить", скорей всего из-за этого были загоны... Спасибо, коллеги!
#26 by temsa
сдается мне вы пытаетесь изобрести велосипед через ктоые все прошли лет 10-11 назад. Не лучше ли юзать 1с82. Или изучить возожности 1с77
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С