Имя: Пароль:
1C
1С v8
Небольшой запрос в СКД, неполучается получить итоги
, ,
0 luch
 
05.12.11
08:09
Добрый день, неполучается написать запрос, либо правильно настроить получение итогов в отчёте.

Суть в следующем есть регист ТоварыНаСкладах и ТоварыВРезервеНаСкладе

нужно получить отчёт который выдавал бы остатки товара и ирезерв за период (с разбивкой по подпериод неделя, либо месяц)

ВЫБРАТЬ
   ТоварыНаСкладахОстаткиИОбороты.Склад,
   ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоОборот,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход,
   ТоварыНаСкладахОстаткиИОбороты.ПериодНеделя,
   ТоварыВРезервеНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК Резерв,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток - ТоварыВРезервеНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК ОстатокБезРезерва,
   ТоварыНаСкладахОстаткиИОбороты.ПериодМесяц,
   ТоварыНаСкладахОстаткиИОбороты.ПериодСекунда
ИЗ
   РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(, , Авто, , ) КАК ТоварыНаСкладахОстаткиИОбороты
       ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.ОстаткиИОбороты(, , Авто, , ) КАК ТоварыВРезервеНаСкладахОстаткиИОбороты
       ПО ТоварыНаСкладахОстаткиИОбороты.Склад = ТоварыВРезервеНаСкладахОстаткиИОбороты.Склад
           И ТоварыНаСкладахОстаткиИОбороты.Номенклатура = ТоварыВРезервеНаСкладахОстаткиИОбороты.Номенклатура
           И ТоварыНаСкладахОстаткиИОбороты.ПериодНеделя = ТоварыВРезервеНаСкладахОстаткиИОбороты.ПериодНеделя
           И ТоварыНаСкладахОстаткиИОбороты.ПериодМесяц = ТоварыВРезервеНаСкладахОстаткиИОбороты.ПериодМесяц
           И ТоварыНаСкладахОстаткиИОбороты.ПериодСекунда = ТоварыВРезервеНаСкладахОстаткиИОбороты.ПериодСекунда

СГРУППИРОВАТЬ ПО
   ТоварыНаСкладахОстаткиИОбороты.Склад,
   ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоОборот,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход,
   ТоварыВРезервеНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
   ТоварыНаСкладахОстаткиИОбороты.ПериодНеделя,
   ТоварыНаСкладахОстаткиИОбороты.ПериодМесяц,
   ТоварыНаСкладахОстаткиИОбороты.ПериодСекунда


в отчёте получаю правильную внешнюю форму, где итоги группируются (допустим понедельно) но итоговые сумы по РегистуТоварыВРезервеНаСкладах считаются неверно

не подскажете, где что я сделал неверно.

http://s017.radikal.ru/i424/1112/ad/c39ce7ca4044.jpg
1 LLIaMaH
 
05.12.11
08:15
Чето запрос сложный, по вопросу не подскажу, но в запросе для СКД можно не использовать СГРУПИРОВАТ ПО, это делаеться самой СКД по настройкам которые ты выбиреш или пользователь.
2 LLIaMaH
 
05.12.11
08:18
И еще когда я сталкиваюсь с такими сложностями на большом запросе я его сильно упрощаю, и смотрю что выдает консоль запросов, помто начинаю докручивать до требуемого функционала.
3 luch
 
05.12.11
08:35
по группировкам - спасибо, уберу
4 luch
 
05.12.11
08:38
момент такой не совсем понимаю, если я хочу получать промежуточные итоги по неделям месяцам, нужно ли в запросу делать связь по периодам

   ТоварыНаСкладахОстаткиИОбороты.ПериодСекунда = ТоварыВРезервеНаСкладахОстаткиИОбороты.ПериодСекунда            
   И ТоварыНаСкладахОстаткиИОбороты.ПериодНеделя = ТоварыВРезервеНаСкладахОстаткиИОбороты.ПериодНеделя
   И ТоварыНаСкладахОстаткиИОбороты.ПериодМесяц = ТоварыВРезервеНаСкладахОстаткиИОбороты.ПериодМесяц
5 sergei123654
 
05.12.11
08:41
(0) пробовали из запроса вообще убрать недели? в таком случае правильно ли за месяц будет расчитывать остатки?

в http://www.spec8.ru/kurs-po-skd-besplatno говорят то что остатки Неделя + месяц(или большие периоды) СКД корректно расчитать остатки не может..
6 luch
 
05.12.11
08:46
если без периодов делаю тогда да остатки правильные выводятся
7 sergei123654
 
05.12.11
08:49
(6) из запроса убрали период неделя и все нормально?
8 luch
 
05.12.11
08:52
ну если период неделя убрать, т.е. сделать чтобы данные были только на начальную и конечную дату до цифры правильные встают, но мне надо чтобы по подпериодам тоже данные выводились с корректными остатками   :(
9 sergei123654
 
05.12.11
09:02
(8) если правильно работает пот так:

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

то нужно потом попробовать без месяца(заменить его на неделю). Если и с неделей отработает правильно то нужно попробовать и с неделей и с месяцем.Если тогда не правильно то по ссылке из (5) все правильно сказано остатки по неделя и месяц СКД посчитать не может. а почему она не может так посчитать, я так и не понимаю...
выход - программно менять запрос перед построение отчета. хотяяяяяя.....
10 Axel2009
 
05.12.11
09:35
сделать через объединение запросов и не надо будет городить бред с соединением по периоду
11 luch
 
05.12.11
09:48
(10) так в итоге и сделал, получил правильный результат, всем спасибо  :)