Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Запрос за период собирает все документы          
vadim007 Подменю пользователя
сообщение 04.08.11, 8:37
Сообщение #1

Почти крутой
Иконка группы
Группа: Местный
Сообщений: 1298
Из: Донецк
Спасибо сказали: 208 раз
Рейтинг: 0

Нужно с помощью запроса выбрать все приходные документа за заданный период. Текст запроса:
    ТекстЗапроса="
        |ПЕРИОД С Дата1 По Дата2;
        |Фирма=Регистр.ПартииТоваров.Фирма;
        |Товар=Регистр.ПартииТоваров.Товар;
        |Статус=Регистр.ПартииТоваров.Статус;
        |Поставщик=Регистр.ПартииТоваров.Поставщик;
        |ПрихДокумент=Регистр.ПартииТоваров.ПрихДокумент;
        |ОстатокТовара=Регистр.ПартииТоваров.ОстатокТовара;
        |Стоимость=Регистр.ПартииТоваров.Стоимость;
        |ПродСтоимость=Регистр.ПартииТоваров.ПродСтоимость;
        |НДС=Регистр.ПартииТоваров.НДС;
        |Оборот=Регистр.ПартииТоваров.Оборот;
        |НДСрасхода=Регистр.ПартииТоваров.НДСрасхода;
        |Прибыль=Регистр.ПартииТоваров.Прибыль;
        |Группировка ПрихДокумент;
        |Функция НачОстатокТовара=НачОст(ОстатокТовара);
        |Функция КонОстатокТовара=КонОст(ОстатокТовара);
        |Функция ПрихОстатокТовара=Приход(ОстатокТовара);
        |Функция РасхОстатокТовара=Расход(ОстатокТовара);
        |Функция НачСтоимость=НачОст(Стоимость);
        |Функция КонСтоимость=КонОст(Стоимость);
        |Функция ПрихСтоимость=Приход(Стоимость);
        |Функция РасхСтоимость=Расход(Стоимость);
        |Функция НачПродСтоимость=НачОст(ПродСтоимость);
        |Функция КонПродСтоимость=КонОст(ПродСтоимость);
        |Функция ПрихПродСтоимость=Приход(ПродСтоимость);
        |Функция РасхПродСтоимость=Расход(ПродСтоимость);
        |Функция НачНДС=НачОст(НДС);
        |Функция КонНДС=КонОст(НДС);
        |Функция ПрихНДС=Приход(НДС);
        |Функция РасхНДС=Расход(НДС);
        |Функция ОборотТовара=Сумма(Оборот);
        |Функция НДСрасходаТовара=Сумма(НДСрасхода);
        |Функция ПрибыльТовара=Сумма(Прибыль);
        |Условие (Фирма=выбФирма);
        |Условие (Статус=Купленный);
        |";
        
    
    Если Запрос.Выполнить(ТекстЗапроса)=0 тогда
        Предупреждение("Запрос по документам не выполнился!!!");
        Возврат;
    КонецЕсли;
    
    ПрихДокументы = СоздатьОбъект("ТаблицаЗначений");
    Запрос.Выгрузить(ПрихДокументы, 0, 0);
    Если фОтладка = 1 Тогда
        ВывестиТаблицу(ПрихДокументы);
    КонецЕсли;

В диалоге задаю дату, например 17.06.2011. Но в результате выводятся ВСЕ документы, которые попадают в условие запроса. Почему?
Может добавить условие на дату ПрихДокумент?

igmig65 Подменю пользователя
сообщение 04.08.11, 8:54
Сообщение #2

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 623
Из: Донецкая обл
Спасибо сказали: 171 раз
Рейтинг: 144.5

Возможно связано с точкой актувльности, попробуйте вставить условие типа:
Если Дата2 >= ПолучитьДатуТА() Тогда

   ТекстЗапроса = ТекстЗапроса + "Период с Дата1;";

Иначе

   ТекстЗапроса = ТекстЗапроса + "Период с Дата1 по Дата2;";

КонецЕсли;

vadim007 Подменю пользователя
сообщение 04.08.11, 9:22
Сообщение #3

Почти крутой
Иконка группы
Группа: Местный
Сообщений: 1298
Из: Донецк
Спасибо сказали: 208 раз
Рейтинг: 0

Удалось получить близкий к желаемому результат следующим запросом:
    ТекстЗапроса="
        |ПЕРИОД С Дата1 По Дата2;
        |Фирма=Регистр.ПартииТоваров.Фирма;
        |Статус=Регистр.ПартииТоваров.Статус;
        |ПрихДокумент=Регистр.ПартииТоваров.ПрихДокумент;
        |Стоимость=Регистр.ПартииТоваров.Стоимость;
        |ПродСтоимость=Регистр.ПартииТоваров.ПродСтоимость;
        |НДС=Регистр.ПартииТоваров.НДС;
        |НДСрасхода=Регистр.ПартииТоваров.НДСрасхода;
        |Группировка Документ;
        |Функция НачСтоимость=НачОст(Стоимость);
        |Функция КонСтоимость=КонОст(Стоимость);
        |Функция ПрихСтоимость=Приход(Стоимость);
        |Функция РасхСтоимость=Расход(Стоимость);
        |Функция НачПродСтоимость=НачОст(ПродСтоимость);
        |Функция КонПродСтоимость=КонОст(ПродСтоимость);
        |Функция ПрихПродСтоимость=Приход(ПродСтоимость);
        |Функция РасхПродСтоимость=Расход(ПродСтоимость);
        |Функция НачНДС=НачОст(НДС);
        |Функция КонНДС=КонОст(НДС);
        |Функция ПрихНДС=Приход(НДС);
        |Функция РасхНДС=Расход(НДС);
        |Функция НДСрасходаТовара=Сумма(НДСрасхода);
        |Условие (Фирма=выбФирма);
        |Условие (Статус=Купленный);
        |Условие (ПрихДокумент.Вид()=""ПриходнаяНакладная"");
        |";

Ключевые моменты:
1. Группировка по Документ, а не по ПрихДокумент
2. Условие отбора только документов вида ПриходнаяНакладная
Почему близкий к желаемому: функции НачСтоимость, КонСтоимость выдают 0. Мне нужна была КонСтоимость, т.к. могут быть возвраты.
Буду пока довольствоваться ПрихСтоимость.

kalyamov Подменю пользователя
сообщение 04.08.11, 17:02
Сообщение #4

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 186
Спасибо сказали: 31 раз
Рейтинг: 0

Цитата(vadim007 @ 04.08.11, 10:22) *
Почему близкий к желаемому: функции НачСтоимость, КонСтоимость выдают 0. Мне нужна была КонСтоимость, т.к. могут быть возвраты.
Буду пока довольствоваться ПрихСтоимость.


Если я не ошибаюсь, то функции НачОст иКонОст работают только при группировке по измерению, а на момент документа конечно будет ноль.

vadim007 Подменю пользователя
сообщение 05.08.11, 8:37
Сообщение #5

Почти крутой
Иконка группы
Группа: Местный
Сообщений: 1298
Из: Донецк
Спасибо сказали: 208 раз
Рейтинг: 0

Внимательно прочел про работу функций в запросе применительно к регистрам - не нашел подобного утверждения.

kalyamov Подменю пользователя
сообщение 05.08.11, 9:30
Сообщение #6

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 186
Спасибо сказали: 31 раз
Рейтинг: 0

Цитата(vadim007 @ 05.08.11, 9:37) *
Внимательно прочел про работу функций в запросе применительно к регистрам - не нашел подобного утверждения.


А практика не помогает уже ? Помогут еще и форумы.

Цитата(vadim007 @ 05.08.11, 9:37) *
Внимательно прочел про работу функций в запросе применительно к регистрам - не нашел подобного утверждения.


Можно получить остаток на любой момент с помощью фкнкции Приход и Расход.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 15.06.25, 14:08
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!