|
СКД отчет не видит период | ☑ | ||
---|---|---|---|---|
0
2307861c
05.01.12
✎
12:36
|
Вот кусок как задаю период
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты({&ДатаНачало}, {&ДатаКонец}, Авто, ) КАК ПродажиОбороты а в отчет почему-то попадают документы за другие периоды тоже. Кто-то сталкивался? |
|||
1
zak555
05.01.12
✎
12:38
|
датаДока не всегда равна дате записи движения это дока
|
|||
2
2307861c
05.01.12
✎
12:49
|
(1)Проверил дата документа и дата движений совпадает
|
|||
3
2307861c
05.01.12
✎
12:52
|
Вот полный запрос
ВЫБРАТЬ VKSOFT_ПроцентыПоМенеджерам.Менеджер КАК Менеджер, ПродажиОбороты.Номенклатура, ПродажиОбороты.ЗаказПокупателя КАК Документ, ВЫРАЗИТЬ((ПродажиОбороты.СтоимостьОборот - ПродажиСебестоимостьОбороты.СтоимостьОборот) * &Курс КАК ЧИСЛО(15, 2)) КАК ВаловаяПрибыльЗаказ, ВЫРАЗИТЬ((ПродажиОбороты.СтоимостьОборот - ПродажиСебестоимостьОбороты.СтоимостьОборот) / 100 * VKSOFT_ПроцентыПоМенеджерам.ПроцентСЗаказа * &Курс КАК ЧИСЛО(15, 2)) КАК СуммаПроцентовЗаказ, NULL КАК ВаловаяПрибыльРеслизация, NULL КАК СуммаПроцентовРеализация, VKSOFT_ПроцентыПоМенеджерам.ГруппаНоменклатуры, VKSOFT_ПроцентыПоМенеджерам.ГруппаКонтрагентов, VKSOFT_ПроцентыПоМенеджерам.ПроцентСЗаказа, NULL КАК ПроцентСПродаж, 0 КАК ОбщаяСуммаПроцентов ИЗ РегистрСведений.VKSOFT_ПроцентыПоМенеджерам КАК VKSOFT_ПроцентыПоМенеджерам ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты({&ДатаНачало}, {&ДатаКонец}, Авто, ) КАК ПродажиОбороты ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПродажиСебестоимость.Обороты({&ДатаНачало}, {&ДатаКонец}, Авто, ) КАК ПродажиСебестоимостьОбороты ПО ПродажиОбороты.Номенклатура = ПродажиСебестоимостьОбороты.Номенклатура И ПродажиОбороты.Регистратор = ПродажиСебестоимостьОбороты.Регистратор ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ТаблицаОстатков.ДоговорКонтрагента.Организация КАК Организация, ТаблицаОстатков.ДоговорКонтрагента.Владелец КАК Контрагент, ТаблицаОстатков.ДоговорКонтрагента КАК ДоговорКонтрагента, ТаблицаДокументов.Регистратор КАК Регистратор, ТаблицаДокументов.СуммаВзаиморасчетовПриход КАК СуммаДокумента, ВЫБОР КОГДА СУММА(ТаблицаНакопления.СуммаВзаиморасчетовПриход) < МАКСИМУМ(ТаблицаОстатков.СуммаВзаиморасчетовОстаток) ТОГДА МАКСИМУМ(ТаблицаДокументов.СуммаВзаиморасчетовПриход) ИНАЧЕ МАКСИМУМ(ТаблицаОстатков.СуммаВзаиморасчетовОстаток) - (СУММА(ТаблицаНакопления.СуммаВзаиморасчетовПриход) - МАКСИМУМ(ТаблицаДокументов.СуммаВзаиморасчетовПриход)) КОНЕЦ КАК ОплатитьПоДокументу, ТаблицаОстатков.СуммаВзаиморасчетовОстаток КАК СуммаДолга ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты({&ДатаНачало}, {&ДатаКонец}, Регистратор, , {(ДоговорКонтрагента.Владелец).* КАК Контрагент, (ДоговорКонтрагента).* КАК ДоговорКонтрагента, (ДоговорКонтрагента.Организация).* КАК Организация}) КАК ТаблицаНакопления ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты({&ДатаНачало}, {&ДатаКонец}, Регистратор, , {(ДоговорКонтрагента.Владелец).* КАК Контрагент, (ДоговорКонтрагента).* КАК ДоговорКонтрагента, (ДоговорКонтрагента.Организация).* КАК Организация}) КАК ТаблицаДокументов ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки({&ДатаКонец}, {(ДоговорКонтрагента.Владелец).* КАК Контрагент, (ДоговорКонтрагента).* КАК ДоговорКонтрагента, (ДоговорКонтрагента.Организация).* КАК Организация}) КАК ТаблицаОстатков ПО ТаблицаДокументов.ДоговорКонтрагента = ТаблицаОстатков.ДоговорКонтрагента ПО (ТаблицаДокументов.Период <= ТаблицаНакопления.Период) И ТаблицаНакопления.ДоговорКонтрагента = ТаблицаДокументов.ДоговорКонтрагента ГДЕ ТаблицаНакопления.СуммаВзаиморасчетовПриход > 0 И ТаблицаДокументов.СуммаВзаиморасчетовПриход > 0 СГРУППИРОВАТЬ ПО ТаблицаОстатков.ДоговорКонтрагента, ТаблицаДокументов.Регистратор, ТаблицаДокументов.СуммаВзаиморасчетовПриход, ТаблицаОстатков.СуммаВзаиморасчетовОстаток, ТаблицаОстатков.ДоговорКонтрагента.Организация, ТаблицаОстатков.ДоговорКонтрагента.Владелец ИМЕЮЩИЕ МАКСИМУМ(ТаблицаОстатков.СуммаВзаиморасчетовОстаток) - (СУММА(ТаблицаНакопления.СуммаВзаиморасчетовПриход) - МАКСИМУМ(ТаблицаДокументов.СуммаВзаиморасчетовПриход)) > 0) КАК НеОплаченные ПО ПродажиОбороты.Регистратор = НеОплаченные.Регистратор ПО VKSOFT_ПроцентыПоМенеджерам.Менеджер = ПродажиОбороты.ЗаказПокупателя.Ответственный И (ПродажиОбороты.Номенклатура.Родитель = VKSOFT_ПроцентыПоМенеджерам.ГруппаНоменклатуры ИЛИ ПродажиОбороты.Номенклатура.Родитель.Родитель = VKSOFT_ПроцентыПоМенеджерам.ГруппаНоменклатуры ИЛИ ПродажиОбороты.Номенклатура.Родитель.Родитель.Родитель = VKSOFT_ПроцентыПоМенеджерам.ГруппаНоменклатуры ИЛИ ПродажиОбороты.Номенклатура.Родитель.Родитель.Родитель.Родитель = VKSOFT_ПроцентыПоМенеджерам.ГруппаНоменклатуры ИЛИ ПродажиОбороты.Номенклатура.Родитель.Родитель.Родитель.Родитель.Родитель = VKSOFT_ПроцентыПоМенеджерам.ГруппаНоменклатуры ИЛИ ПродажиОбороты.Номенклатура.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель = VKSOFT_ПроцентыПоМенеджерам.ГруппаНоменклатуры) И (ПродажиОбороты.Контрагент.Родитель = VKSOFT_ПроцентыПоМенеджерам.ГруппаКонтрагентов ИЛИ ПродажиОбороты.Контрагент.Родитель.Родитель = VKSOFT_ПроцентыПоМенеджерам.ГруппаКонтрагентов ИЛИ ПродажиОбороты.Контрагент.Родитель.Родитель.Родитель = VKSOFT_ПроцентыПоМенеджерам.ГруппаКонтрагентов ИЛИ ПродажиОбороты.Контрагент.Родитель.Родитель.Родитель.Родитель = VKSOFT_ПроцентыПоМенеджерам.ГруппаКонтрагентов ИЛИ ПродажиОбороты.Контрагент.Родитель.Родитель.Родитель.Родитель.Родитель = VKSOFT_ПроцентыПоМенеджерам.ГруппаКонтрагентов ИЛИ ПродажиОбороты.Контрагент.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель = VKSOFT_ПроцентыПоМенеджерам.ГруппаКонтрагентов) ГДЕ (НеОплаченные.ОплатитьПоДокументу <= 0 ИЛИ ЕСТЬNULL(НеОплаченные.Регистратор, 0) = 0) ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ VKSOFT_ПроцентыПоМенеджерам.Менеджер, ПродажиОбороты.Номенклатура, ПродажиОбороты.ДокументПродажи, NULL, NULL, ВЫРАЗИТЬ((ПродажиОбороты.СтоимостьОборот - ПродажиСебестоимостьОбороты.СтоимостьОборот) * &Курс КАК ЧИСЛО(15, 2)), ВЫРАЗИТЬ((ПродажиОбороты.СтоимостьОборот - ПродажиСебестоимостьОбороты.СтоимостьОборот) / 100 * VKSOFT_ПроцентыПоМенеджерам.ПроцентСПродаж * &Курс КАК ЧИСЛО(15, 2)), VKSOFT_ПроцентыПоМенеджерам.ГруппаНоменклатуры, VKSOFT_ПроцентыПоМенеджерам.ГруппаКонтрагентов, NULL, VKSOFT_ПроцентыПоМенеджерам.ПроцентСПродаж, 0 ИЗ РегистрСведений.VKSOFT_ПроцентыПоМенеджерам КАК VKSOFT_ПроцентыПоМенеджерам ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты({&ДатаНачало}, {&ДатаКонец}, Авто, ) КАК ПродажиОбороты ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПродажиСебестоимость.Обороты({&ДатаНачало}, {&ДатаКонец}, Авто, ) КАК ПродажиСебестоимостьОбороты ПО ПродажиОбороты.Номенклатура = ПродажиСебестоимостьОбороты.Номенклатура И ПродажиОбороты.Регистратор = ПродажиСебестоимостьОбороты.Регистратор ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ТаблицаОстатков.ДоговорКонтрагента.Организация КАК Организация, ТаблицаОстатков.ДоговорКонтрагента.Владелец КАК Контрагент, ТаблицаОстатков.ДоговорКонтрагента КАК ДоговорКонтрагента, ТаблицаДокументов.Регистратор КАК Регистратор, ТаблицаДокументов.СуммаВзаиморасчетовПриход КАК СуммаДокумента, ВЫБОР КОГДА СУММА(ТаблицаНакопления.СуммаВзаиморасчетовПриход) < МАКСИМУМ(ТаблицаОстатков.СуммаВзаиморасчетовОстаток) ТОГДА МАКСИМУМ(ТаблицаДокументов.СуммаВзаиморасчетовПриход) ИНАЧЕ МАКСИМУМ(ТаблицаОстатков.СуммаВзаиморасчетовОстаток) - (СУММА(ТаблицаНакопления.СуммаВзаиморасчетовПриход) - МАКСИМУМ(ТаблицаДокументов.СуммаВзаиморасчетовПриход)) КОНЕЦ КАК ОплатитьПоДокументу, ТаблицаОстатков.СуммаВзаиморасчетовОстаток КАК СуммаДолга ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты({&ДатаНачало}, {&ДатаКонец}, Регистратор, , {(ДоговорКонтрагента.Владелец).* КАК Контрагент, (ДоговорКонтрагента).* КАК ДоговорКонтрагента, (ДоговорКонтрагента.Организация).* КАК Организация}) КАК ТаблицаНакопления ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты({&ДатаНачало}, {&ДатаКонец}, Регистратор, , {(ДоговорКонтрагента.Владелец).* КАК Контрагент, (ДоговорКонтрагента).* КАК ДоговорКонтрагента, (ДоговорКонтрагента.Организация).* КАК Организация}) КАК ТаблицаДокументов ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки({&ДатаКонец}, {(ДоговорКонтрагента.Владелец).* КАК Контрагент, (ДоговорКонтрагента).* КАК ДоговорКонтрагента, (ДоговорКонтрагента.Организация).* КАК Организация}) КАК ТаблицаОстатков ПО ТаблицаДокументов.ДоговорКонтрагента = ТаблицаОстатков.ДоговорКонтрагента ПО (ТаблицаДокументов.Период <= ТаблицаНакопления.Период) И ТаблицаНакопления.ДоговорКонтрагента = ТаблицаДокументов.ДоговорКонтрагента ГДЕ ТаблицаНакопления.СуммаВзаиморасчетовПриход > 0 И ТаблицаДокументов.СуммаВзаиморасчетовПриход > 0 СГРУППИРОВАТЬ ПО ТаблицаОстатков.ДоговорКонтрагента, ТаблицаДокументов.Регистратор, ТаблицаДокументов.СуммаВзаиморасчетовПриход, ТаблицаОстатков.СуммаВзаиморасчетовОстаток, ТаблицаОстатков.ДоговорКонтрагента.Организация, ТаблицаОстатков.ДоговорКонтрагента.Владелец ИМЕЮЩИЕ МАКСИМУМ(ТаблицаОстатков.СуммаВзаиморасчетовОстаток) - (СУММА(ТаблицаНакопления.СуммаВзаиморасчетовПриход) - МАКСИМУМ(ТаблицаДокументов.СуммаВзаиморасчетовПриход)) > 0) КАК НеОплаченные ПО ПродажиОбороты.Регистратор = НеОплаченные.Регистратор ПО VKSOFT_ПроцентыПоМенеджерам.Менеджер = ПродажиОбороты.ДокументПродажи.Ответственный И (ПродажиОбороты.Номенклатура.Родитель = VKSOFT_ПроцентыПоМенеджерам.ГруппаНоменклатуры ИЛИ ПродажиОбороты.Номенклатура.Родитель.Родитель = VKSOFT_ПроцентыПоМенеджерам.ГруппаНоменклатуры ИЛИ ПродажиОбороты.Номенклатура.Родитель.Родитель.Родитель = VKSOFT_ПроцентыПоМенеджерам.ГруппаНоменклатуры ИЛИ ПродажиОбороты.Номенклатура.Родитель.Родитель.Родитель.Родитель = VKSOFT_ПроцентыПоМенеджерам.ГруппаНоменклатуры ИЛИ ПродажиОбороты.Номенклатура.Родитель.Родитель.Родитель.Родитель.Родитель = VKSOFT_ПроцентыПоМенеджерам.ГруппаНоменклатуры ИЛИ ПродажиОбороты.Номенклатура.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель = VKSOFT_ПроцентыПоМенеджерам.ГруппаНоменклатуры) И (ПродажиОбороты.Контрагент.Родитель = VKSOFT_ПроцентыПоМенеджерам.ГруппаКонтрагентов ИЛИ ПродажиОбороты.Контрагент.Родитель.Родитель = VKSOFT_ПроцентыПоМенеджерам.ГруппаКонтрагентов ИЛИ ПродажиОбороты.Контрагент.Родитель.Родитель.Родитель = VKSOFT_ПроцентыПоМенеджерам.ГруппаКонтрагентов ИЛИ ПродажиОбороты.Контрагент.Родитель.Родитель.Родитель.Родитель = VKSOFT_ПроцентыПоМенеджерам.ГруппаКонтрагентов ИЛИ ПродажиОбороты.Контрагент.Родитель.Родитель.Родитель.Родитель.Родитель = VKSOFT_ПроцентыПоМенеджерам.ГруппаКонтрагентов ИЛИ ПродажиОбороты.Контрагент.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель = VKSOFT_ПроцентыПоМенеджерам.ГруппаКонтрагентов) ГДЕ (НеОплаченные.ОплатитьПоДокументу <= 0 ИЛИ ЕСТЬNULL(НеОплаченные.Регистратор, 0) = 0) |
|||
4
PVV65
05.01.12
✎
13:43
|
(0) >> а в отчет почему-то попадают документы за другие периоды тоже
Как определил, если в итоговой таблице только >> ПродажиОбороты.ЗаказПокупателя КАК Документ, который может быть за любой период? |
|||
5
sergei123654
05.01.12
✎
13:47
|
(0) а если поменять на
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты({&НАЧАЛОПЕРИОДА}, {&КОНЕЦПЕРИОДА}, Авто, ) КАК ПродажиОбороты тоже не работает? |
|||
6
sergei123654
05.01.12
✎
13:48
|
+(5) точнее
{&ДатаНачало} = {&НАЧАЛОПЕРИОДА} {&ДатаКонец} = {&КОНЕЦПЕРИОДА} |
|||
7
PVV65
05.01.12
✎
13:50
|
(5) Ты делаешь отборы по периоду регистров, а выводишь заказы, которые не обязаны попадать в период регистров.
|
|||
8
PVV65
05.01.12
✎
13:50
|
+(7) или я чего то не понял...
|
|||
9
PVV65
05.01.12
✎
13:51
|
Т.е. - какие документы "лишние"?
|
|||
10
2307861c
05.01.12
✎
14:00
|
(9) Лишние реализаци, заказы могут быть не за период в том случаи если продажа этого заказа была в указаном периоде отчета.
|
|||
11
PVV65
05.01.12
✎
14:03
|
(10) Как определил, что есть лишние реализации?
|
|||
12
2307861c
05.01.12
✎
14:10
|
(12) Поставил период с 01.12.11 по 02.12.11 а попал документ за 28.11.11
|
|||
13
PVV65
05.01.12
✎
14:12
|
(12) Документ ЗаказПокупателя?
|
|||
14
2307861c
05.01.12
✎
14:13
|
(13)Реализация
|
|||
15
2307861c
05.01.12
✎
14:13
|
Ещё момент формирую отчет вот так
ЭлементыФормы.Результат.Очистить(); КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[0].Использование = Истина; КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[0].Значение = ДатаНачала; КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[1].Использование = Истина; КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[1].Значение = ДатаОкончания; Если ВГРН Тогда СтруктураКурсаДокумента = МодульВалютногоУчета.ПолучитьКурсВалюты(Константы.ВалютаУправленческогоУчета.Получить(), ТекущаяДата()); Курс = СтруктураКурсаДокумента.Курс; Иначе Курс = 1; КонецЕсли; КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[2].Использование = Истина; КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[2].Значение = Курс; СкомпоноватьРезультат(ЭлементыФормы.Результат, ДанныеРасшифровки); |
|||
16
PVV65
05.01.12
✎
14:15
|
(14) Я ж и спрашиваю - в за просе есть поле "Документ" (ЗаказПокупателя), а говоришь попала реализация - как увидел?
|
|||
17
sergei123654
05.01.12
✎
14:16
|
(15) Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("НачалоПериода", Отчет.НачалоПериода);
|
|||
18
2307861c
05.01.12
✎
14:26
|
(17) У меня запрос объединяет две таблицы продажи по заказам и продажи по реализациям, смотрите выше весь запрос предоставил.
|
|||
19
2307861c
05.01.12
✎
14:28
|
(17) Недумаю что поможет, проверял в отладчике параметры по периодам установлены перед компоновкой отчета.
|
|||
20
2307861c
05.01.12
✎
14:30
|
(18) для (16)
|
|||
21
PVV65
05.01.12
✎
14:35
|
(2) Товарищ не понимает.
В результате запроса я не вижу документов реализации. Поэтому и спрашиваю - как ты увидел документ реализации? |
|||
22
2307861c
05.01.12
✎
14:36
|
(21)ПродажиОбороты.ДокументПродажи, - это и тяне документ реализации
|
|||
23
PVV65
05.01.12
✎
15:06
|
(22) Увидел объединение.
Я бы посмотрел в регистре, какой регистратор у этого документа реализации. |
|||
24
PVV65
05.01.12
✎
15:08
|
+(22) Т.е. нашел бы нужное значение в измерении и сделал по нему отбор и смотрел на регистраторы - документ реализации и регистратор могут не совпадать.
|
|||
25
sergei123654
05.01.12
✎
15:42
|
(18) а этот запрос правильно отрабатывает в консоли запросов?
Если там нормально работает, то скорее всего проблема в устанвке периодов - как вариант решения: создать этот отчет без програмных установок параметров. Параметры все установить через настройку в СКД.(кнопка настройка). А если в консоли неправильно работает, то... то... то отладить его в консоли. ну это мое, сугубо не профессиональное, мнение плотника. |
|||
26
2307861c
05.01.12
✎
15:49
|
(24) Спасибо. Все спасибо. Все оказалось элементарно, есть возврат, а он пишет естественно в "Документ продажи" - реализацию по которой возврат.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |