8.х Выборка всех Документов

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

  1. TopicStarter Overlay
    alp
    Offline

    alp Опытный в 1С

    Регистрация:
    8 янв 2009
    Сообщения:
    432
    Симпатии:
    0
    Баллы:
    26
    Доброе время суток. Подскажите как выбрать все документы за период?? Например за март.
  2. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Вот

  3. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Конфигурация какая? В типовых есть реестр документов.

    Если самописка - то надо писать запрос, собираемый программно по метаданным.
  4. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Вот примерно запросом можно так

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

    alp Опытный в 1С

    Регистрация:
    8 янв 2009
    Сообщения:
    432
    Симпатии:
    0
    Баллы:
    26
    Одну реализацию можно выбрать и без запроса:
    Код:
    Выборка=Документы.РеализацияТоваровИУслуг.Выбрать(НачДата,КонДата);
    
    
    А как выбрать все документы ?
  6. smrtdrv
    Offline

    smrtdrv

    Регистрация:
    25 мар 2010
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    вот так может
    Код:
    Для Д = 0 По Метаданные.Документы.Количество()-1 Цикл
    ОбъектМетаданныхДокумент = Метаданные.Документы.Получить(Д);
    Выборка = Документы[ОбъектМетаданныхДокумент.Имя].Выбрать();
    Пока Выборка.Следующий() Цикл
    
    КонецЦикла; 
    КонецЦикла;
    
    
  7. Itsys
    Offline

    Itsys Опытный в 1С

    Регистрация:
    3 янв 2010
    Сообщения:
    1.394
    Симпатии:
    0
    Баллы:
    26
    А в чем задача? Зачем их все выбирать?
  8. TopicStarter Overlay
    alp
    Offline

    alp Опытный в 1С

    Регистрация:
    8 янв 2009
    Сообщения:
    432
    Симпатии:
    0
    Баллы:
    26
    мне нужно что бы документы выводились последовательно , как они забиты в базе...

    Нужно написать выгрузку нескольких документов из УТ. :)
  9. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Имеется ввиду в хронологической полседовательности? Зачем? Разве после переноса нельзя перепровести и востановить последовательность
  10. TopicStarter Overlay
    alp
    Offline

    alp Опытный в 1С

    Регистрация:
    8 янв 2009
    Сообщения:
    432
    Симпатии:
    0
    Баллы:
    26
    Можно , я в 8 не такой спец, я просто думал что это возможно и это просто, как в 77.

    Но есть одна причина по которой ваш вариант не подходить, это если в бухе включенно редактирование операции в ручную...проведение всех документов не допускается.
  11. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Первый раз такое слышу, но в любом случает, если стандартное перепроведение не работает, Групповой обработкой всегда мождно все перепровести
  12. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Если есть корректировка вручную - то действительно не стоит перепроводить.
    Но, в 99% случаев, правка вручную движений свидетельствует о неверном ведении учета.
  13. TopicStarter Overlay
    alp
    Offline

    alp Опытный в 1С

    Регистрация:
    8 янв 2009
    Сообщения:
    432
    Симпатии:
    0
    Баллы:
    26
    Написал вот как :
    Код:
    Запрос=Новый Запрос;
    Текст="";
    Для Каждого Документ Из Метаданные.Документы <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/цикл')">Цикл	</span>
    Текст=Текст+"ВЫБРАТЬ МояТаблица.Ссылка КАК ДокументСсылка ИЗ Документ."+Документ.Имя+" КАК МояТаблица ОБЪЕДИНИТЬ ";
    КонецЦикла;
    Запрос.Текст=Лев(Текст,СтрДлина(Текст)-СтрДлина(" ОБЪЕДИНИТЬ "));
    Текст=Запрос.Текст;
    Текст=Текст+" ГДЕ ";
    Для Каждого Документ Из Метаданные.Документы <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/цикл')">Цикл	</span>
    Текст=Текст+" МояТаблица.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&НачПериода, ДЕНЬ) И КОНЕЦПЕРИОДА(&КонПериода, ДЕНЬ)И МояТаблица.Проведен И ";
    КонецЦикла;
    Запрос.Текст=Лев(Текст,СтрДлина(Текст)-СтрДлина(" И "));
    Запрос.УстановитьПараметр("НачПериода",НачДата);	Запрос.УстановитьПараметр("КонПериода",КонДата);
    Выборка=Запрос.Выполнить().Выбрать();  
    Сообщить(Выборка.Количество());
    
    
    
    Всеравно не работает, выбтрает все документы ... , помогите разобраться с запросом.
  14. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Код:
    ТекстЗапроса = "ВЫБРАТЬ    Документы.Ссылка ИЗ    (";
    Для Каждого Документ Из Метаданные.Документы Цикл
    ТекстЗапроса = ТекстЗапроса + "ВЫБРАТЬ " + Документ.Имя + ".Ссылка КАК Ссылка, " + Документ.Имя + ".Дата КАК Дата    
    |ИЗ Документ." + Документ.Имя + " КАК " + Документ.Имя + " 
    |ГДЕ " + Документ.Имя + ".Дата МЕЖДУ НАЧАЛОПЕРИОДА(&НачПериода, ДЕНЬ) И КОНЕЦПЕРИОДА(&КонПериода, ДЕНЬ) 
    |     И " + Документ.Имя + ".Проведен ОБЪЕДИНИТЬ ВСЕ ";
    КонецЦикла;
    ТекстЗапроса = ТекстЗапроса + "ВЫБРАТЬ NULL, NULL ) КАК Документы ГДЕ НЕ Документы.Ссылка ЕСТЬ NULL УПОРЯДОЧИТЬ ПО Документы.Дата";
    
    
    
    а если с таким текстом запроса? Ну естественно там надо параметры установить НачПериода, КонПериода. И выполнить сам запрос.
  15. TopicStarter Overlay
    alp
    Offline

    alp Опытный в 1С

    Регистрация:
    8 янв 2009
    Сообщения:
    432
    Симпатии:
    0
    Баллы:
    26
    запрос гугается на синтаксис.
  16. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    а что у вас там за бэкслэши?
  17. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Не обращайте внимания :) Это парсер плохо цитирует выделенный код :)
  18. shurikvz
    Offline

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

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

    Полный текст процедуры. У меня не ругается. Что у вас говорит?


    BabySG Ааа.. :)
  19. TopicStarter Overlay
    alp
    Offline

    alp Опытный в 1С

    Регистрация:
    8 янв 2009
    Сообщения:
    432
    Симпатии:
    0
    Баллы:
    26
    У меня ругается : " неоднозначное поле ЧекККМ.Дата"
  20. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    У вас в документе "ЧекККМ" есть реквизит "ЧекККМ"?

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