Имя: Пароль:
1C
1С v8
Запрос. Помогите пожалуйста добавить вычисляемое поле.
0 Koliaff
 
25.09.11
11:08
Доброго времени суток. Конфигурация Бухгалтерия предприятия. Есть необходимость создать запрос, который будет вычислять выручку 50.01 - 90.01.1 созданную документами "Отчет о розничных продажах". Группировки которые необходимы :
1. По складам (беру из документа регистратора), поэтому и периодичность в запросе "регистратор"
2. Номенклатурная группа, заданная у каждой номенклатуры в реквизите "номенклатурная группа".

Вот текст запроса :

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

СГРУППИРОВАТЬ ПО
   ХозрасчетныйОбороты.Регистратор.Склад,
   НАЧАЛОПЕРИОДА(ХозрасчетныйОбороты.Регистратор.Дата, ДЕНЬ),
   ХозрасчетныйОбороты.КорСубконто3.НоменклатурнаяГруппа

УПОРЯДОЧИТЬ ПО
   РегистраторСклад,
   НоменклатурнаяГруппа,
   Период

================================

Запрос сам работает, но возникло дополнительное условие вычислить количество рабочих дней в разрезе складов и номенклатурных групп. Количество рабочих дней позволит в дальнейшем высчитать планируемый объем выручки. Рабочий день - это тот день в котором были движения (по выбранной номенклатурной группе,  выбранному складу). Помогите пожалуйста разобраться. Ни как не могу понять как это сделать. Если бы периодичность была "День" проблем бы не было. Но когда периодичность "День", не могу получить доступ к складу, который хранится в регистраторе. Заранее спасибо.
1 Amra
 
25.09.11
11:20
(0) Нафига в выхи работать? Иди лучше на футбол, не каждый день Спартак приезжает )
2 Rie
 
25.09.11
11:53
(0) Результат твоего запроса сгруппируй по датам.
3 Koliaff
 
25.09.11
12:25
(Amra) Я не футбольный болельщик )
(Rie) Так и так есть группировка по датам :
СГРУППИРОВАТЬ ПО
...
НАЧАЛОПЕРИОДА(ХозрасчетныйОбороты.Регистратор.Дата, ДЕНЬ),
...
==================
Каким образом получить 1 в случае если день рабочий, и 0 если не рабочий ? Учитывая то, что первоначальная группировка по регистратору.
4 jump if zero
 
25.09.11
12:33
ВЫБРАТЬ
ТЕМП.РегистраторСклад,
ТЕМП.НоменклатурнаяГруппа,
Количество(ТЕМП.Период) КАК РабочихДней,
СУММА(ТЕМП.СуммаОборот )
ИЗ

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

СГРУППИРОВАТЬ ПО
  ХозрасчетныйОбороты.Регистратор.Склад,
  НАЧАЛОПЕРИОДА(ХозрасчетныйОбороты.Регистратор.Дата, ДЕНЬ),
  ХозрасчетныйОбороты.КорСубконто3.НоменклатурнаяГруппа
   
 )  КАК ТЕМП
 
 СГРУППИРОВАТЬ ПО ТЕМП.РегистраторСклад,ТЕМП.НоменклатурнаяГруппа
5 kuza2000
 
25.09.11
12:42
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ НАЧАЛОПЕРИОДА(ХозрасчетныйОбороты.Регистратор.Дата, ДЕНЬ)) КАК КоличествоРабочихДней

Может быть так?
6 Koliaff
 
25.09.11
13:27
(kuza2000) Вроде то что надо ) Пошёл пробовать. Всем спасибо за помощь. Тему пока не закрываю )
7 Koliaff
 
26.09.11
09:39
Теперь не получается вычислить поле "План", которое должно вычисляться по формуле :
СреднийЧек * (Количество рабочих дней + Количество дней до конца месяца), где Средний чек = СуммаОборот / Количество рабочих дней
===========================
Не получается в вычисляемых полях СКД написать вот такое выражение, чтобы подбивал итоги по группировкам :
1. Сумма(Сумма(СуммаОборот)/Сумма(КоличествоРабочихДней)*(Сумма(КоличествоРабочихДней)+КоличествоДнейДоКонцаМесяца))), дает только вот это :
2. (СуммаОборот)/Сумма(КоличествоРабочихДней)*(Сумма(КоличествоРабочихДней)+КоличествоДнейДоКонцаМесяца)
=====================================================
Поэтому итоги по группировкам считаются не верно. Они расчитываются, а должны суммироваться из составляющих.

http://www.soft93.ru/plan.jpg
8 Koliaff
 
26.09.11
09:41
Вот сам текст запроса :

ВЫБРАТЬ
   ХозрасчетныйОбороты.Регистратор.Склад КАК РегистраторСклад,
   ХозрасчетныйОбороты.КорСубконто3.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
   СУММА(ХозрасчетныйОбороты.СуммаОборот) КАК СуммаОборот,
   НАЧАЛОПЕРИОДА(ХозрасчетныйОбороты.Регистратор.Дата, ДЕНЬ) КАК Период,
   КОЛИЧЕСТВО(РАЗЛИЧНЫЕ НАЧАЛОПЕРИОДА(ХозрасчетныйОбороты.Регистратор.Дата, ДЕНЬ)) КАК КоличествоРабочихДней,
   СУММА(0) КАК План,
   0 КАК СреднийЧек,
   РАЗНОСТЬДАТ(&КонецПериода, КОНЕЦПЕРИОДА(&КонецПериода, МЕСЯЦ), ДЕНЬ) КАК КоличествоДнейДоКонцаМесяца
{ВЫБРАТЬ
   РегистраторСклад.*,
   НоменклатурнаяГруппа.*,
   СуммаОборот,
   Период}
ИЗ
   РегистрБухгалтерии.Хозрасчетный.Обороты(&НачалоПериода, &КонецПериода, Регистратор, Счет В ИЕРАРХИИ (&Касса), , , КорСчет В ИЕРАРХИИ (&Прибыль), ) КАК ХозрасчетныйОбороты
ГДЕ
   ХозрасчетныйОбороты.Регистратор ССЫЛКА Документ.ОтчетОРозничныхПродажах
   И ХозрасчетныйОбороты.Регистратор.Склад <> &СкладАвтоматы

СГРУППИРОВАТЬ ПО
   ХозрасчетныйОбороты.Регистратор.Склад,
   НАЧАЛОПЕРИОДА(ХозрасчетныйОбороты.Регистратор.Дата, ДЕНЬ),
   ХозрасчетныйОбороты.КорСубконто3.НоменклатурнаяГруппа

УПОРЯДОЧИТЬ ПО
   РегистраторСклад,
   НоменклатурнаяГруппа,
   Период
9 kuza2000
 
26.09.11
10:35
(7)
Формула для детальной записи и формула для итога может быть разной.
На закладке "Ресурсы" можно указать формулы, по которым собираются итоги. Может быть, это поможет?
10 Koliaff
 
26.09.11
17:28
(kuza2000) Как раз формулу и пишу на закладке "ресурсы". Нельзя, как я понял, использовать выражение типа Сумма(Сумма()) в этой формуле. А как это обойти я не знаю.
11 Koliaff
 
26.09.11
20:00
up
12 Koliaff
 
27.09.11
07:54
вверх
13 Koliaff
 
28.09.11
18:58
up
2 + 2 = 3.9999999999999999999999999999999...