Версия для печати темы (https://pro1c.org.ua/index.php?s=05ca49c31f81c3d6b5bcf6b50caac685&showtopic=7290)
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 7.7 _ Отобрать в Запросе Операции по опр. виду документа
Автор: Домовик 09.05.12, 17:17
здравствуйте!
Может кто сходу подскажет, можно ли как-то в тексте запроса прописать, чтобы отбор был по опред. виду документа(или исключить из выборки опред. вид).
затрагиваются именно операции.
т.е используется схема
|ОперацияДокумент=Операция.ТекущийДокумент;
|ОперацияСчет=Операция.Кредит.Счет;
|ОпрацияКво=Операция.Количество;
конфигурация "бух учет для Укр"
задача в целом
в целом задача: определить продажи и себестоимость по каждому товару. через итоги не иду. нет аналитики(товар) по продажам. запрос составлен по документам и операциям, связан по ТМЦ. работает.
но! Нужно вычесть Перемещения
Автор: Читатель 09.05.12, 18:07
Операция.Документ.Вид()<>"Перемещение"
Автор: Домовик 09.05.12, 20:33
В запросе эту строку как поставить? В конструкторе не показывает Вид.
На данный момент думаю поставить условие КредитСчет=СЧетУчета и ДебетСчет<>СчетТовара, где
Перемещение же затрагивает тот же счет и по кредиту. за это зацеплюсь.
СчетТовара - параметр, СчетПоКоду"281".
Позже кодом выложу.
Автор: Ardi 09.05.12, 22:08
Цитата(Домовик @ 09.05.12, 18:17)
в целом задача: определить продажи и себестоимость по каждому товару. через итоги не иду. нет аналитики(товар) по продажам. запрос составлен по документам и операциям, связан по ТМЦ. работает.
но! Нужно вычесть Перемещения
Вытягиваем в таблицуЗначений продажные суммы из тела документа реализации. И себестоимость из операции привязанной к этой реализации.
В простом случае этого достаточно.
Или настолько огромное число документов что нужен запрос?
Автор: Домовик 09.05.12, 22:42
табличные части документов расходных огромные. запросом просто ленивенько для меня получается.
запросом вышло, по количеству сравниваю: идет все, кроме ситуаций, когда попадаются услуги в расходных. но это реально поправить.
все же условие,скорее всего , нужно точнее: счетДебет =90, тогда точно это продажа.
проверку на включенные проводки еще надо как-то поискать, как сделать....
код Перем Запрос, ТекстЗапроса, Таб, СчетТМЦ;
//Создание объекта типа Запрос
СчетТМЦ=СчетПоКоду("281");
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|КредитСчет = Операция.Кредит.Счет;
|ДебетСчет = Операция.Дебет.Счет;
|ОперацияКво = Операция.Количество;
|Себестоимость = Операция.Сумма;
|ТМЦ = Документ.РасходнаяНакладная.ТМЦ,документ.ВозвратнаяНакладная.ТМЦ, Операция.Кредит.ТМЦ;
//|ДокументРасходная=Документ.РасходнаяНакладная.ТекущийДокумент;
|КвоМинус = Документ.ВозвратнаяНакладная.Кво;
|Кво = Документ.РасходнаяНакладная.Кво;
|СуммаСНДС = Документ.РасходнаяНакладная.СуммаСНДС;
//|Профит = Документ.РасходнаяНакладная.Профит;
//|Контрагент = Документ.РасходнаяНакладная.Контрагент;
|Функция КвоСумма = Сумма(Кво-КвоМинус);
|Функция СуммаСНДССумма = Сумма(СуммаСНДС);
|Функция СуммаОперацияКво = Сумма(ОперацияКво);
|Функция Прибыль = Сумма(СуммаСНДС-Себестоимость);
|Группировка ТМЦ без групп;
|Группировка Год все вошедшиевЗапрос;
|Группировка Месяц все вошедшиевзапрос;
|Условие(ТМЦ в СписокТоваровИГрупп);
|Условие((КредитСчет = СчетТМЦ));
|Условие((ДебетСчет <> СчетТМЦ));
//|Условие(ОперацияРасходная = ДокументРасходная);
|"//}}ЗАПРОС
;
как отобрать по определенному виду документа в запросе - не нашла.
Автор: vadim007 10.05.12, 7:11
Цитата(Домовик @ 09.05.12, 18:17)
в целом задача: определить продажи и себестоимость по каждому товару. через итоги не иду. нет аналитики(товар) по продажам. запрос составлен по документам и операциям, связан по ТМЦ. работает.
но! Нужно вычесть Перемещения
Попробую угадать, что Вы там ваяете. Отчет "Книга учета доходов и расходов предпринимателя". Верно?
Автор: kalyamov 10.05.12, 10:53
Цитата(Домовик @ 09.05.12, 20:33)
В запросе эту строку как поставить?
А после конструктора руками добавить строку : Условие (ОперацияДокумент.Вид()<>"Перемещение") не пробовали ?
Автор: Читатель 10.05.12, 12:47
Только похоже, что ОперацияДокумент, который равен Операция.ТекущийДокумент - не совсем то, что я имел в виду:
|Условие (Операция.Документ.Вид()<>"Перемещение");
Либо уже при обходе результатов запроса:
Если Операция.Документ.Вид()="Перемещение" Тогда
Продолжить;
КонецЕсли;
Автор: kalyamov 10.05.12, 13:27
А почему такое условие не подходит ?
|Условие (ОперацияДокумент.Вид()<>"Перемещение");
Автор: Домовик 10.05.12, 14:37
Цитата(Читатель @ 10.05.12, 8:47) http://pro1c.org.ua/index.php?act=findpost&pid=49861
А после конструктора руками добавить строку : Условие (ОперацияДокумент.Вид()<>"Перемещение") не пробовали ?
честно говоря, не пробовали. вечером попробуем.
Цитата(vadim007 @ 10.05.12, 3:11)
Попробую угадать, что Вы там ваяете. Отчет "Книга учета доходов и расходов предпринимателя". Верно?
нет. просто отчет о продажах
Автор: vadim007 10.05.12, 14:51
Цитата(Домовик @ 10.05.12, 15:37)
нет. просто отчет о продажах
Покажите, какой должна быть выходная таблица.
Автор: Домовик 10.05.12, 15:10
а зачем?
Автор: Читатель 10.05.12, 17:02
Цитата
А почему такое условие не подходит ?
|Условие (ОперацияДокумент.Вид()<>"Перемещение");
Может и подходит. Я просто не знаю что такое ТекущийДокумент в объекте Операция (ОперацияДокумент=Операция.ТекущийДокумент) - видимо какой-то реквизит. Потому и предлагаю пользовать атрибут операции Документ - он всегда есть в любой операции.
Автор: kalyamov 10.05.12, 17:28
Цитата(Читатель @ 10.05.12, 17:02)
Я просто не знаю что такое ТекущийДокумент в объекте Операция (ОперацияДокумент=Операция.ТекущийДокумент) - видимо какой-то реквизит.
В данном случае - это атрибут.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua