Имя: Пароль:
1C
1С v8
Не выходит запрос
, ,
0 Драмаченко Григорий
 
13.05.22
13:01
Привет я новичок в 1С особенно с запросами

в общем не понимаю как сделать следующее.

Мне нужно написать запрос который выведет остатки по всем товарам в разрезе всех складов где остаток будет меньше ноля

за каждый день с 01.01.2022 по день запроса

я написал запрос но не выход массив периодов передать (

да и если в рамках одного периода формировать то все ок но,

данные показывает на цикл по одному складу

а нужно что то типа

Товар | Дата | Остаток Склд1 | | Остаток Склд2 | | Остаток Склд3 | | Остаток Склд4 |

Как сделать так?

Вот мой запрос

помогите его исправить если не сложно.

МассивСкладов = Новый Массив;
    
    ВыборкаСкладов = Справочники.Склады.Выбрать();
    Пока ВыборкаСкладов.Следующий() Цикл
        МассивСкладов.Добавить(ВыборкаСкладов.Ссылка);
    КонецЦикла;

    
    МассивПериодов = Новый Массив;
    //ВыборкаПериодов = Справочники.Склады.Выбрать();
    Пока КонецДня(ДатаЗапроса) <> КонецДня(ДатаПо) Цикл
        
МассивПериодов.Добавить(КонецДня(ДатаЗапроса));
        
        ДатаЗапроса = ДатаЗапроса + 60 * 60 * 24;
    КонецЦикла;
        //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
        // Данный фрагмент построен конструктором.
        // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
        
        Запрос = Новый Запрос;
        Запрос.Текст =
        "ВЫБРАТЬ
        |    СправочникНоменклатура.Ссылка КАК Номенклатура,
        |    Остатки.ВНаличииОстаток КАК Количество,
        |    Остатки.Склад           КАК Склад
        |ИЗ
        |    Справочник.Номенклатура КАК СправочникНоменклатура
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеОстатки.Остатки(В(&Периоды), Склад В (&Склады) ) КАК Остатки
        |        ПО СправочникНоменклатура.Ссылка = Остатки.Номенклатура
        |ГДЕ
        |    СправочникНоменклатура.ЭтоГруппа = &ЭтоГруппа
        |    И Остатки.ВНаличииОстаток < &Нолик
        |СГРУППИРОВАТЬ ПО
        |   Остатки.Склад,
        |   СправочникНоменклатура.Ссылка,
        |   Остатки.ВНаличииОстаток";
        
        Запрос.УстановитьПараметр("Нолик", 0);
        Запрос.УстановитьПараметр("Периоды", МассивПериодов);
        Запрос.УстановитьПараметр("ЭтоГруппа", Ложь);
        Запрос.УстановитьПараметр("Склады", МассивСкладов);
        
        РезультатЗапроса = Запрос.Выполнить();
        
        ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
        
        
        Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
            
                НовСтр = ТЗ.Добавить();
                НовСтр.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;
                НовСтр.Склад        = ВыборкаДетальныеЗаписи.Склад;
                НовСтр.ДатаОстатка  = КонецДня(ДатаЗапроса);
                НовСтр.Остаток      = ВыборкаДетальныеЗаписи.Количество;
    
                

        КонецЦикла;
1 Драмаченко Григорий
 
13.05.22
13:04
Если запрос по массивы периодов нельзя сделать то не страшно помогите хотя бы вывести в таком виде

Товар | Дата | Остаток Склд1 | | Остаток Склд2 | | Остаток Склд3 | | Остаток Склд4 |
2 VoditelKobyly
 
13.05.22
13:16
Куда Вы выводить собрались? В вашем коде есть только запрос на выборку данных, но нет намека на вывод.
3 bolobol
 
13.05.22
13:18
(2) Внимательнее читайте пост - всё там есть
4 bolobol
 
13.05.22
13:20
Искать "остатки на каждый день", использовать найденное
5 Драмаченко Григорий
 
13.05.22
13:21
(2) в Таблицу значений а ее на форму в табличную часть

ТЗ та что есть я использовал просто для примера для себя но в ВыборкаДетальныеЗаписи вижу только Номенклатура, Склад, Количество

А мне нужно что бы была одна номенклатура , куча складов с остатком (Группировка По Номенклатура мне в помощь я верно понял?
6 bolobol
 
13.05.22
13:23
Чтоб сделать так "Товар | Дата | Остаток Склд1 | | Остаток Склд2 | | Остаток Склд3 | | Остаток Склд4 |" - тут прям СКД нужен - он сам так умеет
Иначе, обходить результат запроса по группировкам, сначала по Номенклатуре, затем, присоединяя колонку в ТЗ, по Складу
7 Драмаченко Григорий
 
13.05.22
13:25
(6) много непонятных слов к сожалению (

короче так понимаю это сложно? и удаленно не помочь?
8 Драмаченко Григорий
 
13.05.22
13:27
а период на запрос то же только один может быть? нельзя так как я поступил со складами?
9 bolobol
 
13.05.22
13:30
(7) озадачен я... пытался найти хоть одно непонятное слово - не смог. Но - да, есть люди, что не слушают ответов, считая их пустым звуком
10 Драмаченко Григорий
 
13.05.22
13:31
В общем буду тогда делать так

Запрос = Новый Запрос;
        Запрос.Текст =
        "ВЫБРАТЬ
        |    СправочникНоменклатура.Ссылка КАК Номенклатура,
        |    Остатки.ВНаличииОстаток КАК Количество,
        |    Остатки.Склад           КАК Склад
        |ИЗ
        |    Справочник.Номенклатура КАК СправочникНоменклатура
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеОстатки.Остатки(&Периоды, Склад В (&Склады) ) КАК Остатки
        |        ПО СправочникНоменклатура.Ссылка = Остатки.Номенклатура
        |ГДЕ
        |    СправочникНоменклатура.ЭтоГруппа = &ЭтоГруппа
        |    И Остатки.ВНаличииОстаток < &Нолик";
        
        Запрос.УстановитьПараметр("Нолик", 0);
        Запрос.УстановитьПараметр("Периоды", КонецДня(ДатаЗапроса));
        Запрос.УстановитьПараметр("ЭтоГруппа", Ложь);
        Запрос.УстановитьПараметр("Склады", МассивСкладов);
        
        РезультатЗапроса = Запрос.Выполнить();
        
        ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
        
        
        Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

но опять вопрос

можно ли в этом же запросе сделать так что бы например

Номенклатура А на  01 01 2022 образовался минусовой остаток к примеру -1

и так минус висел к примеру до 05 01 2022

можно ли убрать из результата все периоды по данной номенклатуре , по этому складу и если остаток тот же (-1) и оставить только последний период?
11 bolobol
 
13.05.22
13:32
(8) запрос с таким текстом ".Остатки(В(&Периоды)" - даже в конструкторе не открывается. А жаль... Похоже, что сегодня - всё ещё лишь один период
12 Драмаченко Григорий
 
13.05.22
13:33
(9) Извините я не хотел Вас обидеть!

в (6) я все понял в частности что Либо нужно делать Сехемму компановки данных которую я вообще не знаю (

а группировки то же для меня сложно ( вот и подумал что это сложно ка кто будет обьяснить на пальцах (если можно так выразится)
13 Драмаченко Григорий
 
13.05.22
13:34
(11) у меня открывается этот запрос
14 Драмаченко Григорий
 
13.05.22
13:35
тьфу да простите .Остатки(В(&Периоды)"

В(&Периоды) это я пример написал для Вас так как я писал выше я хотел бы сформировать запрос в разрезе периодов

к примеру у меня есть

массив периодов

(Дат)

01.01.2022
02.01.2022 и т.д за каждый день и в каждом месяце

но у меня не вышло напистаь такой запрос (
15 Драмаченко Григорий
 
13.05.22
13:37
Можете помочь с (10)?
16 bolobol
 
13.05.22
13:38
(10) В такой постановке - сложно сделать просто. Будет не просто, но и не сложно. Глобалить надо.

(12) Мы не про обиды, но теперь - вижу, что текст прочитан и - обещаю - это проще чем писать запрос и выводить его вручную! Создавайте СКД и туда пишите запрос "остатки на каждую дату". Сохраняйте и останется только выполнить отчёт в 1С - он сам всё нарисует, только с настройками строк и колонок вывода поиграться
17 Драмаченко Григорий
 
13.05.22
13:41
(16) я Вас понял попробую СКД сделать )

я просто ка кто раз открыл ничего не понял, испугался закрыл и побежал перекурить это дело )
18 bolobol
 
13.05.22
13:41
ВЫБРАТЬ РАЗЛИЧНЫЕ
    РегламентированныйПроизводственныйКалендарь.ДатаКалендаря КАК День
ПОМЕСТИТЬ ВТ_Дни
ИЗ
    РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
ГДЕ
    РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &НачалоПериода И &ОкончаниеПериода
;

- если такое есть - даже список дат у Вас есть
19 bolobol
 
13.05.22
13:45
ВЫБРАТЬ
    Дни.День КАК День,
    ОстаткиИОбороты.Склад КАК Склад,
    ОстаткиИОбороты.Номенклатура КАК Номенклатура,
    СУММА(ВЫБОР
            КОГДА ОстаткиИОбороты.Период = &НачалоПериода
                ТОГДА ОстаткиИОбороты.КоличествоНачальныйОстаток
            ИНАЧЕ 0
        КОНЕЦ + ВЫБОР
            КОГДА Дни.День >= ОстаткиИОбороты.Период
                ТОГДА ОстаткиИОбороты.КоличествоОборот
            ИНАЧЕ 0
        КОНЕЦ) КАК Количество
ИЗ
    ВТ_Дни КАК Дни
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеОстатки.ОстаткиИОбороты(
                &НачалоПериода,
                &ОкончаниеПериода,
                День,
                ,
                Склад В (&Склады)) КАК ОстаткиИОбороты
        ПО Дни.День >= ОстаткиИОбороты.Период

-- Остатки на каждый день, даже в дни, когда их ноль, по таблице ВТ_Дни
20 bolobol
 
13.05.22
13:48
СГРУППИРОВАТЬ ПО
    Дни.День,
    ОстаткиИОбороты.Склад,
    ОстаткиИОбороты.Номенклатура

-- забыл
21 vicof
 
13.05.22
13:49
В СКДшке можно проще остатки на каждый день сделать.
22 Драмаченко Григорий
 
13.05.22
13:50
(19) у меня ругается на КоличествоНачальныйОстаток при сохранении этого запроса (
23 vicof
 
13.05.22
13:51
(22) Количество = ВНаличии
24 bolobol
 
13.05.22
13:58
Создаёте отчёт,
открываете СКД для него,
НаборыДанных - добавляете запрос, суйте туда это всё,
в параметрах пишете для ОкончаниеПериода в выражение: КонецПериода(&КонецПериода, "ДЕНЬ"),
в параметрах снимаете галки Ограничение доступности и ставите использование во Всегда, для Склад можно оставить Авто - заполнил пользователь - будет, не заполнил - не будет отбора по складу
25 Драмаченко Григорий
 
13.05.22
14:03
(24) мне в запрос поместить все из (18 - 19 и 19) ? или только (19) - (20) ?
26 bolobol
 
13.05.22
14:04
Условие "Склад В (&Склады)" - надо для СКД взять в фигурные скобки "{Склад В (&Склады)}" - тогда условие будет работать если установлен параметр Склады. В принципе, в СКД можно данное условие и отбором по-типовому указать
27 bolobol
 
13.05.22
14:04
(25) Да, 18 и 19, 20
28 Драмаченко Григорий
 
13.05.22
14:07
(27) получил ошибку (

Ошибка получения информации набора данных
по причине:
Ошибка в запросе набора данных
по причине:
{(5, 5)}: Таблица не найдена "РегистрСведений.РегламентированныйПроизводственныйКалендарь"
<<?>>РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
29 Драмаченко Григорий
 
13.05.22
14:09
+(28) у меня нету такого регистра (

есть регистр ДанныеПроизводственногоКалендаря
30 bolobol
 
13.05.22
14:10
Берите его!
31 Драмаченко Григорий
 
13.05.22
14:11
(29) в качестве измерения у него ссылка на справочник СправочникСсылка.ПроизводственныеКалендари
32 Драмаченко Григорий
 
13.05.22
14:11
+(31) как это использовать?
33 Драмаченко Григорий
 
13.05.22
14:12
а можно обойтись без производственного календаря?
34 Драмаченко Григорий
 
13.05.22
14:13
если что у меня Управление торговлей для Беларуси, редакция 3.3.
35 bolobol
 
13.05.22
14:15
Можно обойтись, но проще использовать готовый список дат, особенно для СКД
36 bolobol
 
13.05.22
14:15
Да и измерение у нас не используется - только уникальные дни нужны в интересующем периоде
37 Драмаченко Григорий
 
13.05.22
14:16
но у меня нету такого регистра а в том что есть в нем нету таких измерений ка кДатаКалендаря
38 Драмаченко Григорий
 
13.05.22
14:16
Вот что получаю

Ошибка получения информации набора данных
по причине:
Ошибка в запросе набора данных
по причине:
{(7, 38)}: Поле не найдено "ДанныеПроизводственногоКалендаря.ДатаКалендаря"
ДанныеПроизводственногоКалендаря.<<?>>ДатаКалендаря МЕЖДУ &НачалоПериода И &ОкончаниеПериода
39 bolobol
 
13.05.22
14:17
Обязана быть дата там где-то  - ищите дату!
40 bolobol
 
13.05.22
14:17
В этом смысл Производственного календаря. Можно использовать ещё курсы валют, но, говорят, производственный календарь - надёжнее
41 Драмаченко Григорий
 
13.05.22
14:21
(39) Да! нашел.

ошибки пропали я сделал все до
Создаёте отчёт,
открываете СКД для него,
НаборыДанных - добавляете запрос, суйте туда это всё,

а дальше
в параметрах пишете для ОкончаниеПериода в выражение: КонецПериода(&КонецПериода, "ДЕНЬ"),
в параметрах снимаете галки Ограничение доступности и ставите использование во Всегда, для Склад можно оставить Авто - заполнил пользователь - будет, не заполнил - не будет отбора по складу

не могу найти закладку парамтеры (
42 Драмаченко Григорий
 
13.05.22
14:23
(41) нашел
43 Драмаченко Григорий
 
13.05.22
14:25
(в параметрах снимаете галки Ограничение доступности и ставите использование во Всегда) это для параметра ОкончаниеПериода? или для всех?
44 Драмаченко Григорий
 
13.05.22
14:30
Все сделал

а макет как рисовать? вернее что в него вставлять? я ячейки?
45 Драмаченко Григорий
 
13.05.22
14:32
Сформировал и пусто в нем (
46 Драмаченко Григорий
 
13.05.22
14:32
пустой отчет
жму сформировать и ничего(
47 bolobol
 
13.05.22
14:33
Да, в Настройки нужно добавить Группировку (сверху), а снизу - выбранные поля заполнить
48 Драмаченко Григорий
 
13.05.22
14:35
(47) в режиме предприятия или в конфигураторе?
49 Драмаченко Григорий
 
13.05.22
14:38
В конфигураторе

Перешел в закладку Настройки, нажал Новая гурппировка

и ничего не заполняя нажал Ок

далее в низу заполнил выбранные поля ПРобую
50 Марусенька
 
13.05.22
14:39
(48) в конфигураторе на последней закладке Настройки, в верхней части - структура отчета, там группировки или детальные записи добавляете, если нет группировок, ниже в выбранные поля выбираете те, которые хотите выводить
51 Драмаченко Григорий
 
13.05.22
14:39
(50) уже сделал нажал сформировтаь жду
52 Марусенька
 
13.05.22
14:40
у Вас хорошо получается, но не хватает знаний, посмотрите курс по СКД, например, от Гилева
53 Драмаченко Григорий
 
13.05.22
14:40
дождался

вывелись только колонки а данных нет (

День    Номенклатура    Склад    Количество
54 Марусенька
 
13.05.22
14:41
параметры заполнили?
55 Драмаченко Григорий
 
13.05.22
14:42
(52) не знаю мне ли Вы но спасибо! и хорошо я почитаю )
56 Kassern
 
13.05.22
14:43
(55) заодно у Хрусталевой почитайте книжки про СКД и запросы
57 Драмаченко Григорий
 
13.05.22
14:44
(54) да параметры запонил сейчас и получил таблицу с датами а колонки Номенклатура и остальные пусто (
58 АгентБезопасной Нацио
 
13.05.22
14:45
(36) (37) (40)
а чо б не :
ВЫБРАТЬ
    0 КАК Цифра
ПОМЕСТИТЬ ВТ_Цифры    
    ОБЪЕДИНИТЬ
    ВЫБРАТЬ
        1
    ОБЪЕДИНИТЬ
    ВЫБРАТЬ
        2
    ОБЪЕДИНИТЬ
    ВЫБРАТЬ
        3
    ОБЪЕДИНИТЬ
    ВЫБРАТЬ
        4
    ОБЪЕДИНИТЬ
    ВЫБРАТЬ
        5
    ОБЪЕДИНИТЬ
    ВЫБРАТЬ
        6
    ОБЪЕДИНИТЬ
    ВЫБРАТЬ
        7
    ОБЪЕДИНИТЬ
    ВЫБРАТЬ
        8
    ОБЪЕДИНИТЬ
    ВЫБРАТЬ
        9
;
ВЫБРАТЬ
    ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, Тысячи.Цифра * 1000 + Сотни.Цифра * 100 + Десятки.Цифра * 10 + Единицы.Цифра) КАК Период        
ИЗ
    ВТ_Цифры КАК Единицы
    ПОЛНОЕ СОЕДИНЕНИЕ ВТ_Цифры КАК Десятки    ПО ИСТИНА
    ПОЛНОЕ СОЕДИНЕНИЕ ВТ_Цифры КАК Сотни     ПО ИСТИНА    
    ПОЛНОЕ СОЕДИНЕНИЕ ВТ_Цифры КАК Тысячи    ПО ИСТИНА    
ГДЕ ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, Тысячи.Цифра * 1000 + Сотни.Цифра * 100 + Десятки.Цифра * 10 + Единицы.Цифра) <=&КонецПериода    
УПОРЯДОЧИТЬ ПО Период
59 Марусенька
 
13.05.22
14:45
(55) да, Хрусталева тоже отлично для начала. На Ютубе набираете Курс Гилева СКД и наслаждаетесь
60 bolobol
 
13.05.22
14:45
Только колонки с датами заполнены - значит, что даты получены, а остатки - нет.
61 bolobol
 
13.05.22
14:46
Запрос из СКД можно, кстати, сюда выложить. Осмотрим
62 Драмаченко Григорий
 
13.05.22
14:47
(61)

ВЫБРАТЬ РАЗЛИЧНЫЕ
    ДанныеПроизводственногоКалендаря.Дата КАК День
ПОМЕСТИТЬ ВТ_Дни
ИЗ
    РегистрСведений.ДанныеПроизводственногоКалендаря КАК ДанныеПроизводственногоКалендаря
ГДЕ
    ДанныеПроизводственногоКалендаря.Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода
;

ВЫБРАТЬ
    Дни.День КАК День,
    ОстаткиИОбороты.Склад КАК Склад,
    ОстаткиИОбороты.Номенклатура КАК Номенклатура,
    СУММА(ВЫБОР
            КОГДА ОстаткиИОбороты.Период = &НачалоПериода
                ТОГДА ОстаткиИОбороты.ВНаличииНачальныйОстаток
            ИНАЧЕ 0
        КОНЕЦ + ВЫБОР
            КОГДА Дни.День >= ОстаткиИОбороты.Период
                ТОГДА ОстаткиИОбороты.ВНаличииОборот
            ИНАЧЕ 0
        КОНЕЦ) КАК Количество
ИЗ
    ВТ_Дни КАК Дни
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеОстатки.ОстаткиИОбороты(&НачалоПериода, &ОкончаниеПериода, День, , {Склад В (&Склады)}) КАК ОстаткиИОбороты
        ПО Дни.День >= ОстаткиИОбороты.Период

СГРУППИРОВАТЬ ПО
    Дни.День,
    ОстаткиИОбороты.Склад,
    ОстаткиИОбороты.Номенклатура
63 Kassern
 
13.05.22
14:50
(62) а у вас регистр ДанныеПроизводственногоКалендаря вообще заполнен?)
64 bolobol
 
13.05.22
14:51
На вид - всё чётко, будет работать!
Параметры верны, т.к. даты явились... озадачен я
65 bolobol
 
13.05.22
14:52
Ааа... может, на незаполненном складе в параметрах галка стоит?
66 bolobol
 
13.05.22
14:53
Или на ОкончаниеПериода галка стоит, а не должна
67 Kassern
 
13.05.22
14:53
можно вообще убрать условие по складу и протестить, но что-то мне подсказывает, что у ТС тупо регистр с датами не заполнен, поэтому ничего и не выходит
68 bolobol
 
13.05.22
14:53
даты выходят жэ
69 bolobol
 
13.05.22
14:54
Вот то что в параметрах в Предприятии, не в конфигураторе - галка на параметре Склад стоит - как пить дать!
70 bolobol
 
13.05.22
14:55
Или Использование у параметра Склад стоит Всегда, а не Авто
71 Драмаченко Григорий
 
13.05.22
14:59
Вот скрины

Режим Конфигуратора

НаборыДанных1 - https://ibb.co/cJDP4YY


Параметры - https://ibb.co/GP3BfWy

Настройки - https://ibb.co/t8Yw12N

Режим предприятия

Настройки - https://ibb.co/86SpX7z
72 Драмаченко Григорий
 
13.05.22
14:59
(71) может я что то не так сделал? :-)
73 Драмаченко Григорий
 
13.05.22
15:00
(70) Авто я установил
74 Драмаченко Григорий
 
13.05.22
15:04
Регистр календаря заполнен это я в первую очередь проверил

Вот скрин - https://ibb.co/5T8hywr
75 Драмаченко Григорий
 
13.05.22
15:06
все заработало

но есть одно но он выводит остатки а мне нужны только те что меньше ноля
76 Драмаченко Григорий
 
13.05.22
15:07
добавил отбор количество Меньше ноля в режиме предприятия а ка кэто сделать в коде в СКД что бы постоянно не заполнять?
77 Kassern
 
13.05.22
15:08
(71) а почему у вас ресурсов нет? Или вам итоги не нужны?
78 Драмаченко Григорий
 
13.05.22
15:08
И Да Спасибо Вам огромное СКД реально очень простое я просто боялся его открывать и пробовать )))))))
79 Kassern
 
13.05.22
15:08
(76) в запросе на вкладке отбора можно сделать
80 Kassern
 
13.05.22
15:09
(78) книжки все же почитайте, очень много для себя откроете в плане возможностей СКД
81 Драмаченко Григорий
 
13.05.22
15:09
(41) я делал как мне советовали
82 Драмаченко Григорий
 
13.05.22
15:09
(80) обязательно буду читать! мне понравилось работать с СКД с ним реально проще отчеты клепать! СПАСИБ ООГРОМНОЕ!
83 bolobol
 
13.05.22
15:10
Вернёмся к оформлению, раз всё заработало
84 bolobol
 
13.05.22
15:11
В Настройки добавляете Таблицу, в колонки добавляете группировку Склад, в строки Группировку Дата и дополняете её после ОК Номенклатурой
85 bolobol
 
13.05.22
15:12
Будет таблица остатков, где склады вбок перечисляются. Для этого потребуется на закладке Ресурсы - перенести Количество в ресурс, должна встать формула СУММА
86 Драмаченко Григорий
 
13.05.22
15:13
(83) я уже подумал что все готово )

+(84) в настройках в режиме конфигуратора?
87 bolobol
 
13.05.22
15:14
Детальные записи в Настройках - отключаете.
Да, всё что можно пользователю "из коробки" подготовить - делаете в Конфигураторе. Тестируете возможности в Предприятии
88 bolobol
 
13.05.22
15:16
Зачастую, при открытии в Предприятии СКД отчёта - приходится восстанавливать Стандартные настройки, т.к. 1С, собака, запоминает себе там что-то и не реагирует потом на изменения в Конфигураторе
89 Fish
 
13.05.22
15:19
(78) "СКД реально очень простое " - Это пока не понадобится сделать чуть более сложный отчёт :))
90 Драмаченко Григорий
 
13.05.22
15:19
(84) + (85) + (87) на скрине все сделал все ли верно?

https://ibb.co/Jdk7R7K
91 bolobol
 
13.05.22
15:20
Таблицу на самый верх мышью перетащите, а то получается, что она в подчинении детальных записей
92 Драмаченко Григорий
 
13.05.22
15:20
(85) то же сделал на скрине не показал могу сделать сркин нужно?
93 Драмаченко Григорий
 
13.05.22
15:21
(91) перетащил тепреь она отделилась от ДЗ
94 bolobol
 
13.05.22
15:22
Сохраняйте - смотрите, и эспериментируйте с "Другие настройки" в Предприятии
95 bolobol
 
13.05.22
15:23
Самое главное - не пытаться пользоваться Отборами, СКД сама себе придумывает как именно и где их применить, и ничего хорошего не выходит. Лучше уж всё настраивать параметрами и в запросе чётко прописывать где они должны примениться в фигурных скобках
96 bolobol
 
13.05.22
15:24
А условие в запрос на отрицательность остатков - допишите
ИМЕЮЩИЕ СУММА(ВЫБОР
            КОГДА ОстаткиИОбороты.Период = &НачалоПериода
                ТОГДА ОстаткиИОбороты.ВНаличииНачальныйОстаток
            ИНАЧЕ 0
        КОНЕЦ + ВЫБОР
            КОГДА Дни.День >= ОстаткиИОбороты.Период
                ТОГДА ОстаткиИОбороты.ВНаличииОборот
            ИНАЧЕ 0
        КОНЕЦ) < 0
97 bolobol
 
13.05.22
15:28
Есть особенность, что если нужно обязательно выводить все склады - запрос надо усложнять соединением со складами как с датами
98 Драмаченко Григорий
 
13.05.22
15:28
(96) это в самом низу запроса писать?

ИМЕЮЩИЕ СУММА(ВЫБОР
            КОГДА ОстаткиИОбороты.Период = &НачалоПериода
                ТОГДА ОстаткиИОбороты.ВНаличииНачальныйОстаток
            ИНАЧЕ 0
        КОНЕЦ + ВЫБОР
            КОГДА Дни.День >= ОстаткиИОбороты.Период
                ТОГДА ОстаткиИОбороты.ВНаличииОборот
            ИНАЧЕ 0
        КОНЕЦ) < 0
99 bolobol
 
13.05.22
15:29
ИМЕЮЩИЕ пишется после СГРУППИРОВАТЬ ПО блока, в данном случае - в конец запроса добавьте просто
100 Драмаченко Григорий
 
13.05.22
15:30
(99) да так и сделал
101 bolobol
 
13.05.22
15:31
Ну а что такое ИМЕЮЩИЕ, в чём отличие от ГДЕ - почитаете. На пальцах - ИМЕЮЩИЕ - это условие на результат функции, типа СУММА, КОЛИЧЕСТВО, выполняется после СГРУППИРОВАТЬ, т.е. после выполнения функций
ГДЕ - условие на первичные записи, до выполнения функций и СГРУППИРОВАТЬ
102 Драмаченко Григорий
 
13.05.22
15:31
выводит неверные данные (

показывает у товара -200

иду в карточку использую отчет движения номенклатуры там на указанную дату нету минусового остатка вообще (
103 Драмаченко Григорий
 
13.05.22
15:33
ну да ладно главное что понял как работать с СКД

а остаток неверные видмо от того что я в запросе использую только один регистр а остатки нужно анализировать по нескольким буду дописывать спасибо за Курс обучения СКД )
104 bolobol
 
13.05.22
15:35
Удачи в этом нелёгком деле, а при углублении - оно станет нелёгким)
105 Драмаченко Григорий
 
13.05.22
15:37
(104) спасибо будем стараться )
106 Драмаченко Григорий
 
13.05.22
15:44
хотя нет вернусь )

не заметил разницы после новых настроек

https://ibb.co/HG6DrzX

затем в режиме предприятия во всех действиях нажал стандартные натсройки

и вот что заметил

(возможно я не прав) но в настройках в режиме предприятия - https://ibb.co/Rggx6zy

там по прежнему включен флаг на Детальные записи а таблицы вообще нету (
107 Драмаченко Григорий
 
13.05.22
16:23
(108) не верно удалял натсройки удалил настройки все встало как нужно  буду разбиратсья что с остатками не так что то не верны еданные по некоторым товарам показывает (

и еще никак нельзя сделать в рамках текущего отчета следующее

Товар А дата возникновения минусового остатка = 01 01 2022

и так этот минус висел до 10 01 2022

можно ли ка кто не показываться первоночальную дату?

а только последнюю?

вероятно Вы уже отвечали мн ена данный вопрос но видимо я пропустил и сейчас не нахожу (
108 bolobol
 
13.05.22
16:25
Отвечал, что это прям глобалить нужно
109 Драмаченко Григорий
 
13.05.22
16:27
(108) Понял спасибо! (а что такое глобалить?
110 bolobol
 
13.05.22
16:27
Что-то подсказывает, что если соединить результат с результатом по Дата1 = Дата0+1, Склад, Номенклатура и Колво< 0... То может получиться ожидаемое
111 Драмаченко Григорий
 
13.05.22
16:29
(110) а как это сделать?
112 bolobol
 
13.05.22
16:29
Таким способом, вроде, можно выключить все минусы до последней даты, когда ещё минус есть
113 Драмаченко Григорий
 
13.05.22
16:36
а как добавить дату начало период и дату окончания в отчет что бы при открытии в самом веру били

а так же подбор складов что бы так же были там

типа флажок рядом с полем и если используем свое то ставим влаг и выбираем данные

?
114 bolobol
 
13.05.22
16:44
Это, наверное, зависит от используемой конфы, но обычно достаточно на выбранном параметре пр.клик Свойства элемента пользовательских настроек - галку поставить там
115 bolobol
 
13.05.22
16:57
В общем, похоже на правду, читать, правда, отчёт такой сложно, но.. тем не менее:
- помещаем текущий результат в ВТ_Минуса
- добавляем запрос из ВТ_Минуса, выбирая те же названия полей, чтобы в СКД ничего не съехало
ВЫБРАТЬ
    ВТ_Минуса.День КАК День,
    ВТ_Минуса.Склад КАК Склад,
    ВТ_Минуса.Номенклатура КАК Номенклатура,
    ВТ_Минуса.Количество КАК Количество
- ЛЕВОЕ СОЕДИНЕНИЕ делаем с ВТ_Минуса КАК ВТ_МинусаЗавтра
- условия соединения:
ПО ВТ_Минуса.День = ДОБАВИТЬКДАТЕ(ВТ_МинусаЗавтра.День, ДЕНЬ, -1)
  И ВТ_Минуса.Склад = ВТ_МинусаЗавтра.Склад
  И ВТ_Минуса.Номенклатура = ВТ_МинусаЗавтра.Номенклатура
  И ВТ_Минуса.Количество < 0
  И ВТ_МинусаЗавтра.Количество < 0
//И ВТ_Минуса.Количество = ВТ_МинусаЗавтра.Количество // -- это если нужно не просто фиксировать минус, а что сам минус не изменил количество
- добиваем условием, что нам нужны записи с отсутствием соединения с ВТ_МинусаЗавтра
ГДЕ
  ВТ_МинусаЗавтра.День ЕСТЬ NULL
116 bolobol
 
13.05.22
17:02
У нас будут в отчёте не все даты, т.к. выключая остатки на дату, можно выключить всю дату полностью
Поэтому новый результат помещаем в ВТ_БезМинусов, добавляем запрос соединения Дат с ВТ_БезМинусов
117 Said_We
 
13.05.22
19:58
(0) А если остаток на 02.02.хх стал отрицательным по товару1 на складе1, и 03.02.хх движений по товару1 на складе1 не было, то 03.02.хх должна в отчете показывать остаток отрицательный?
118 Драмаченко Григорий
 
16.05.22
09:53
(115) спасибо за помощь все работает как нужно!

(117) по идеи должно показывать только последние данные по минусу

к примеру 01 01 образовался минус скажем -1

10 01 двинули еще в минус и стало теперь -3

20 02 оприходовали товары и перекрыли минус скажем сальдо стало +500

так вот в отчете мы должны увидеть 10 01 такой то товар -3
119 hhhh
 
16.05.22
10:04
(118) вообще-то в (107) вы писали, что-доджна быть последняя дата, то есть не 10.01, а 19.01.
120 Драмаченко Григорий
 
19.05.22
09:44
(119) Видимо неверно написал (выразился)
121 Trance_1C
 
19.05.22
10:56
Если еще никто не предложил, устанавливай инструменты разработчика с инфостарта, подключай расширением в свою базу, и разрабатывай СКД через консоль компоновок прямо в клиентском сеансе, чтобы не переключаться между конфигуратором и клиентским сеансом для просмотра отчета.
https://infostart.ru/public/15126/
122 Драмаченко Григорий
 
19.05.22
14:55
(121) оГо... спасибо! полетел устанавливать!