Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Очень популярная тема (более 25 ответов) Получение вида из $ВидДокумента (число прочтений - 28458 )
U_zer
Экс-Участник


Получение вида из $ВидДокумента
02. Июня 2006 :: 06:06
Печать  
Всем привет.

В запросе присутствует следующее:

Max(j.iddocdef) as Док_вид

Так вот, при обходе результатов запроса, в этой колонке стоят числа.

Как вместо этих  чисел получить строку с видом документа?
Повторюсь. На этапе ОБХОДА результатов запроса.
  
Наверх
 
IP записан
 
S.W.A.T.
Junior Member
**
Отсутствует



Сообщений: 42
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Получение вида из $ВидДокумента
Ответ #1 - 02. Июня 2006 :: 06:27
Печать  
А сам документ ты случайно в выборке не получаешь? Улыбка
  
Наверх
ICQ  
IP записан
 
U_zer
Экс-Участник


Re: Получение вида из $ВидДокумента
Ответ #2 - 02. Июня 2006 :: 06:55
Печать  
Канэшна получаю! Но если бы все было так просто, я бы и не спрашивал.
Мне нужно построить отчет типа:

Вид документа
     Документы ....

А у меня получается

Цыфири
     Документы ....

Некузяво.
  
Наверх
 
IP записан
 
S.W.A.T.
Junior Member
**
Отсутствует



Сообщений: 42
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Получение вида из $ВидДокумента
Ответ #3 - 02. Июня 2006 :: 07:01
Печать  
Перед обходм сформируй ТЗ вида iddocdef | ИмяВКонфигураторе
через обход метаданных и метод GetDocID классса MetaDataWorks
  
Наверх
ICQ  
IP записан
 
U_zer
Экс-Участник


Re: Получение вида из $ВидДокумента
Ответ #4 - 02. Июня 2006 :: 07:05
Печать  
Значит прямого перевода нет, а то я засомневался, типа, быть такого не может ...

Допонял! Спасибо!
  
Наверх
 
IP записан
 
DrACe
1c++ donor
1c++ power user
Отсутствует


1С++ любитель

Сообщений: 447
Местоположение: г. Новосибирск
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Получение вида из $ВидДокумента
Ответ #5 - 02. Июня 2006 :: 07:05
Печать  
Про это уже несколько раз говорилось: ну нету напрямки такой возможности!
Варианты обхода:
1) Сделать на серваке табличку соответствий "циферок" строковым идентификаторам видов и заполнять ее периодически (после реорганизации конфигурации)
2) Собирать текст запроса циклом:
Код
Выбрать все
ТекстОпределенияВида = "CASE ВидДокументаЧислом";
Для Сч = 1 По Метаданные.Документ() Цикл
    Ид = Метаданные.Документ(Сч).Идентификатор;
    ТекстОпределенияВида = ТекстОпределенияВида + "
        |WHEN $ВидДокумента." + Ид + " THEN '" + Ид + "'";
КонецЦикла;
ТекстОпределенияВида = ТекстОпределенияВида + "
    |ELSE '' END AS ВидДокументаВКонфигураторе"; 

  
Наверх
 
IP записан
 
Славко
Senior Member
****
Отсутствует



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Получение вида из $ВидДокумента
Ответ #6 - 02. Июня 2006 :: 07:05
Печать  
S.W.A.T. писал(а) 02. Июня 2006 :: 07:01:
Перед обходм сформируй ТЗ вида iddocdef | ИмяВКонфигураторе
через обход метаданных и метод GetDocID классса MetaDataWorks

человека интересует именно в запросе...
кстати я бы тоже не отказался узнать в какой из таблиз есть строковое соответсвие "иддокдфу", допустим наименования объектов получить то непроблема, а вот строковые идентификаторы фида хотелось  бы, пока не было времени расковырять эту проблему, или оно нигде не хранится кроме как в MD?
  

Ламер, самый обычный ламер...    сначала мы ...   а потом мы ...
Наверх
wwwICQ  
IP записан
 
DrACe
1c++ donor
1c++ power user
Отсутствует


1С++ любитель

Сообщений: 447
Местоположение: г. Новосибирск
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Получение вида из $ВидДокумента
Ответ #7 - 02. Июня 2006 :: 07:08
Печать  
Цитата:
...или оно нигде не хранится кроме как в MD?

думаю, что это наиболее вероятно
  
Наверх
 
IP записан
 
S.W.A.T.
Junior Member
**
Отсутствует



Сообщений: 42
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Получение вида из $ВидДокумента
Ответ #8 - 02. Июня 2006 :: 07:14
Печать  
Цитата:
S.W.A.T. писал(а) 02. Июня 2006 :: 07:01:
Перед обходм сформируй ТЗ вида iddocdef | ИмяВКонфигураторе
через обход метаданных и метод GetDocID классса MetaDataWorks

