Вход | Регистрация

1С:Предприятие ::

Метки:справочники

Тип поля: Справочник. Неопределенный

Я
   jackee
 
19.05.04 - 12:21
Возможно ли узнать (и как) из какого справочника выбрано значение в данной записи, если справочник неопределен в конфигураторе?
т.е. Реквизит:
Тип: Справочник
Вид:""
 
 
   Таня
 
1 - 19.05.04 - 12:27
насколько я знаю, есть метод НазначитьТип(), который и определяет неопределенный тип или что-то подобное
   jackee
 
2 - 19.05.04 - 12:31
(1) Мне надо не назначить а узнать.
Например есть какой-то справочник в котором одно поле имеет тип <<Справочник>>
И естественно может назначатся из разных справочников. Так вот можно ли узнать для каждой записи из какого справочника выбрано это значение
   427
 
3 - 19.05.04 - 12:39
ТипЗначенияСТр
Выбран
ПустоеЗначение
   jackee
 
4 - 19.05.04 - 12:49
(3)
ТипЗначенияСТр Дает мне, что тип "Справочник". Это я и так знаю. Т.к. получил структуру справочника через Метаданные.Справочник("...").Реквизит(ном).Тип
При этом ....Вид у него - пустой. Это я тоже знаю.

Но возможно ли узнать что за справочник для каждой конкретной записи????

Спасибо.
   Valery
 
5 - 19.05.04 - 12:49
Лучше ХХХ.Вид()
   jackee
 
6 - 19.05.04 - 12:55
Так Вид, если подключится через Метаданные - Пустая строка
   Valery
 
7 - 19.05.04 - 12:59
Про метаданные не понял.
Если реквизиту уже присвоено значение, то Реквизит.Вид() должно быть так
   427
 
8 - 19.05.04 - 13:06
А на кой тебе метаданные, если определять надо в каждом конкретном элементе для конкретного реквизита...

Ибо конкретика выбирается в конкретном элементе ....

Если ТипЗначенияСтр(...) = "Справочник" тогда
   Если ...Вид() = "НужныйСправочник"

только по моему, нужно проверить сначала на непустое значение... чтобы на исключение не нарваться....
   jackee
 
9 - 19.05.04 - 13:10
Справ - Имя справочника

СпрН=СоздатьОбъект("Справочник."+Справ);
Спр=Метаданные.Справочник(Справ);
....
СпрН.ВыбратьЭлементы();

Пока СпрН.ПолучитьЭлемент()>0 Цикл
  Для ии=1 по КолвоРеквизитов цикл  
    Если Спр.Реквизит(ии).Тип="Справочник" Тогда
      Сообщить(Спр.Реквизит(ии).Вид+" "+СпрН.ПолучитьАтрибут(Спр.Реквизит(ии).Идентификатор));
    Иначе
        .....
    КонецЕсли;

Так вот. Если в конфигураторе справочник определен четко - Вид есть, Если не определен - то его нет (Пустая строка) Хотя значение передается.

Сообщение:
Торговый дом "ывавы"
   jackee
 
10 - 19.05.04 - 13:21
Все спасибо, получилось.
Не сообразил, что я же получаю тип справочник, и им можно пользоваться так же, как и обычным.
Крутился вокруг да около.
 
  Рекламное место пустует
   GrayT
 
11 - 19.05.04 - 13:24
Все правильно - в конфигураторе вид не задан. Он определен у элемента. Попробуй:
СпрН.ПолучитьАтрибут(Спр.Реквизит(ии).Идентификатор).ВИд())


Список тем форума
Рекламное место пустует   Рекламное место пустует
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Фредерик Брукс-младший
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует