|
РегистрНакопления.Остатки в СКД | ☑ | ||
---|---|---|---|---|
0
raytan
23.11.15
✎
12:13
|
Есть отчет на СКД. В нем хочу получить остатки на начало месяца и конец. К основной выборке присоединяю два раза РегистрНакопления.Остатки . В параметра вирттаблицы задаю параметр период &КонецПериода и &НачалоПериода. В параметрах добавил еще один: МойПериод. Вот его пользователь и заполняет. А &КонецПериода = КонецПериода(&МойПериод, Месяц) и &НачалоПериода = НачалоПериода(&МойПериод, Месяц). Вот запрос:
ВЫБРАТЬ ПартииТоваровНаСкладах.Номенклатура, ПартииТоваровНаСкладахОстаткиКонецПериода.КоличествоОстаток КАК КонецОстатокКоличество, ПартииТоваровНаСкладахОстаткиКонецПериода.СтоимостьОстаток КАК КонецОстатокСумма, ПартииТоваровНаСкладахОстаткиНачалоПериода.КоличествоОстаток КАК НачалоОстатокКоличество, ПартииТоваровНаСкладахОстаткиНачалоПериода.СтоимостьОстаток КАК НачалоОстатокСумма ИЗ РегистрНакопления.ПартииТоваровНаСкладах КАК ПартииТоваровНаСкладах ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&НачалоПериода, ) КАК ПартииТоваровНаСкладахОстаткиНачалоПериода ПО ПартииТоваровНаСкладах.Номенклатура = ПартииТоваровНаСкладахОстаткиНачалоПериода.Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&КонецПериода, ) КАК ПартииТоваровНаСкладахОстаткиКонецПериода ПО ПартииТоваровНаСкладах.Номенклатура = ПартииТоваровНаСкладахОстаткиКонецПериода.Номенклатура ГДЕ ПартииТоваровНаСкладах.Период <= &КонецПериода И ПартииТоваровНаСкладах.Период >= &НачалоПериода Проблема: на закладке Параметры в СКД автоматом добавился параметр Период. Так вот остатки выводятся только в зависимости от его заполнения. Если пустой, то последние, если заполнен, то на дату заполнения. Почему так происходит ? Я же переопределил параметр для периода в запросе в параметрах вирттаблицы.. |
|||
1
VikingKosmo
23.11.15
✎
12:18
|
Таблицу ОстаткиИОбороты не советовать?
|
|||
2
aleks_default
23.11.15
✎
12:24
|
Чем не устраивает типовой механизм 1с получения остатков и оборотов? Ты решил что нахрен эти лоховские поделки 1с, придумаю свой гениальный велосипед?
|
|||
3
raytan
23.11.15
✎
12:40
|
(2) Типовой -- это какой ? Мне казалось это как раз то, что нужно
|
|||
4
FIXXXL
23.11.15
✎
12:42
|
(3) это ОстаткиИОбороты
Начальный и конечный остатки |
|||
5
raytan
23.11.15
✎
12:47
|
(4) спасибо. Сейчас попробую. На самом деле неразумно делал
|
|||
6
raytan
25.11.15
✎
13:24
|
Все таки столкнулся с этим багом(фичей) в СКД. Задача: надо получить цены для 2-х планов счетов на разные даты. Беру 2 раза план счетов и левым соединением присоединяю к каждому СрезПоследних ЦеныНоменклатуры(регистр сведений). Задаю вирттаблице параметры для периода: &период1 и &период2. В секции СКД "параметры" кроме моих (&период1 и &период2) автоматом добавился еще стандартный параметр &Период.
Проблема: в запрос почему то подхватывается именно стандартный параметр &Период, а мои нет (( Причем он задается одновременно для двух вирттаблиц СрезПоследний. Проверял в консоле запросов, там работает все правильно. Пришел к выводу, что это баг СКД. Может у кого есть какие нибудь мысли ? Запрос: ВЫБРАТЬ ЕСТЬNULL(ПланыПроизводства1.Номенклатура, ПланыПроизводства2.Номенклатура) КАК Номенклатура, ЕСТЬNULL(ПланыПроизводства1.Количество, 0) КАК Количество1, ЕСТЬNULL(ПланыПроизводства1.ЦенаОптовая, 0) КАК ЦенаОптовая1, ЕСТЬNULL(ПланыПроизводства1.СтоимостьОптовая, 0) КАК СтоимостьОптовая1, ЕСТЬNULL(ПланыПроизводства2.Количество, 0) КАК Количество2, ЕСТЬNULL(ПланыПроизводства2.ЦенаОптовая, 0) КАК ЦенаОптовая2, ЕСТЬNULL(ПланыПроизводства2.СтоимостьОптовая, 0) КАК СтоимостьОптовая2, ИЗ (ВЫБРАТЬ ПланыПроизводства1.Номенклатура КАК Номенклатура, ВЫБОР ПланыПроизводства1.Количество КАК Количество, ВЫБОР КОГДА &Период1 = ДАТАВРЕМЯ(1, 1, 1) ТОГДА ПланыПроизводства1.Цена ИНАЧЕ ЦеныНоменклатуры.ОтпускнаяЦена КОНЕЦ КАК ЦенаОптовая, ВЫБОР КОГДА ПланыПроизводства1.БезТовара ТОГДА 0 ИНАЧЕ ВЫБОР КОГДА &Период1 = ДАТАВРЕМЯ(1, 1, 1) ТОГДА ПланыПроизводства1.Цена * ПланыПроизводства1.Количество ИНАЧЕ ЦеныНоменклатуры.ОтпускнаяЦена * ПланыПроизводства1.Количество КОНЕЦ КОНЕЦ КАК СтоимостьОптовая, ПланыПроизводства1.КУточнению КАК КУточнению, ПланыПроизводства1.ВидПриемки КАК ВидПриемки, ПланыПроизводства1.ВидПланирования КАК ВидПланирования ИЗ РегистрНакопления.ПланыПроизводства КАК ПланыПроизводства1 ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ СУММА(ВЫБОР ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура, СУММА(ВЫБОР КОГДА ЦеныНоменклатурыСрезПоследних.ТипЦен = &ОтпЦена ТОГДА ЦеныНоменклатурыСрезПоследних.Цена ИНАЧЕ 0 КОНЕЦ) КАК ОтпускнаяЦена ИЗ РегистрСведений.ЦеныНоменклатуры.СрезПоследних( &Период1, ТипЦен = &ОтпЦена) КАК ЦеныНоменклатурыСрезПоследних СГРУППИРОВАТЬ ПО ЦеныНоменклатурыСрезПоследних.Номенклатура) КАК ЦеныНоменклатуры ПО ПланыПроизводства1.Номенклатура = ЦеныНоменклатуры.Номенклатура) КАК ПланыПроизводства1 ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПланыПроизводства2.Номенклатура КАК Номенклатура, ПланыПроизводства2.Количество КАК Количество, ВЫБОР КОГДА &Период2 = ДАТАВРЕМЯ(1, 1, 1) ТОГДА ПланыПроизводства2.Цена ИНАЧЕ ЦеныНоменклатуры.ОтпускнаяЦена КОНЕЦ КАК ЦенаОптовая, ВЫБОР КОГДА ПланыПроизводства2.БезТовара ТОГДА 0 ИНАЧЕ ВЫБОР КОГДА &Период2 = ДАТАВРЕМЯ(1, 1, 1) ТОГДА ПланыПроизводства2.Цена * ПланыПроизводства2.Количество ИНАЧЕ ЦеныНоменклатуры.ОтпускнаяЦена * ПланыПроизводства2.Количество КОНЕЦ КОНЕЦ КАК СтоимостьОптовая, ПланыПроизводства2.КУточнению КАК КУточнению, ПланыПроизводства2.ВидПриемки КАК ВидПриемки, ПланыПроизводства2.ВидПланирования КАК ВидПланирования ИЗ РегистрНакопления.ПланыПроизводства КАК ПланыПроизводства2 ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ СУММА(ВЫБОР ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура, СУММА(ВЫБОР КОГДА ЦеныНоменклатурыСрезПоследних.ТипЦен = &ОтпЦена ТОГДА ЦеныНоменклатурыСрезПоследних.Цена ИНАЧЕ 0 КОНЕЦ) КАК ОтпускнаяЦена ИЗ РегистрСведений.ЦеныНоменклатуры.СрезПоследних( &Период2, ТипЦен = &ОтпЦена) КАК ЦеныНоменклатурыСрезПоследних СГРУППИРОВАТЬ ПО ЦеныНоменклатурыСрезПоследних.Номенклатура) КАК ЦеныНоменклатуры ПО ПланыПроизводства2.Номенклатура = ЦеныНоменклатуры.Номенклатура) КАК ПланыПроизводства2 ПО ПланыПроизводства1.Номенклатура = ПланыПроизводства2.Номенклатура И ПланыПроизводства1.ВидПриемки = ПланыПроизводства2.ВидПриемки И ПланыПроизводства1.ВидПланирования = ПланыПроизводства2.ВидПланирования И ПланыПроизводства1.КУточнению = ПланыПроизводства2.КУточнению |
|||
7
VikingKosmo
25.11.15
✎
13:28
|
(6) ни какой это не баг...
|
|||
8
raytan
25.11.15
✎
13:29
|
(7) а что тогда ? Я ошибся ? Или так и должно работать ?
|
|||
9
VikingKosmo
25.11.15
✎
13:30
|
(8) Дарю {}, пользуйся
|
|||
10
raytan
25.11.15
✎
13:32
|
(9) приятно получать подарки :)) Но причем тут это ? Я как понимаю в фигурных скобачках указывают записи с параметрами, которые могут не использоваться, когда пустые. А тут куда их ?
|
|||
11
raytan
25.11.15
✎
13:33
|
(9) поясни, пжлст, более подробно свою мысль
|
|||
12
VikingKosmo
25.11.15
✎
13:36
|
(11) я сейчас вообще не в состоянии, что бы то ни было объяснять. Просто используй {} и считай, что это уличная магия СКД. Или почитай как вообще это работает...
|
|||
13
raytan
25.11.15
✎
13:53
|
(12) Спасибо тебе, Дэвид Блейн, твоя магия работает ! :))
Если кому понадобится, вот решение: РегистрСведений.ЦеныНоменклатуры.СрезПоследних( {&Период2}, ТипЦен = &ПРЦ ИЛИ ТипЦен = &ОтпЦена) КАК ЦеныНоменклатурыСрезПоследних |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |