8.х обработка документов

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Dmitrij, 16 окт 2009.

  1. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Подскажите как организовать цикл по выбору типов документов. Например мне нужен документ эл письмо
  2. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    эээээ, не понял :unsure:

    Вам нужен цикл по всем документам в конфе, или работать с документом конкретного типа?
  3. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    По всем, к примеру как в 7.7
    Код:
    Док=СоздатьОбъект("Документ.ПриходнаяНакладная");
    Док.ВыбратьДокументы(ДатаНачала,ДатаКонца);
    Пока Док.ПолучитьДокумент()>0 Цикл
    
    Но только здесь по приходным, а мне нужно по всем
  4. wertklop
    Offline

    wertklop Опытный в 1С

    Регистрация:
    12 май 2008
    Сообщения:
    321
    Симпатии:
    0
    Баллы:
    26
    попробуй использовать ф-цию ТипЗнч("Документ.ПриходнаяНакладная") или Тип("Документ.ПриходнаяНакладная")
    а чтобы перебирать все документы конфигурации, то мне кажется проще использовать метаданные
  5. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Понял вопрос

    Вот так вот
    Код:
    Для каждого ДокументКонкретногоТипа Из Документы Цикл
    
    ДокументыВыборка = ДокументКонкретногоТипа.Выбрать(Дата("20080101000000"), Дата("20090201000000"), , );
    
    Пока ДокументыВыборка.Следующий() Цикл
    
    //<Выполняем обработку документов>
    Сообщить(ДокументыВыборка.Ссылка);
    
    КонецЦикла; 
    
    КонецЦикла; 
    
    Обратите внимание!


    Вы не правы

    Читайте внимательно выдержку из справки

  6. wertklop
    Offline

    wertklop Опытный в 1С

    Регистрация:
    12 май 2008
    Сообщения:
    321
    Симпатии:
    0
    Баллы:
    26
    вы приводите пример как обработать документы конкретного типа, а ему, насколько я понял нужен список типов документов, а это уже другой вопрос, методы по которому я уже привер(см. выше)
  7. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    а как перебрать все документы одного типа
  8. wertklop
    Offline

    wertklop Опытный в 1С

    Регистрация:
    12 май 2008
    Сообщения:
    321
    Симпатии:
    0
    Баллы:
    26
    так тебе же mialord привёл пример
  9. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Код:
    Процедура КнопкаВыполнитьНажатие(Кнопка)
    Док=Документы.ЭлектронноеПисьмо;
    
    Для Каждого Док Из Документы Цикл
    ДокументыВыборка=Док.Выбрать(Дата(НачалоДня(ТекущаяДата())),Дата(КонецДня(ТекущаяДата())),,);
    Пока ДокументыВыборка.Следующий() Цикл
    
    Сообщить(ДокументыВыборка.Ссылка);
    
    КонецЦикла
    
    КонецЦикла;
    
    
    
    КонецПроцедуры
    
    
    Мне нужно обрабатывать только эл письма, а этот цикл обрабатывает вообще все доки
  10. wertklop
    Offline

    wertklop Опытный в 1С

    Регистрация:
    12 май 2008
    Сообщения:
    321
    Симпатии:
    0
    Баллы:
    26
    попробуй так:
    Процедура КнопкаВыполнитьНажатие(Кнопка)
    выборка=Документы.ЭлектронноеПисьмо.выбрать(НачалоДня(ТекущаяДата()),КонецДня(ТекущаяДата()));
    пока выборка.следующий() цикл
    Сообщить(выборка.ссылка);
    КонецЦикла;
    КонецПроцедуры
  11. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Вообще удобнее запросом :) Чем перебором. Но тут правильно написали
    Код:
    Выборка = Документы.ВИДДОКУМЕНТА.Выбрать(ДатаНачала, ДатаКонца);
    Пока Выборка.Следующий() Цикл
    
    // Тут любой код получения ссылок, объектов, обработки и т.д.
    ДокСсылка = Выборка.Ссылка;
    ДокОбъект = Выборка.ПолучитьОбъект();
    
    КонецЦикла;
    
    
    

Поделиться этой страницей