|
СКД остатки за каждый период разделить на сумму продаж указанного периода ДО | ☑ | ||
---|---|---|---|---|
0
Vladislava-smile
17.07.15
✎
02:06
|
Я создала 2 набора данных в СКД. Один - остатки, второй - продажи. В параметрах указаны разные периоды. В первом наборе допустим остаток на 30 апреля и 31 мая, а во втором наборе пользователь указывает 3 месяца тем самым указывая период продаж с 1 февраля по 30 апреля. Подскажите как реализовать механизм - нужно делить остаток на апрель на сумму продаж (фев+март+апрель), остаток на май делить (март+апр+май). Есть ли такая возможность в СКД? или это только запросами можно сделать, но картинка в голове не складывается. (
|
|||
1
Vladislava-smile
17.07.15
✎
03:26
|
Ну кто-нибудь ... (
|
|||
2
Peltzer
17.07.15
✎
05:45
|
Вроде бы, нужно курить параметры связи данных
|
|||
3
Cube
17.07.15
✎
06:29
|
(0) "нужно делить остаток на апрель на сумму продаж (фев+март+апрель)"
Это как? |
|||
4
echo77
17.07.15
✎
06:44
|
В СКД завести вычисляемое поле: "ТвоеПоле"
на вкладке ресурсы прописать выражение для ТвоеПоле: Остаток / Сумма(СуммаПродаж) |
|||
5
timmy
17.07.15
✎
06:54
|
||||
6
timmy
17.07.15
✎
07:02
|
из источника в приемник передаете параметр даты, а в самом приемнике запрос Дата - 3 мес до Дата
|
|||
7
Vladislava-smile
17.07.15
✎
08:51
|
Уже вроде сообразила, тут другая проблема нарисовалась - у меня есть еще выбор отображения по периодам - по дням или по месяцам, и период для вычисления суммы продаж тоже может указываться в месяцах или днях, чтобы не было неразберихи в днях решила сделать 2 схемы СКД и вызывать по условию, но эта гадость не работает (((
Если ЭлементыФормы.ПолеВвода22.Значение="Месяц" тогда СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанныхМесяц"); Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию; //Помещаем в переменную данные о расшифровке данных ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; //Формируем макет, с помощью компоновщика макета КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; //Передаем в макет компоновки схему, настройки и данные расшифровки МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки); //Выполним компоновку с помощью процессора компоновки ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,, ДанныеРасшифровки); //Очищаем поле табличного документа Результат = ЭлементыФормы.Результат; Результат.Очистить(); //Выводим результат в табличный документ ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(Результат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); КонецЕсли; А он грузит ОсновнаяСхемаКомпоновкиДанныхДень |
|||
8
zippygrill
17.07.15
✎
09:15
|
в подзапросе выбираешь только сумма остатка и сумма продаж за указанный период и дели.
|
|||
9
Vladislava-smile
19.07.15
✎
08:52
|
(6) А не подскажите подробнее немного - это надо делать новый набор данных и там делать связь? И примерчик если есть под боком? ) Отдаленно пока представляю как реализуется данный метод.
|
|||
10
Vladislava-smile
20.07.15
✎
04:59
|
Создала еще один набор данных и написала запрос
ВЫБРАТЬ ПродажиОбороты.Номенклатура КАК Номенклатура, ПродажиОбороты.Период КАК ПериодПродажиСумма, ВЫБОР КОГДА ПродажиСумма.Период >= ДОБАВИТЬКДАТЕ(ПродажиОбороты.Период, МЕСЯЦ, -&Разница + 1) И ПродажиСумма.Период <= ПродажиОбороты.Период ТОГДА СУММА(ПродажиСумма.КоличествоОборот) КОНЕЦ КАК СуммаПродажи, ДОБАВИТЬКДАТЕ(ПродажиОбороты.Период, МЕСЯЦ, -&Разница + 1) КАК ДатаНачалаПродСРазницей, ПродажиСумма.Период КАК ПериодВложЗапрос ИЗ РегистрНакопления.Продажи.Обороты(&НачалоПериодаОстаток, &КонецПериодаОстаток, Месяц, ) КАК ПродажиОбороты ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПродажиОбороты.КоличествоОборот КАК КоличествоОборот, ПродажиОбороты.Номенклатура КАК Номенклатура, ПродажиОбороты.Период КАК Период ИЗ РегистрНакопления.Продажи.Обороты(&НачалоПериодаПродажи, &КонецПериодаПродажи, Месяц, ) КАК ПродажиОбороты) КАК ПродажиСумма ПО ПродажиОбороты.Номенклатура = ПродажиСумма.Номенклатура СГРУППИРОВАТЬ ПО ПродажиОбороты.Номенклатура, ПродажиОбороты.Период, ПродажиСумма.Период Не корректно днные выводит ... ( |
|||
11
Vladislava-smile
20.07.15
✎
05:02
|
||||
12
Cube
20.07.15
✎
05:05
|
(10) Если тебе нужны группировки по разным периодам, то в запросе периодичность виртуальной таблицы нужно ставить не "Месяц", а "Авто". А потом уже, в группировку строк пихать или поле "Период, месяц" или поле "Период, день"...
|
|||
13
Cube
20.07.15
✎
05:06
|
(12) И не забудь в запросе поля периодов добавить.
|
|||
14
Vladislava-smile
20.07.15
✎
06:22
|
Сделала, не помогло. Он не выводит значения в колонках, когда не было движений, может условие какое-то прописать на незаполненную дату?
|
|||
15
DCKiller
20.07.15
✎
06:26
|
(14) Кури здесь, как выводить остатки за периоды, по которым не было движений
http://1c-wiki.ru/wiki/Ежедневные_остатки |
|||
16
Vladislava-smile
20.07.15
✎
06:42
|
А можно это как то сделать через вычисляемые поля?
|
|||
17
Vladislava-smile
20.07.15
✎
07:20
|
Блин, не получается.
|
|||
18
Vladislava-smile
20.07.15
✎
07:24
|
вот так прописываю в выч поле
|
|||
19
Vladislava-smile
20.07.15
✎
07:24
|
выбор когда ПериодПродажи >=ДОБАВИТЬКДАТЕ(Период, "МЕСЯЦ", -&Разница + 1) и ПериодПродажи <=Период тогда количествоОборот конец
|
|||
20
Vladislava-smile
20.07.15
✎
07:24
|
не хочет
|
|||
21
DCKiller
20.07.15
✎
07:35
|
1. Получи остатки за оба периода двумя разными запросами, как в (15)
2. Получи обороты по продажам за те же периоды. 3. Соедини обе таблицы в запросе и там все подели. 4. PROFIT И не надо тут никаких вычисляемых полей и нескольких наборов данных. Усложняешь себе жизнь, ИМХО. |
|||
22
Vladislava-smile
20.07.15
✎
07:57
|
(21) - Не могу понять как "Получи обороты по продажам за те же периоды. ". У нас может быть абсолютно разные периоды и на разное количество месяцев сдвигать тоже можно. В запросе как указывать период, там только стандартные - месяц, год день и т. д.
|
|||
23
DCKiller
20.07.15
✎
08:01
|
(22) Ну и получай обороты по продажам за те периоды, которые тебе нужны, в чем проблема-то? Периодичность для этого совершенно не нужна.
|
|||
24
Vladislava-smile
20.07.15
✎
08:04
|
Пример: Продажи на конец апреля, мая, июня, июля, где
на апрель - сумма продаж за янв, фев, март, апр, на май - сумма продаж за фев, март, апр, май, на июнь - март, апр, май, июнь, на июль - апр, май, июнь, июль |
|||
25
lopus
20.07.15
✎
08:24
|
ВЫБРАТЬ
ПродажиОбороты.Номенклатура КАК Номенклатура, ПродажиОбороты.Период КАК ПериодПродажиСумма, ВЫБОР КОГДА ПродажиСумма.Период >= ДОБАВИТЬКДАТЕ(ПродажиОбороты.Период, МЕСЯЦ, -&Разница + 1) И ПродажиСумма.Период <= ПродажиОбороты.Период ТОГДА СУММА(ПродажиСумма.КоличествоОборот) КОНЕЦ КАК СуммаПродажи, ДОБАВИТЬКДАТЕ(ПродажиОбороты.Период, МЕСЯЦ, -&Разница + 1) КАК ДатаНачалаПродСРазницей, ПродажиСумма.Период КАК ПериодВложЗапрос ИЗ РегистрНакопления.Продажи.Обороты(&НачалоПериодаОстаток, &КонецПериодаОстаток, Месяц, ) КАК ПродажиОбороты ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПродажиОбороты.КоличествоОборот КАК КоличествоОборот, ПродажиОбороты.Номенклатура КАК Номенклатура, ПродажиОбороты.Период КАК Период ИЗ РегистрНакопления.Продажи.Обороты( ДОБАВИТЬКДАТЕ(&НачалоПериодаПродажи, МЕСЯЦ, -&Разница + 1), &КонецПериодаПродажи, Месяц, ) КАК ПродажиОбороты) КАК ПродажиСумма ПО ПродажиОбороты.Номенклатура = ПродажиСумма.Номенклатура СГРУППИРОВАТЬ ПО ПродажиОбороты.Номенклатура, ПродажиОбороты.Период, ПродажиСумма.Период А так попробовать |
|||
26
Vladislava-smile
20.07.15
✎
08:40
|
(25) нифига
Рез - https://dropmefiles.com/aMjos Жаль, что параметры нельзя указывать в запросе для вложенного. Как я понимаю - во вложенном запросе надо ставить период и начП - ПродажиОбороты.Период - 3 мес, КонП - КонецПериода(ПродажиОбороты.Период, месяц), а как прописать не знаю |
|||
27
Vladislava-smile
20.07.15
✎
09:17
|
Вот блин, есть еще варианты у кого-нибудь? Может как то через связи наборов СКД в приемник передавать начало и конец периода для суммирования? Но будет ли он так работать ...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |