Имя: Пароль:
1C
1С v8
Как перебрать все документы без вида?
0 Elf56
 
18.04.14
10:10
Вобщем нужно выбрать все документы за период какие есть в базе.

Но не определеного типа например ЗаказКлиента а вобще всех.

В 7.7 это делается легко

Док = СоздатьОбъект("Документ");
ДОк.Выбрать(ДатаНач, ДатаКон);

Примерно так выбирает вобще все документа а как это сделать на 1с 8.2?

потому как на

ВыборкаДокументов = Документы.Выбрать(ДатаНачала,ДатаКонца);
Пока ВыборкаДокументов.Следующий() Цикл

выдает ошибку

Всем заранее спасибо
1 ДенисЧ
 
18.04.14
10:10
Через метаданные
2 Wobland
 
18.04.14
10:11
собрать запрос по кускам, выполнить, выбрать. а на зачем?
3 ptiz
 
18.04.14
10:11
Зачем?
4 Wobland
 
18.04.14
10:11
клюшки головного мозга ©
5 Elf56
 
18.04.14
10:13
(1) это как ?
6 FIXXXL
 
18.04.14
10:20
(4) не ругайся, бывает нужно
если одноразово: цикл по Мета.Доки и запрос с переменной, которая имя дока
7 DexterMorgan
 
18.04.14
10:22
(6) текст запроса формируй в цикле обхода по метаданным
8 Рэйв
 
18.04.14
10:25
Для Каждого Мен Из Документы Цикл
   Имя=Мен.Пустаяссылка().Метаданные().Имя;
    Запрос=Новый Запрос("Выбрать Док.ссылка Из Документ."+Имя+" КАК Док")
    тРез=Запрос.Выполнить().Выгрузить();
    Для Каждого  Стр Из тРез Цикл
        Сообщить(Стр.Ссылка);
    Конеццикла;
КонецЦикла;
9 Elf56
 
18.04.14
10:30
Сделал немного по другому

Для К = 0 По Метаданные.Документы.Количество() - 1 Цикл
         Документ = Метаданные.Документы.Получить(К);
         Имя = Документ.Имя;
         ВыборкаДок = Документы[Имя].Выбрать(ДатаНачала,ДатаКонца);
         // дальше обход выборки и удаление
        Пока ВыборкаДок.Следующий() Цикл
            Сообщить(ВыборкаДок.Ссылка);
            
            
        КонецЦикла;
        
    КонецЦикла;

Но только теперь другой вопрос как выбрать документы по определенному реквизиту? т.е. скажем нужно чтобы выбрались только те документы в которых есть реквизит организация и где этот реквизит равен определенному значению?
10 Рэйв
 
18.04.14
10:30
(9)Запросом
11 v4442
 
18.04.14
10:32
код от Чистова

   Запрос = Новый Запрос;
    ФлагПервыйВход = Истина;
    Запрос.Текст = "ВЫБРАТЬ ВложенныйЗапрос.Ссылка ИЗ (";
    Для каждого Док из Метаданные.Документы Цикл

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

    Запрос.Текст = Запрос.Текст + ") КАК ВложенныйЗапрос УПОРЯДОЧИТЬ ПО ВложенныйЗапрос.Ссылка.Дата";
    Запрос.УстановитьПараметр("НачДата", НачалоДня(ДатаНачалаБП1));
    Запрос.УстановитьПараметр("КонДата", КонецДня(ДатаОкончанияБП1));
    РезультатЗапроса = Запрос.Выполнить();
    Выборка = РезультатЗапроса.Выбрать();
    
    Пока Выборка.Следующий() Цикл

    КонецЦикла;
12 John83
 
18.04.14
10:32
(9) воистину семерочник :)
13 Elf56
 
18.04.14
10:35
Это то все сделал а по поводу последнего моего вопроса где выбрать все только если там есть определенный реквизит? с определенным значением?
14 Elf56
 
18.04.14
10:37
Пробую вот так

МетаданныеДокумента = Документы[Имя].Метаданные();
        ИмяРеквизита = "Организация";
        Если МетаданныеДокумента.Реквизиты.Найти(ИмяРеквизита) = Неопределено Тогда
            Продолжить;
        КонецЕсли;

ошибку выдает
15 v4442
 
18.04.14
10:37
(12) воистину пятёрочник, покажи мастер класс
16 Рэйв
 
18.04.14
10:38
(15)Тоже семерочник?:-)  За державу обидно?
17 Рэйв
 
18.04.14
10:39
(14) текст ошибки из астрала брать?
18 Господин ПЖ
 
18.04.14
10:40
(14) щас окажется что это в тонком клиенте поиски ведутся...

но тогда бы и Запрос сломался бы
19 Рэйв
 
18.04.14
10:41
(18)Скорее всего его Документы[Имя].Метаданные()
шлет лесом,т.к. оно вроде как только от ссылки работает
20 Wobland
 
18.04.14
10:51
искать другое решение задачи вместо этого шизанутого ещё не предлагали?
21 Elf56
 
18.04.14
11:06
Вот ошибка
{Форма.Форма.Форма(34)}: Метод объекта не обнаружен (Метаданные)
        МетаданныеДокумента = Документы[Имя].Метаданные();
22 Elf56
 
18.04.14
11:06
(20) А как сделать? чтобы он выбрал все документы где есть реквизит Организация?
23 Wobland
 
18.04.14
11:11
(22) другим образом
24 Господин ПЖ
 
18.04.14
11:15
(21) в СП не смотришь из принципа? давно у менеджера документов метод Метаданные() появился?
25 Elf56
 
18.04.14
11:17
(24) СП это что такое ?
26 Maxus43
 
18.04.14
11:17
МетаданныеДокумента = Документы[Имя].ПустаяСсылка().Метаданные();
27 Wobland
 
18.04.14
11:17
продам СП. пятничные скидки
28 Maxus43
 
18.04.14
11:17
а лучще
Метаданные.Документы.найти(Имя)
29 Elf56
 
18.04.14
11:22
(26) определяет пустой ли документ ссылка ? или что не пойму
30 Wobland
 
18.04.14
11:22
(29) как насчёт почитать об этом?
31 Господин ПЖ
 
18.04.14
11:23
(30) это не наш метод...

ну и уг этот снеговик
32 Elf56
 
18.04.14
11:23
(30) где?
33 scanduta
 
18.04.14
11:23
(0) Мой вариант. Но работает только с небольшой доработкой конфы. Создаем новый журнал документов. В него Включаем все документы. А потом вытягиваем запросом все что нужно
34 scanduta
 
18.04.14
11:24
Уже из журнала
35 kumena
 
18.04.14
11:25
(11) на упп не будет работать, там больше 256 документов

>> В него Включаем все документы
ахх..ть
36 Wobland
 
18.04.14
11:25
(32) ктрл+ф1. с тебя 500 рублей
37 Maxus43
 
18.04.14
11:25
ЕстьОрганизациия = Документы[Имя].ПустаяСсылка().Метаданные().Реквизиты.найти("Организация") <> Неопределено;
38 FIXXXL
 
18.04.14
11:46
(9) конфа какая?
в стандартных есть функции типа ....Реквизит... и ...РеквизитТабличнойЧасти...