Имя: Пароль:
1C
1С v8
Вопрос по СКД
0 ParinovS
 
27.09.12
09:45
Доброго времени суток, возник непонятный момент. Есть 2 приходника (25, 26 число) и один расходник (27). Хочу на СКД сформировать отчет по продажам и посчитать себестоимость. Реализован примитивный партионный учет. Запрос такой:

ВЫБРАТЬ
   Продажи.Номенклатура,
   Продажи.КоличествоОборот КАК Количество,
   Продажи.СуммаОборот КАК Продажи,
   ВЫБОР
       КОГДА НЕ Себестоимость.КоличествоОборот ЕСТЬ NULL
               И НЕ Себестоимость.СуммаОборот ЕСТЬ NULL
               И НЕ Себестоимость.КоличествоОборот = 0
               И НЕ Себестоимость.СуммаОборот = 0
           ТОГДА Себестоимость.СуммаОборот / Себестоимость.КоличествоОборот * Продажи.КоличествоОборот
       ИНАЧЕ 0
   КОНЕЦ КАК СебестоимостьПродажи
ИЗ
   (ВЫБРАТЬ
       ОстаткиНоменклатурыОбороты.Номенклатура КАК Номенклатура,
       ОстаткиНоменклатурыОбороты.Партия КАК Партия,
       -ОстаткиНоменклатурыОбороты.КоличествоОборот КАК КоличествоОборот,
       -ОстаткиНоменклатурыОбороты.СуммаОборот КАК СуммаОборот
   ИЗ
       РегистрНакопления.ОстаткиНоменклатуры.Обороты(&НачалоПериода, &КонецПериода, Регистратор, ) КАК ОстаткиНоменклатурыОбороты
   ГДЕ
       ОстаткиНоменклатурыОбороты.Регистратор ССЫЛКА Документ.РасходнаяНакладная) КАК Продажи
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Обороты(, , Регистратор, ) КАК Себестоимость
       ПО Продажи.Партия = Себестоимость.Регистратор
           И Продажи.Номенклатура = Себестоимость.Номенклатура

Т.е. задача стоит узнать по какой себестоимости был продан тот или иной товар. Я задаю в консоле запросов период с 27.09.12 по 27.09.12. У меня все отлично выводится, но если я в отчете на СКД установлю такой же период, то у меня выйдет нулевая себестоимость, такое ощущение, что я установил ограничение по периоду еще и для виртуальной таблицы "Себестоимость". Непонятно....
1 MatrosoV AleXXXand_R
 
27.09.12
09:47
Вот так попробуй

ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Обороты({&ПустаяДата}, {&ПустаяДата},
2 pessok
 
27.09.12
09:48
СКД в это вопросе дура. Она АВТОМАТОМ ставит параметры виртуальной таблицы по периоду. Задай параметры для оборотов твоих на какой-нить 1993 - 3147 года
3 ParinovS
 
27.09.12
09:51
(1) и (2) попробовал - НЕТ (((
4 ParinovS
 
27.09.12
09:57
никто не знает? ((
5 ParinovS
 
27.09.12
09:59
Печально... буду сам рыть! Найду - отпишусь :)
6 Фрэнки
 
27.09.12
10:00
я бы попробовал отделить подзапрос от основного запроса. чтоб их было явно два штуки
7 ParinovS
 
27.09.12
11:28
ответ найден, я не правильно понял совет (2). Моя ошибка была в том, что я по привычке задал имена переменных ограничивающих период (для вложенного запроса "Продажи"), так же, как и имена стандартных параметров в СКД - "НачалоПериода" и "КонецПериода". Для виртуальной таблицы "Себестоимость" было необходимо, чтобы ограничения по периоду не было. НО! 1С-ка автоматом подставляет стандартные реквизиты "НачалоПериода" и "КонецПериода" во все виртуальные таблицы, у которых эти значения не заданы. Поэтому у меня при установке ограничений по периоду, эти же ограничения и попадали в виртуальную таблицу "Себестоимость". Как всегда помогло повторение и изучение "матчасти" :)