Имя: Пароль:
1C
 
Помогите с запросом
,
0 inkvizitr
 
12.07.17
10:26
запросом перебираю все виды документов, и вытягиваю с них поля дата и номер, есть документы у которых нет реквизита "номер", что надо вписать такое чтобы данное поле чем то заткнуть

ВсегоДокументов = Метаданные.Документы;
    КоличествоДокументов = ВсегоДокументов.Количество();
    Сч = 1;
    ТекстЗапроса = "";
    Для Каждого Док Из ВсегоДокументов Цикл
        ТекстЗапроса = ТекстЗапроса +         // Для каждого документа формируем текст запроса к его таблице
        "ВЫБРАТЬ                            
        |    Док.Дата КАК Дата,
        |    ЕСТЬNULL(ВЫРАЗИТЬ(Док.Номер КАК Строка), ""нет номера"") КАК НомерДокумента
        |ИЗ
        |    Документ."+Док.Имя+" КАК Док";  // В текст запроса нам необходимо лишь подставить имя таблицы документа в дереве метаданных
        
        Если Сч < КоличествоДокументов Тогда // Если документ не последний в коллекции - добавляем инструкцию "ОБЪЕДИНИТЬ ВСЕ" для
            ТекстЗапроса = ТекстЗапроса +     // объединения результатов запросов по документам в единый список
            "
            |ОБЪЕДИНИТЬ ВСЕ
            |";
        КонецЕсли;            
        Сч = Сч + 1;
    КонецЦикла;
1 inkvizitr
 
12.07.17
10:27
проблема с полем "НомерДокумента" все перепробовал, что то сообразить не могу
2 1dvd
 
12.07.17
10:29
ничего не понял. Зачем его затыкать?
3 inkvizitr
 
12.07.17
10:31
(2) есть документы в которых нет реквизита Номер, и когда я выполняю

    Запрос = Новый Запрос;
    Запрос.Текст = ТекстЗапроса;
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выгрузить()

Мне система говорит что в таком то документе отсутствует поля Номер и все сыпется
4 inkvizitr
 
12.07.17
10:32
(2) что с делать такое чтобы система грязно не ругалась
5 Lexey_
 
12.07.17
10:32
(3) ну проверяй наличие реквизита, если его нет, выбирай пустую строку
6 aleks_default
 
12.07.17
10:33
!есть документы у которых нет реквизита "номер",! Чта?
7 1dvd
 
12.07.17
10:33
(4) ну, проверяй наличие этого реквизита у метаданных и подставляй запрос

       "ВЫБРАТЬ                            
        |    Док.Дата КАК Дата,
        |    NULL КАК НомерДокумента
        |ИЗ
        |    Документ."+Док.Имя+" КАК Док";  // В текст запроса нам необходимо лишь подставить имя таблицы документа в дереве метаданных
8 inkvizitr
 
12.07.17
10:34
(2) т.е. у меня текст запроса строится программно, и цикл подставляет строку номер даже тем документам у которых нет номера
9 youalex
 
12.07.17
10:34
Смотри через метаданные ДлинаНомера = 0
10 youalex
 
12.07.17
10:34
(9) хотя такого не может быть
11 youalex
 
12.07.17
10:35
(10) может))
12 Бубр
 
12.07.17
10:38
(0) через  метаданные обходи
13 inkvizitr
 
12.07.17
10:39
(10) может
14 inkvizitr
 
12.07.17
10:40
(12) щас через метаданные действительно попробую буду проверять на наличие реквизита
15 1dvd
 
12.07.17
10:41
может, может. Только нахрена...
16 inkvizitr
 
12.07.17
10:45
(15) надо так, там запрос будет сложнее, я просто как бы его каркас собираю, чета через метеоданные не могу найти номер, чтобы с помощью него условие наложить на появления колонки "номер" в запросе
17 1dvd
 
12.07.17
10:46
(16) см (9)
18 inkvizitr
 
12.07.17
10:48
(17) точно не увидел, спс тебе добрый человек, ща попробую
19 inkvizitr
 
12.07.17
10:58
Мужики!!! спасибо. все взлетело
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан