Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
19 апр 2024, 05:57

Как выбрать ОПРЕДЕЛЕННЫЙ документ за период

Автор Chuchi, 13 апр 2011, 20:12

0 Пользователей и 1 гость просматривают эту тему.

Chuchi

наверно предыдущая тема уже не правильная.(...
попробую снова
задача: выбрав на форме из Поля ТипДокумента в результате Отчета вывести все оформленные документы с таким типом за указанный диапазон
нашла следующий код

Запрос = Новый Запрос;
   ТекстЗапроса = "";
   Для Каждого Элем Из Метаданные.Документы цикл
       ТекстЗапроса = ТекстЗапроса + "
       |ВЫБРАТЬ
       | Ссылка,
       | Дата
       |ИЗ
       | Документ." + Элем.Имя + "
       |ГДЕ
       | Дата МЕЖДУ &НачДата И &КонДата
       |ОБЪЕДИНИТЬ ВСЕ";
   КонецЦикла;
   
   ТекстЗапроса = Лев(ТекстЗапроса,СтрДлина(ТекстЗапроса) - 15);
   ТекстЗапроса = ТекстЗапроса + "
   |УПОРЯДОЧИТЬ ПО
   | Дата";
   
   Запрос.Текст = ТекстЗапроса;
   Запрос.УстановитьПараметр("НачДата",НачДата);
   Запрос.УстановитьПараметр("КонДата",КонДата);

Но этот код выводит ВСЕ документы..
в каком месте и КАК мне необходимо указать какой именно ТипДокумента нужно выводить... :trhregerhg:

Chuchi

Попробовала так
Для Каждого Элем Из Метаданные.Документы[ТипДокумента] цикл

но пишет что Итератор не верный

has


Для Каждого Элем Из Метаданные.Документы цикл
        ТекстЗапроса = ТекстЗапроса + "
        |ВЫБРАТЬ
        | Документ.Ссылка,
        | Документ.Дата
        |ИЗ
        | Документ." + Элем.Имя + " КАК Документ
        |ГДЕ
        | Документ.Дата МЕЖДУ &НачДата И &КонДата
        |ОБЪЕДИНИТЬ ВСЕ";
    КонецЦикла;

Klyacksa

Приветствую!
Цитироватьв каком месте и КАК мне необходимо указать какой именно ТипДокумента нужно выводить...
Цикл перебирает все возможные документы. Чтобы получить только нужный тип - нужно сделать свой цикл по нужным документам (если необходимо несколько типов обработать), либо вообще убрать цикл и вставить нужный тип (это если нужен один тип документов).
В строчке
| Документ." + Элем.Имя + " КАК Документ
переменной Элем.Имя как раз и подставляется тип документа. Можем вместо него подставить нужный - например, РТУ:
| Документ." + "РеализацияТоваровУслуг" + " КАК Документ
ну и если нужен один документ, то смело убираем ненужное объединение, обрезание текста...
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Chuchi

Попробовал вот так

Процедура ДокументыВывести()
    Запрос = Новый Запрос;
Для Каждого Элем Из Метаданные.Документы цикл
        ТекстЗапроса = ТекстЗапроса + "
        |ВЫБРАТЬ
        | Документ.Ссылка,
        | Документ.Дата
        |ИЗ
        | Документ." + Элем.Имя + " КАК Документ
        |ГДЕ
        | Документ.Дата МЕЖДУ &НачДата И &КонДата
        |ОБЪЕДИНИТЬ ВСЕ";
    КонецЦикла;


    
    Запрос.Текст = ТекстЗапроса;
    Запрос.УстановитьПараметр("НачалоПериода",НачалоПериода);
    Запрос.УстановитьПараметр("КонецПериода",КонецПериода);
   ЭлементыФормы.Результат.Очистить();

   ТекстЗапроса.Выполнить();
   ТекстЗапроса.РазмещениеИзмеренийВСтроках = ТипРазмещенияИзмерений.Вместе;
   ТекстЗапроса.РазмещениеРеквизитовИзмеренийВСтроках = ТипРазмещенияРеквизитовИзмерений.Отдельно;
   ТекстЗапроса.РазмещениеРеквизитовИзмеренийВКолонках = ТипРазмещенияРеквизитовИзмерений.Отдельно;
   ТекстЗапроса.МакетОформления = ПолучитьМакетОформления(СтандартноеОформление.Лето);
   ТекстЗапроса.Макет = ОтчетОбъект.ПолучитьМакет("РеестрДокументов");
   ТекстЗапроса.ОформитьМакет();
   ТекстЗапроса.Вывести(ЭлементыФормы.Результат);
КонецПроцедуры   


Но пишет что Преобразование значения к типу Число не может быть выполнено
        ТекстЗапроса = ТекстЗапроса + "

Klyacksa

Ну как минимум, нужно проинициализировать переменную ТекстЗапроса
ТекстЗапроса="";
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Chuchi

Получилось вот так

Процедура ДокументыВывести()
    ЭлементыФормы.Результат.Очистить();
   
    ТекстЗапроса.Текст = "
    |ВЫБРАТЬ
    | Ссылка,
    | Дата
    |ИЗ
    | Документ." + ТипДокумента + "
    |ГДЕ
    | Дата МЕЖДУ &НачДата И &КонДата
    |УПОРЯДОЧИТЬ ПО
    | Дата";
   
    ТекстЗапроса.ЗаполнитьНастройки(); 
    ТекстЗапроса.Параметры.Вставить("НачалоПериода",НачалоПериода);
    ТекстЗапроса.Параметры.Вставить("КонецПериода",КонецПериода);
   
    ТекстЗапроса.РазмещениеИзмеренийВСтроках = ТипРазмещенияИзмерений.Вместе;
    ТекстЗапроса.РазмещениеРеквизитовИзмеренийВСтроках = ТипРазмещенияРеквизитовИзмерений.Отдельно;
    ТекстЗапроса.РазмещениеРеквизитовИзмеренийВКолонках = ТипРазмещенияРеквизитовИзмерений.Отдельно;
    ТекстЗапроса.МакетОформления = ПолучитьМакетОформления(СтандартноеОформление.Лето);
    ТекстЗапроса.Макет = ОтчетОбъект.ПолучитьМакет("РеестрДокументов");
    ТекстЗапроса.ОформитьМакет();
    ТекстЗапроса.Вывести(ЭлементыФормы.Результат);
   
КонецПроцедуры


СПАСИБО БОЛЬШОЕ ЗА СОДЕЙСТВИЕ

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск