Имя: Пароль:
1C
1С v8
параметры СКД конец периода
,
0 Новый1сник2
 
31.10.22
11:42
Доброго дня!

подскажите правильно заполнил параметры скд (нужно получать остатки на конкретную дату)
в параметрах таблицы ХозрасчетныйОстатки указал период &КонецПериода

https://ibb.co/HGX3yCK

проверяю стандартными отчетами на 31.10.2022
итоговое количество в ОСВ 1 946,00
итоговое количество в типовом остатки товаров 1 966,00
итоговое количество в моем отчете 1 956

поставил везде условия чтобы не выводило отрицательные остатки, т.е только те что есть в наличии
1 Галахад
 
гуру
31.10.22
11:44
Границу надо ставить, а не дату.
2 Новый1сник2
 
31.10.22
11:48
(1) и как ее поставить в настройках, можно пример кода ?
3 Новый1сник2
 
31.10.22
11:50
еще если добавляю стандартный период и у даты ставлю выражение  &ПериодОтчета.ДатаОкончания
то итоговое количество в моем отчете также показывает  1 956
4 Новый1сник2
 
31.10.22
11:52
не понятно почему разница типового отчета остатки и ОСВ по 41
5 vicof
 
31.10.22
11:57
(4) Разные таблицы / разные параметры / разные настройки.
6 Новый1сник2
 
31.10.22
12:15
в своем отчете нашел, что пару позиций дублируются, подскажите по запросу
7 Новый1сник2
 
31.10.22
12:16
ВЫБРАТЬ
    ХозрасчетныйОстатки.Субконто1.Код КАК Код,
    ХозрасчетныйОстатки.Субконто1.Родитель КАК Бренд,
    ХозрасчетныйОстатки.Субконто1.Артикул КАК Артикул,
    ХозрасчетныйОстатки.Субконто1 КАК Номенклатура,
    ВложенныйЗапрос.ЦенаИзРегистра КАК ЦенаИзРегистра,
    ВложенныйЗапрос1.ЦенаРеализации КАК ЦенаРеализации,
    ВЫБОР
        КОГДА ВложенныйЗапрос.ЦенаИзРегистра > 0
            ТОГДА ВложенныйЗапрос.ЦенаИзРегистра
        ИНАЧЕ ВЫБОР
                КОГДА ВложенныйЗапрос1.ЦенаРеализации > 0
                    ТОГДА ВложенныйЗапрос1.ЦенаРеализации
                ИНАЧЕ 0
            КОНЕЦ
    КОНЕЦ КАК Цена,
    ХозрасчетныйОстатки.КоличествоОстатокДт КАК Остатки
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Остатки(&КонецПериода, , , ) КАК ХозрасчетныйОстатки
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ЦеныНоменклатурыДокументов.Номенклатура КАК Номенклатура,
            ЦеныНоменклатурыДокументов.Цена КАК ЦенаИзРегистра
        ИЗ
            РегистрСведений.ЦеныНоменклатурыДокументов КАК ЦеныНоменклатурыДокументов
        ГДЕ
            ЦеныНоменклатурыДокументов.СпособЗаполненияЦены = ЗНАЧЕНИЕ(Перечисление.СпособыЗаполненияЦен.ПоПродажнымЦенам)) КАК ВложенныйЗапрос
        ПО ХозрасчетныйОстатки.Субконто1 = ВложенныйЗапрос.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
            РеализацияТоваровУслугТовары.Количество КАК Количество,
            РеализацияТоваровУслугТовары.Сумма КАК Сумма,
            ВЫБОР
                КОГДА РеализацияТоваровУслугТовары.Количество = 0
                    ТОГДА 0
                ИНАЧЕ РеализацияТоваровУслугТовары.Сумма / РеализацияТоваровУслугТовары.Количество
            КОНЕЦ КАК ЦенаРеализации,
            РеализацияТоваровУслугТовары.Ссылка КАК Ссылка,
            РеализацияТоваровУслугТовары.Цена КАК Цена,
            РеализацияТоваровУслугТовары.Ссылка.Дата КАК Дата
        ИЗ
            Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
        ГДЕ
            РеализацияТоваровУслугТовары.Ссылка.Проведен = ИСТИНА
            И РеализацияТоваровУслугТовары.Ссылка В
                    (ВЫБРАТЬ ПЕРВЫЕ 1
                        РеализацияТоваровУслугТоварыУсловие.Ссылка
                    ИЗ
                        Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТоварыУсловие
                    ГДЕ
                        РеализацияТоваровУслугТоварыУсловие.Номенклатура = РеализацияТоваровУслугТовары.Номенклатура
                    УПОРЯДОЧИТЬ ПО
                        РеализацияТоваровУслугТоварыУсловие.Ссылка.Дата УБЫВ)
            И РеализацияТоваровУслугТовары.Ссылка.Контрагент = &Контрагент
            И РеализацияТоваровУслугТовары.Ссылка.Организация = &Организация) КАК ВложенныйЗапрос1
        ПО ХозрасчетныйОстатки.Субконто1 = ВложенныйЗапрос1.Номенклатура
ГДЕ
    ХозрасчетныйОстатки.Счет.Код = "41.01"
    И ХозрасчетныйОстатки.Субконто2 = &Склад
    И ХозрасчетныйОстатки.КоличествоОстатокДт > 0
8 Гипервизор
 
31.10.22
12:19
(2) Для виртуальной таблицы остатков в выражении параметра можно написать, например, вот так: ДобавитьКДате(КонецПериода(&Период, "День"), "Секунда", 1)
9 Новый1сник2
 
31.10.22
12:21
(8) ок, а как быть с дублями в отчете ?
10 Новый1сник2
 
31.10.22
12:23
(8) может так ДобавитьКДате(КонецПериода(&КонецПериода, "День"), "Секунда", 1) ?
11 Гипервизор
 
31.10.22
12:28
(9) Для начала опишите, что вы пытаетесь получить.
(10) Я дал общий пример. Как параметр назвали, так и в выражении будет.
12 Новый1сник2
 
31.10.22
12:41
(11) таблица остатки + цена (из регистра, или если в регистре нет, тогда из последней реализации по контрагенту)
13 vicof
 
31.10.22
12:43
(11) Не только) Еще на автозаполнение надо смотреть и скдшное расширение языка запросов.
14 Новый1сник2
 
31.10.22
12:52
где поправить запрос, чтобы дублей не было?. пока их немного пару штук на 400 позиций, но сколько дальше будет неизвестно
15 Новый1сник2
 
31.10.22
13:24
разобрался, в некоторых реализациях номенклатура в т.ч задвоена
16 Новый1сник2
 
31.10.22
15:25
подскажите по параметрам немного запутался, как правильно на 1 картинке или на 2
1 картинка
https://ibb.co/nktgM0v

2 картинка
https://ibb.co/0MMMVnV
17 Новый1сник2
 
31.10.22
15:27
отчет формируется по параметру КонецПериода, значит на 2 правильно ?
18 Kassern
 
31.10.22
15:31
(16) а зачем вы секунду добавляете?
К примеру, у вас есть проводка за 30.09.2022 23:59:59
И есть еще проводка за 01.10.2022 00:00:00
Если вы секунду добавите в конец дня, то у вас в отчет попадут проводки следующего дня на начало дня.
19 Новый1сник2
 
31.10.22
15:33
(18) посоветовали в (8)
20 Kassern
 
31.10.22
15:33
Делайте уже нормальный период в СКД. Есть даже специальный инструмент как СтандартныйПериод. Создаете параметр с этим типом и выводите юзверам.
Для НачалоПериода устанавливаете выражение &ПериодОтчета.ДатаНачала
Для КонецПериода устанавливаете выражение &ПериодОтчета.ДатаОкончания
21 Kassern
 
31.10.22
15:33
ну и скрываете эти 2 параметра
22 Новый1сник2
 
31.10.22
15:34
(18) если просто указать КонецПериода(&Период, "День") все записи попадут в отчет ?
23 Kassern
 
31.10.22
15:34
(19) Надо же думать, что вы пишите, а не слепо повторять, что вам советуют)
24 Новый1сник2
 
31.10.22
15:35
(20) когда ставлю стандартный период, в отчете две даты начальная и конечная, а нужно на определенную дату
25 Kassern
 
31.10.22
15:35
(22) По идее должны. Граница нужна, когда не на СКД вы отчет строите, а простым Запрос=Новый Зарпос. Там да, нужно границу указать, чтобы получить все записи. А вообще, лучше используйте (20)
26 Kassern
 
31.10.22
15:37
(16) И вообще, зачем у вас там 2 параметра с датой? Разве КонецПериода и Период у вас не одно и тоже?
27 Новый1сник2
 
31.10.22
15:37
(25) так во всех отчетах где нужно так и делаю стандартный период, а как быть когда нужна одна дата ?
ну и по параметрам подскажите какой вариант правильный 1 или 2
28 Новый1сник2
 
31.10.22
15:38
(26) КонецПериода это параметр таблицы, период автоматически заполнился в параметрах
29 Новый1сник2
 
31.10.22
15:38
(25) в простых запросах использую границу
30 Новый1сник2
 
31.10.22
15:40
(25) вот к примеру https://forum.infostart.ru/forum9/topic109002/
31 Kassern
 
31.10.22
15:40
(28) Погодите, вам нужно конец периода только для определенной таблицы, а остальные виртуальные таблицы вы на текущую дату берете?
32 Новый1сник2
 
31.10.22
15:41
(31) по остальным таблицам период не нужен
33 Kassern
 
31.10.22
15:42
(32) Вы можете программно установить при компоновке значение параметра, в том числе попробовать границу. ХЗ конечно, сам не пробовал.
34 Новый1сник2
 
31.10.22
15:43
(33) в (16) как правильно ?
35 Kassern
 
31.10.22
15:46
(34) Блин, как я вам отвечу на этот вопрос, я хз какой у вас запрос и какие вы данные хотите получить.
36 ass1c
 
31.10.22
15:47
В ЕРП встречал такую тему. Доп. параметр в СКД "ДатаГраницаВремени" - который выводим на форму. Параметр который в запросе ограничиваем в показе и в выражении пишем "КомпоновкаДанныхСервер.ГраницаПериода(&ДатаГраницаВремени, "Включая")"


Функция ГраницаПериода(Дата, ВидГраницыИмяЗначения) Экспорт
    Возврат Новый Граница(Дата, ВидГраницы[ВидГраницыИмяЗначения]);
КонецФункции
37 Новый1сник2
 
31.10.22
15:48
(35) запрос в (7)
38 Новый1сник2
 
31.10.22
15:49
т.е остатки берутся на параметр КонецПериода таблицы ХозрасчетныйОстатки
39 Гипервизор
 
31.10.22
16:01
(18) У ТС виртуальная таблица остатков. Проводки начала следующего дня из вашего примера не попадут.
40 Новый1сник2
 
31.10.22
16:24
(39) вот так сделал, норм?

https://ibb.co/SXY9rPn
41 Kassern
 
31.10.22
16:36
(40) Вы мне ночного охотника напоминаете. Вам уже много раз написали и как сделать и что указать. Проверить данные можно за пару минут разными способами и самостоятельно вывод сделать. На кой вы добавили еще 1 параметр - мне не понятно.
42 Новый1сник2
 
31.10.22
16:40
соррян, видимо не увидел ответа, в (40) добавил свой параметр, сверил с ОСВ все сходится. предложите свой вариант?
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший