Имя: Пароль:
1C
1C 7.7
v7: Подскажите по регистрам новичку
,
0 oleg056
 
02.08.12
10:46
Есть запрос по расходным наклонным - "Расход за период"
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|ТМЦ = Документ.РозничнаяНакладная.ТМЦ;
|Кво = Документ.РозничнаяНакладная.Кво;
|ЦенаСНДС = Документ.РозничнаяНакладная.ЦенаСНДС;
|СуммаСНДС = Документ.РозничнаяНакладная.СуммаСНДС;
|Склад = Документ.РозничнаяНакладная.Склад;
|Условие (Склад в ВыбСклады);
|Функция КвоСумма = Сумма(Кво);  
|Группировка ТМЦ
|Упорядочить по ТМЦ.Код;
|Группировка ЦенаСНДС;    
|";//}}ЗАПРОС

Решил переделать на регистры

"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|ТМЦ = Регистр.Обороты.ТМЦ;
|Кво = Регистр.Обороты.РасходКво;
|ЦенаСНДС = Регистр.Обороты.Цена; //<<<<<<<<<<<<<<<<<<<<<<<<<
|СуммаСНДС = Регистр.Обороты.РасходОсн;
|Склад = Регистр.Обороты.Склад;
|Условие (Склад в ВыбСклады);
|Функция КвоСумма = Сумма(Кво);  
|Группировка ТМЦ
|Упорядочить по ТМЦ.Код;
|Группировка ЦенаСНДС;    
|";//}}ЗАПРОС

Но в регистрах отсутствовала цена за единицу
Регистр.Обороты.Цена

Я добавил это поле.

Вопрос. Нормально держать в регистрах цену за единицу или нет,
или может первый запрос лучше, а может вообще по третьему делать.
1 Nirvana
 
02.08.12
13:14
ЦенаСНДС=Регистр.Обороты.РасходОсн/Регистр.Обороты.РасходКво
2 Ыщъ
 
02.08.12
13:18
(1) Что это было?
3 oleg056
 
02.08.12
13:19
(1) Так получится средняя цена.
Вот я и думаю нормально сохранять в регистры Цену за единицу?
4 Ёпрст
 
02.08.12
13:25
(3) не нормально
5 Волесвет
 
02.08.12
13:31
нафига в регистрах цену за единицу????О_О
6 Karambol
 
02.08.12
13:31
Цену, как справочную информацию, логично хранить в справочнике
7 oleg056
 
02.08.12
13:31
Подскажите как тогда правильно делать?
Если цена за единицу от документа к документу может быть разной
и в отчете я должен группировать по Цене

1й запрос у меня работает, но хотелось чтоб все правильно было. Вот и пытаюсь это через регистры сделать
8 oleg056
 
02.08.12
13:32
(6) Цена разная от документа к документу
9 Karambol
 
02.08.12
13:33
(8)Как цена зависит от документа?
10 Nirvana
 
02.08.12
13:34
(7) Всё зависит от задачи. Если нужна аналитика в разрезе цен, значит нужно измерение в регистре.
11 Волесвет
 
02.08.12
13:34
(7) в тз и сортируем по номенклатуре и цене
12 ЧеловекДуши
 
02.08.12
13:35
(8)Ты лучше назови ка нам отчет, как его там у вас кликать будут?
Чувствую, ты что-то не то мастеришь ;)
13 oleg056
 
02.08.12
13:35
(9) Я могу не правильно выражаться
Но разве я не могу продавать один и тот-же товар по разной цене
14 Karambol
 
02.08.12
13:36
Может проще получать цену так: Цена = Сумма/Количество?
15 oleg056
 
02.08.12
13:36
(14) Проще. Но разве он не среднюю цену выведет?
И я не смогу Группировать по Цене
16 oleg056
 
02.08.12
13:38
В отчете одинаковый товар но с разной ценой не групируется
17 Karambol
 
02.08.12
13:38
(15)А если сделать группировку по документу и в этой группировке так получать цену?
18 oleg056
 
02.08.12
13:45
(17) Вроде так получается. Хм
Тогда нужно будет сделать ограничение в документе на повторяющие позиции.

Правильно я понимаю?
19 Nikitas
 
02.08.12
13:48
можешь группировать по срокам документов
20 oleg056
 
02.08.12
13:52
(19) Не очень понял как это

Сейчас получилось так
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|ТМЦ = Регистр.Обороты.ТМЦ;
|Кво = Регистр.Обороты.РасходКво;
|СуммаСНДС = Регистр.Обороты.РасходОсн;
|ТекДок = Регистр.Обороты.ТекущийДокумент;
|Склад = Регистр.Обороты.Склад;
|Условие (Склад в ВыбСклады);
|Функция КвоСумма = Сумма(Кво);  
|Группировка ТМЦ
|Упорядочить по ТМЦ.Код;
|Группировка ТекДок;    
|";//}}ЗАПРОС

Но есть ограничение (18) или это нормальное ограничение?
21 Nirvana
 
02.08.12
13:55
(17)(18) Если везде делать группировки по документу, то пропадает смысл вообще держать регистр оборотов, достаточно самих документов.
22 oleg056
 
02.08.12
13:58
Т.е в моем случае Регистры нечего не выигрывают и можно оставить запрос (1) по документам ?
23 oleg056
 
02.08.12
14:03
ошибся (1)* а (0)
24 Nikitas
 
02.08.12
14:10
Специально держать регистр для такой цели конечно бестолково
25 Karambol
 
02.08.12
14:36
В чем суть задачи?
26 Злопчинский
 
02.08.12
15:07
неясен смысл задачи... на какой вопрос хотят получить ответ..? по какой цене лучше всего продавался товар..? это и так понятно - лучше всего будет если товар покупателям будет отдаваться безвозмездно
27 oleg056
 
02.08.12
15:16
(25) Суть задачи сделать правильно отчет больше в академических целях.
Есть рабочий вариант
"//{{ЗАПРОС(Сформировать)

|Период с ВыбНачПериода по ВыбКонПериода;
|ТМЦ = Документ.РозничнаяНакладная.ТМЦ;
|Кво = Документ.РозничнаяНакладная.Кво;
|ЦенаСНДС = Документ.РозничнаяНакладная.ЦенаСНДС;
|СуммаСНДС = Документ.РозничнаяНакладная.СуммаСНДС;
|Склад = Документ.РозничнаяНакладная.Склад;
|Условие (Склад в ВыбСклады);
|Функция КвоСумма = Сумма(Кво);  
|Группировка ТМЦ
|Упорядочить по ТМЦ.Код;
|Группировка ЦенаСНДС;    
|";//}}ЗАПРОС

И

ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)

|Период с ВыбНачПериода по ВыбКонПериода;
|ТМЦ = Регистр.Обороты.ТМЦ;
|Кво = Регистр.Обороты.РасходКво;
|СуммаСНДС = Регистр.Обороты.РасходОсн;
|ТекДок = Регистр.Обороты.ТекущийДокумент;
|Склад = Регистр.Обороты.Склад;
|Условие (Склад в ВыбСклады);
|Функция КвоСумма = Сумма(Кво);  
|Группировка ТМЦ
|Упорядочить по ТМЦ.Код;
|Группировка ТекДок;    
|";//}}ЗАПРОС

Но (21) Что смысла во втором варианте нет так как есть группировка по документу.

Вопрос в том какой из этих двух вариантов выбрать. Тем более, что запрос с регистрами требует ограничение чтобы небыло одинаковых товаров в одном документе.

Сам отчет выглядит:
- продажи за периуд
- группировка по товарам
- группировка по ценнам
(16)
28 Nirvana
 
02.08.12
15:41
(27) Нужно исходить из всего комплекса задач.
В данном случае (если "Склад" - это реквизит шапки документа "РозничнаяНакладная") отбор по регистру с детализацией до документа будет сопоставим с перебором документов (и фильтрацией их по складу).
Если же держать регистр в разрезе цен, то выборка итогов по регистру сразу выдаст все нужные данные (уже суммированные), в отличие от долгого перебора документов за период. Однако, если почти каждое сочетание товар+цена в документе будет уникальным (один и тот же товар по одной и той же цене не будет повторяться в периоде), в итогах регистра будет то же самое, что и в документах, то есть выигрыш опять же будет невелик.
Другое дело, если понадобится ещё отбирать данные не по складу, а по конкретному товару (или группе) или по конкретной цене (списку цен) - тут, опять же, отбор итогов по регистру будет гораздо производительнее, чем перебор всех документов.
29 oleg056
 
02.08.12
16:02
(28) Спасибо. Вроде начинает доходить