человека интересует именно в запросе...
кстати я бы тоже не отказался узнать в какой из таблиз есть строковое соответсвие "иддокдфу", допустим наименования объектов получить то непроблема, а вот строковые идентификаторы фида хотелось  бы, пока не было времени расковырять эту проблему, или оно нигде не хранится кроме как в MD?


Да? Я наверно читать разучился
Цитата:
Повторюсь. На этапе ОБХОДА результатов запроса.
  
Наверх
ICQ  
IP записан
 
U_zer
Экс-Участник


Re: Получение вида из $ВидДокумента
Ответ #9 - 02. Июня 2006 :: 07:43
Печать  
Да ладно, чего я, совсем тормоз чтоли, если бы мне это в запросе надо было,
я бы написал нечто типа
case when j.iddocdef = $ВидДокумента.Перемещение then 'Перемещение' else '' end

Тока так делать ненужно, потому что есть iddocdef.

А загнать соответствие можно и в СписокЗначений. Так даже быстрее.

Сп.Установить(MW.GetDocID(Метаданные.Документ(К)), Метаданные.Документ(К).Идентификатор)

А потом прямо в ячейке таблицы Сп.Получить(Цыфирь) и все дела.
  
Наверх
 
IP записан
 
Славко
Senior Member
****
Отсутствует



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Получение вида из $ВидДокумента
Ответ #10 - 02. Июня 2006 :: 08:11
Печать  
сорри, неверно прочел тему...
на этапе обхода ваще проще простого Док.Вид()
и все, даже 1С++ не нужно привлекать, документы то ты получаешь...
  

Ламер, самый обычный ламер...    сначала мы ...   а потом мы ...
Наверх
wwwICQ  
IP записан
 
S.W.A.T.
Junior Member
**
Отсутствует



Сообщений: 42
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Получение вида из $ВидДокумента
Ответ #11 - 02. Июня 2006 :: 08:15
Печать  
Цитата:
сорри, неверно прочел тему...
на этапе обхода ваще проще простого Док.Вид()
и все, даже 1С++ не нужно привлекать, документы то ты получаешь...


ИМХО, в запросе получются итоги по видам документов  и обход идет по группировкам, так что просто Док.Вид() будет использовать неудобно
  
Наверх
ICQ  
IP записан
 
Славко
Senior Member
****
Отсутствует



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Получение вида из $ВидДокумента
Ответ #12 - 02. Июня 2006 :: 08:17
Печать  
S.W.A.T. писал(а) 02. Июня 2006 :: 08:15:
ИМХО, в запросе получются итоги по видам документов  и обход идет по группировкам, так что просто Док.Вид() будет использовать неудобно

хо за 2 сек. те приведу цикл с удобно и именно с Док.Вид()
без всяких лишнихъ там заполнений и соответсвий...
  

Ламер, самый обычный ламер...    сначала мы ...   а потом мы ...
Наверх
wwwICQ  
IP записан
 
S.W.A.T.
Junior Member
**
Отсутствует



Сообщений: 42
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Получение вида из $ВидДокумента
Ответ #13 - 02. Июня 2006 :: 08:18
Печать  
Цитата:
S.W.A.T. писал(а) 02. Июня 2006 :: 08:15:
ИМХО, в запросе получются итоги по видам документов  и обход идет по группировкам, так что просто Док.Вид() будет использовать неудобно

хо за 2 сек. те приведу цикл с удобно и именно с Док.Вид()
без всяких лишнихъ там заполнений и соответсвий...


Цикл в студию Улыбка Входные данные:
ТЗ вида:     Док_вид  |   Док   | Сумма
                  1528      |  NULL   | 1000
                  1528      |  Док1   | 300
                  1528      |  Док2   | 700
                  1347      |  NULL   | 2000
                  1347      |  Док3   | 1800
                  1347      |  Док4   | 200
  
Наверх
ICQ  
IP записан
 
Славко
Senior Member
****
Отсутствует



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Получение вида из $ВидДокумента
Ответ #14 - 02. Июня 2006 :: 08:23
Печать  
пажаласта, но это эскиз моих всех подобных циклов, условие что ТЗ уже подготовлена и она отсортирована как нада, именно типа по IDDOCDEF:
Код
Выбрать все
ВидДока="";
ТЗ.ВыбратьСтроки()
Пока ТЗ.ПолучитьСтроку()=1 Цикл
ТекВид=ТЗ.Док.Вид();
Если ТекВид<>ВидДока Тогда
Таб.ВывестиСекцию("ВидДокумента");
КонецЕсли;
Таб.ВывестиСекцию("Документ");
КонецЦикла; 


думаю идея понятна...
  

Ламер, самый обычный ламер...    сначала мы ...   а потом мы ...
Наверх
wwwICQ  
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать