Имя: Пароль:
1C
 
Отчет СКД. Чудеса с ресурсами
0 Zombi
 
25.04.19
11:33
Делаю отчет на СКД. В ресурсах есть вот такие поля:

https://yadi.sk/i/HcDU2ca6z0YMnA

Отчет формируется, все правильно считает, кроме итогов по полю "Оборачиваемость".

Пишу в ресурсах:

https://yadi.sk/i/XPsD_F4vBc3ytQ

После этого у меня изменяется поле "Конечный остаток". Сравнил в экселе данные по обоим вариантам отчета, есть несколько позиций номенклатуры, где меняется конечный остаток. В одном варианте 8 в другом 18, например. Не пойму, как ресурс может влиять на это?
1 Zombi
 
25.04.19
11:50
Сейчас поэкспериментировал. Что угодно выбираю в ресурсе "Оборачиваемость", хоть сумма, хоть среднее, хоть количестворазличных, выводит конечный остаток правильный. Как только пишу туда что то руками, хоть просто "1", выводит неправильно.
2 Tonik992
 
25.04.19
11:58
Пару скриншотиков ДО и ПОСЛЕ покажите.
+ скриншот структуры отчета.

Мне кажется вы неправильно формулу ресурса "Оборачиваемость" делаете.
3 Rr1
 
25.04.19
12:00
попробуй посмотреть итоговый запрос СКД. СКД иногда меняет текст запроса.

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    
    Настройки = КомпоновщикНастроек.ПолучитьНастройки();
    
    КомпоновщикМакета         = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновкиДанных     = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки);
    
    Если МакетКомпоновкиДанных.НаборыДанных.Количество() > 0 Тогда
        Сообщить(МакетКомпоновкиДанных.НаборыДанных[0].Запрос);      // Итиоговый текст запроса
    КонецЕсли;
    
КонецПроцедуры // ПриКомпоновкеРезультата()
4 Zombi
 
25.04.19
12:08
Вот тут в ресурсах поставил у оборачиваемости просто 1:

https://yadi.sk/i/QlTTsRTgXtx_Rg
5 Zombi
 
25.04.19
12:10
Сейчас в оборачиваемости стоит "Среднее":

https://yadi.sk/i/hc4RMyKU98Wzhg
6 Zombi
 
25.04.19
12:11
Скриншот структуры:

https://yadi.sk/i/LSLfk3Vedlgxhg
7 Zombi
 
25.04.19
12:22
(3) Сравнил. Он действительно убирает из запроса поле "Оборачиваемость". Я его в запросе считаю.
8 Zombi
 
25.04.19
12:24
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
    МАКСИМУМ(вт_ОстаткиПериодами.КоличествоКонечныйОстаток) КАК КонечныйОстаток,
    СУММА(ВыручкаИСебестоимостьПродажОбороты.КоличествоОборот) КАК КоличествоОборот,
    ВыручкаИСебестоимостьПродажОбороты.Период КАК Период,
    МАКСИМУМ(вт_ОстаткиПериодами.СтоимостьКонечныйОстаток) КАК СтоимостьКонечныйОстаток,
    ВыручкаИСебестоимостьПродажОбороты.Склад КАК Склад
ПОМЕСТИТЬ вт_Остатки
ИЗ
    РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&П, &П2, Месяц, ) КАК ВыручкаИСебестоимостьПродажОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ вт_ОстаткиПериодами КАК вт_ОстаткиПериодами
        ПО ВыручкаИСебестоимостьПродажОбороты.Период = вт_ОстаткиПериодами.Период
            И ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура = вт_ОстаткиПериодами.АналитикаУчетаНоменклатурыНоменклатура
            И ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Склад = вт_ОстаткиПериодами.АналитикаУчетаНоменклатурыСклад

СГРУППИРОВАТЬ ПО
    ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура,
    ВыручкаИСебестоимостьПродажОбороты.Период,
    ВыручкаИСебестоимостьПродажОбороты.Склад
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    вт_Остатки.Номенклатура КАК Номенклатура,
    вт_Остатки.СтоимостьКонечныйОстаток КАК СтоимостьКонечныйОстаток,
    вт_Остатки.КонечныйОстаток КАК КонечныйОстаток,
    вт_Остатки.КонечныйОстаток / (вт_Остатки.КоличествоОборот / (РАЗНОСТЬДАТ(вт_Остатки.Период, КОНЕЦПЕРИОДА(вт_Остатки.Период, МЕСЯЦ), ДЕНЬ) + 1)) КАК Оборачиваемость,
    вт_Остатки.Период КАК Период,
    вт_Остатки.Склад КАК Склад
ПОМЕСТИТЬ вт_ОстаткиРент
ИЗ
    вт_Остатки КАК вт_Остатки

ИНДЕКСИРОВАТЬ ПО
    Номенклатура,
    Период,
    Склад
;



Это когда выбрано "Среднее"
9 Zombi
 
25.04.19
12:25
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
    МАКСИМУМ(вт_ОстаткиПериодами.КоличествоКонечныйОстаток) КАК КонечныйОстаток,
    ВыручкаИСебестоимостьПродажОбороты.Период КАК Период,
    МАКСИМУМ(вт_ОстаткиПериодами.СтоимостьКонечныйОстаток) КАК СтоимостьКонечныйОстаток,
    ВыручкаИСебестоимостьПродажОбороты.Склад КАК Склад
ПОМЕСТИТЬ вт_Остатки
ИЗ
    РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&П, &П2, Месяц, ) КАК ВыручкаИСебестоимостьПродажОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ вт_ОстаткиПериодами КАК вт_ОстаткиПериодами
        ПО ВыручкаИСебестоимостьПродажОбороты.Период = вт_ОстаткиПериодами.Период
            И ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура = вт_ОстаткиПериодами.АналитикаУчетаНоменклатурыНоменклатура
            И ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Склад = вт_ОстаткиПериодами.АналитикаУчетаНоменклатурыСклад

СГРУППИРОВАТЬ ПО
    ВыручкаИСебестоимостьПродажОбороты.АналитикаУчетаНоменклатуры.Номенклатура,
    ВыручкаИСебестоимостьПродажОбороты.Период,
    ВыручкаИСебестоимостьПродажОбороты.Склад
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    вт_Остатки.Номенклатура КАК Номенклатура,
    вт_Остатки.СтоимостьКонечныйОстаток КАК СтоимостьКонечныйОстаток,
    вт_Остатки.КонечныйОстаток КАК КонечныйОстаток,
    вт_Остатки.Период КАК Период,
    вт_Остатки.Склад КАК Склад
ПОМЕСТИТЬ вт_ОстаткиРент
ИЗ
    вт_Остатки КАК вт_Остатки

ИНДЕКСИРОВАТЬ ПО
    Номенклатура,
    Период,
    Склад
;


Это когда в ресурсах "1"
10 Tonik992
 
25.04.19
12:32
Увидел, что кроме этого убирается ресурс "КоличествоОборот". Сделайте его обязательным в полях.
+ можете для анализа добавить в структуру отчета группировку по детальным записям и сравнить, какие выводятся детальные записи в первом и во втором случаях.
11 Zombi
 
25.04.19
12:53
(10) Да, сделал поле обязательным и все заработало как надо. Спасибо!
(3) Вам тоже спасибо за подсказку.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн