Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) Индекс вида справочника (число прочтений - 2807 )
Burlak
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 65
Зарегистрирован: 28. Апреля 2008
Индекс вида справочника
01. Сентября 2008 :: 05:17
Печать  
Как можно получить в программе 4-х символьный индекс вида справочника, такой, что находится в 13-символьном ID объекта. (Нужно различить принадлежность записи к Справочник.Номенклатура и Справочник.Материалы). Можно ли это сделать через метаданные?
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Индекс вида справочника
Ответ #1 - 01. Сентября 2008 :: 05:45
Печать  
Код
Выбрать все
$ВидДокумента36.ТвойСправочник 

  
Наверх
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Индекс вида справочника
Ответ #2 - 01. Сентября 2008 :: 06:43
Печать  
Видимо имелось ввиду ВидСправочника36  Улыбка
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Индекс вида справочника
Ответ #3 - 01. Сентября 2008 :: 06:51
Печать  
Да - именно так...
Я просто как раз запрос рисовал с $ВидДокумента36 ну и соответственно на автомате написал
  
Наверх
IP записан
 
Burlak
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 65
Зарегистрирован: 28. Апреля 2008
Re: Индекс вида справочника
Ответ #4 - 02. Сентября 2008 :: 07:28
Печать  
> leshik
> $ВидСправочника36.ТвойСправочник
Подскажите пожалуйста и где этот код использовать (SELECT?)
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Индекс вида справочника
Ответ #5 - 02. Сентября 2008 :: 08:09
Печать  
А в каком надо?
Покажи текст запроса - подскажем куда вставить или давай задачу.
  
Наверх
IP записан
 
Burlak
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 65
Зарегистрирован: 28. Апреля 2008
Re: Индекс вида справочника
Ответ #6 - 02. Сентября 2008 :: 09:26
Печать  
>leshik
>А в каком надо?...
Надо то вот что :
...
Перем str_ВидСправочника;
...
str_ВидСправочника=f_Вид???("Справочник.Номенклатура");

или, что логически более правильно
mdw=CreateObject("MetaDataWork");
str_ВидСправочника=mdw.ВидСправочника36("Справочник.Номенклатура");
  
Наверх
 
IP записан
 
Burlak
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 65
Зарегистрирован: 28. Апреля 2008
Re: Индекс вида справочника
Ответ #7 - 02. Сентября 2008 :: 09:54
Печать  
>leshik
>...Покажи текст запроса ...

Вот он
  //-- Вычислим индекс вида Справочник.Номенклатура
    Select="
     |SELECT TOP 1
     |  $ВидСправочника36.Номенклатура as Id";
    From="
     | FROM
     |   $Справочник.Номенклатура
     | ORDER BY Id";
    Where= "";
    ТекстЗапроса = Select+From+Where;

    Попытка
     ТЗ=cmdOLEDB.ВыполнитьИнструкцию(ТекстЗапроса);
    Исключение
     Предупреждение("Ошибка построения индекса вида справочника Номенклатура");
     Возврат;
    КонецПопытки;
    Если ТЗ.КоличествоСтрок()=0 Тогда
     Предупреждение("Ошибка построения индекса вида справочника Номенклатура");
     Возврат;
    КонецЕсли;

    id_ВидНоменклатура=ТЗ.ПолучитьЗначение(1,1); //-- id_ВидНоменклатура <-- индекс вида
  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Индекс вида справочника
Ответ #8 - 02. Сентября 2008 :: 10:11
Печать  
Не понял запрос.
Чтобы получить вид спр. не нужен запрос :
Код
Выбрать все
локМД=СоздатьОбъект("MetaDataWork");
 ИмяТаблицы=локМД.ИмяТаблицыСправочника("Номенклатура");
 


В запросах использует например
Код
Выбрать все
WHERE
  LEFT($МойДокумент.ЮрФизЛицо,4) = $ВидСправочника36.СвоиЮрЛица 


- отобрать только своих юр лиц
Можно поиском - там куча примеров
  
Наверх
 
IP записан
 
Burlak
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 65
Зарегистрирован: 28. Апреля 2008
Re: Индекс вида справочника
Ответ #9 - 02. Сентября 2008 :: 10:37
Печать  
>kiruha
>Не понял запрос. ...
Нужет 4-х символьный идентификатор (индекс) ВидаСправочника, тот что входит в 13-ти символьный ID элемента Справочника.
У меня есть документ - ТехнологическаяКарта. В строках табличной части есть поле Материал, оно заполняется ID элементов из справочников Номенклатура и Материалы.
Решение кажется нашел:
...
mdw=CreateObject("MteDataWork");
...
id_ВидНоменклатура=_IdToStr(mdw.ИДСправочника("Номенклатура"));
  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Индекс вида справочника
Ответ #10 - 02. Сентября 2008 :: 10:55
Печать  
Так наверно универсальней и проще Улыбка (berezdetsky подсказал)
Код
Выбрать все
id_ВидНоменклатура=mdw.ОбрМетаСКЛ("$ВидСправочника36.Номенклатура") 

  
Наверх
 
IP записан
 
Burlak
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 65
Зарегистрирован: 28. Апреля 2008
Re: Индекс вида справочника
Ответ #11 - 02. Сентября 2008 :: 12:54
Печать  
>kiruha
>Так наверно универсальней и проще ...
Здорово! Снимаю шляпу. Ай да молодцы.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать