Имя: Пароль:
1C
 
1с УТ СКД Не могу получить цены остатков товаров
0 Sorento
 
18.03.24
17:08
Не судите строго, учусь програмировать, подскажите в каком направление двигаться, ситуация следующая : не отображает цену остатков товаров мой код:



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



Жду вашего совета, Спасибо!
1 vicof
 
18.03.24
17:10
ГДЕ замени на И
2 vicof
 
18.03.24
17:11
И естьНулл добавь
3 p-soft
 
18.03.24
17:11
от это вот убрать и дальше ковырять что получится:
"И ТоварыНаСкладахОстаткиИОбороты.Период = ЦеныНоменклатуры.Период"
4 Sorento
 
18.03.24
17:11
Для 8.3
5 vicof
 
18.03.24
17:11
И нафейхоа неделя нужна?
6 vicof
 
18.03.24
17:12
И срез последних добавь вместо обычной таблицы
7 Sorento
 
18.03.24
17:12
неделю поставил, что б по периодах посмотреть
8 banco
 
18.03.24
17:15
ВЫБРАТЬ
    ТоварыНаСкладахОстаткиИОбороты.Период,
    ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход,
    ЦеныНоменклатуры.Цена,
    ЦеныНоменклатуры.ТипЦен,
    ЦеныНоменклатуры.Цена * ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход КАК Расход
ИЗ
    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, , , ) КАК ТоварыНаСкладахОстаткиИОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры(&КонецПериода,ТипЦен = &ТипЦен) КАК ЦеныНоменклатуры
        ПО ТоварыНаСкладахОстаткиИОбороты.Номенклатура = ЦеныНоменклатуры.Номенклатура
9 banco
 
18.03.24
17:16
(8) забыл еще ЕСТЬNULL(ЦеныНоменклатуры.Цена, 0)
10 Sorento
 
18.03.24
17:18
в РегистрСведений.ЦеныНоменклатуры не могу поставить параметры таблицы
11 banco
 
18.03.24
17:18
(10) РегистрСведений.ЦеныНоменклатуры.СрезПоследних
12 Sorento
 
18.03.24
17:19
у меня есть РегистрСведений.ЦеныНоменклатуры ,
РегистрСведений.ЦеныНоменклатуры.СрезПервых и РегистрСведений.ЦеныНоменклатуры.СрезПоследних
13 Sorento
 
18.03.24
17:19
ставить на конец периода верно?
14 Sorento
 
18.03.24
17:20
и условие по типу цен верно?
15 p-soft
 
18.03.24
17:21
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&КонецПериода,ТипЦен = &ТипЦен) КАК ЦеныНоменклатуры
16 p-soft
 
18.03.24
17:23
но все проблемы от непонимания структуры связываемых таблиц - рекомендую сначала разобрать как сами данные выглядят, как живые так и виртуальные
17 Sorento
 
18.03.24
17:26
Тогда, всем спасибо, пойду искать информацию по структурах связываемых таблиц, если найду решения напишу сюда. Еще раз всем спасибо!
18 Altone
 
19.03.24
08:42
(17) отдельно формируешь эти таблицы в консоли запросов отбором строк по 10-50
и разбираешься. мне часто помогает.
19 steep1
 
19.03.24
08:46
(0) может быть цена у товара у которого нет оборотов и наоборот, поэтому лучше с начало сделать запрос к номенклатуре, а потом уже к регистрам из временной
20 Sorento
 
19.03.24
11:39
Сечас все работает вот код :

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

Но возникла проблема: теперь я не могу указать период, если в параметрах таблицах ставлю периодичность, работает не коректно
21 Sorento
 
19.03.24
11:41
Рабочий код :


ВЫБРАТЬ
    ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход,
    ЦеныНоменклатуры.Цена,
    ЦеныНоменклатуры.ТипЦен,
    ЦеныНоменклатуры.Цена * ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход КАК Расход,
    ТоварыНаСкладахОстаткиИОбороты.Период
ИЗ
    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Неделя, , ) КАК ТоварыНаСкладахОстаткиИОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&КонецПериода, ТипЦен = &ТипЦен) КАК ЦеныНоменклатуры
        ПО ТоварыНаСкладахОстаткиИОбороты.Номенклатура = ЦеныНоменклатуры.Номенклатура
22 Sorento
 
19.03.24
12:12
Закинул запрос в СКД, выдает не правильное значение товаров на складе примерно в 2 раза меньше, в скд отчете отображает 335 товаров, а в стандартных отчетах (Ведомость по товарам на склада) 682 товара отображает
23 Волшебник
 
19.03.24
12:28
Сначала выберите цены во временную таблицу. Потом с ней соединяйтесь.
24 Sorento
 
19.03.24
13:54
Спасибо большое, работает!
25 Волшебник
 
19.03.24
14:52
(24) Покажите, что получилось
26 Sorento
 
20.03.24
12:14
ВЫБРАТЬ
    ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
    ТоварыНаСкладахОстаткиИОбороты.Склад,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоОборот,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК ОстатокТовара,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход КАК Продажи,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход,
    Цены.Цена КАК Цена,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход * Цены.Цена КАК ПродажиСебестоимость,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток * Цены.Цена КАК ОстатокТовараСебестоимость,
    ТоварыНаСкладахОстаткиИОбороты.ПериодНеделя
ИЗ
    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Авто, , ) КАК ТоварыНаСкладахОстаткиИОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
            ЦеныНоменклатурыСрезПоследних.Цена КАК Цена
        ИЗ
            РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&КонецПериода, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних) КАК Цены
        ПО ТоварыНаСкладахОстаткиИОбороты.Номенклатура = Цены.Номенклатура
27 Sorento
 
20.03.24
12:15
вот ток заметил интересную вещь, если формирую например по дате с 01 01 2024 по 19 03 2024, тогда всегда неверно расчитывает первую и последнюю неделю
28 Sorento
 
20.03.24
12:21
Если ставлю дату с 01 01 2024 по 19 03 2024 тогда след результат :
01012024 - ОстатокТовараСебестоимость = 19
08012024 - ОстатокТовараСебестоимость = 10
15012024 - ОстатокТовараСебестоимость = 12
22012024 - ОстатокТовараСебестоимость = 11
...
11032024 - ОстатокТовараСебестоимость = -14
18032024 - ОстатокТовараСебестоимость = 19

А если ставлю дату с 08 01 2024 по 19 03 2024 тогда след результат :
08012024 - ОстатокТовараСебестоимость = 17
15012024 - ОстатокТовараСебестоимость = 12
22012024 - ОстатокТовараСебестоимость = 11
...
11032024 - ОстатокТовараСебестоимость = -14
18032024 - ОстатокТовараСебестоимость = 19
29 Sorento
 
20.03.24
12:21
Только ОстатокТовараСебестоимость неверно считает
30 Sorento
 
20.03.24
12:21
Все остально верно
31 Sorento
 
20.03.24
12:22
возможно чтото в самом СКД настроить нужно
32 Sorento
 
20.03.24
12:27
Если сделать отчет с 25.12.2023 по 31.03.2024 Тогда :
25122023 - ОстатокТовараСебестоимость = 20
01012024 - ОстатокТовараСебестоимость = 9
08012024 - ОстатокТовараСебестоимость = 10
15012024 - ОстатокТовараСебестоимость = 12
22012024 - ОстатокТовараСебестоимость = 11
...
11032024 - ОстатокТовараСебестоимость = -14
25032024 - ОстатокТовараСебестоимость = 19
33 Sorento
 
20.03.24
12:45
Или возможно есть способ исключить первую и последнюю неделю из отображения?
34 Sorento
 
20.03.24
12:57
или возможно, есть другие идеи?
35 Sorento
 
20.03.24
13:02
Точнеё програма считает ОстатокТовараСебестоимость только когда есть продажа, а мне нужно чтоб считало всегда внезависимости была продажа или не было
36 Sorento
 
20.03.24
13:17
Нашёл проблему, если продаж не было тогда остаток товару себестоимость не расчитываеться
37 Волшебник
 
20.03.24
14:28
Главное не мешать человеку!
AdBlock убивает бесплатный контент. 1Сергей