Форум программистов, компьютерный форум, киберфорум
1С: Типовые и стандартные решения
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.74/43: Рейтинг темы: голосов - 43, средняя оценка - 4.74
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 2

Отчёт СКД. Как сделать так, чтобы в него попадали только данные за оба периода

06.04.2014, 18:59. Показов 10272. Ответов 42
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую.
Не подскажите, как сделать в отчёте так, чтобы в него попадали только данные за оба периода? Т.е. чтобы здесь выводилось только 3 позиции, где есть продажи за текущий и прошлый период, а остальное не выводилось.


Предполагал, что-то типа выбор Когда &ЦенаЗаТекущийПериод <>0 Тогда АналитикаНоменклатуры.Номенклатура Конец, но не работает
Я только учусь 1с, поэтому не закидывайте шапками
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.04.2014, 18:59
Ответы с готовыми решениями:

Как сделать так, чтобы по нажатию кнопки цифры, введённые в textBox ы, попадали в программу?
По умолчанию в моих textBox'ax стоит цифра &quot;2&quot; (в некоторых &quot;5&quot; или &quot;3&quot;, не суть важно). Цифры textBox oв попадают в программу и на их...

Как сделать так чтобы запрос выводил данные только текущего года?
Привет, народ! Вопрос состоит в следующем: Имеется перекрестный запрос в котором столбцы это даты по месяцам, но даты за разные...

Как сделать так, чтобы в терминале можно было использовать оба HASP ключа?
Всех с праздником) У меня вчера случилась такая проблема: есть сеть, сервер, к которому все подключаются через терминал и работают в 1с,...

42
Эксперт 1С
 Аватар для GreenkA
3065 / 2012 / 525
Регистрация: 25.06.2009
Сообщений: 6,964
06.04.2014, 19:05
bugag, можно в СКД поставить отбор, либо в самом запросе в условии прописать
1C
1
ГДЕ ЦенаЗаТекущийПериод <> 0 И ЦенаЗаПрошлыйПериод <> 0
Только вот эти поля, я так понимаю, у вас из запроса берутся, а вот так
Цитата Сообщение от bugag Посмотреть сообщение
&ЦенаЗаТекущийПериод
задается параметр запроса, а не обращение к полю.
0
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 2
06.04.2014, 19:56  [ТС]
А как в самом скд прописать отбор?
Попробовал ручками вот так, но не работает. Где я ошибаюсь?
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    0 КАК ЦенаЗаТекущийПериод,
    ЗаПрошлыйПериод.СуммаВыручкиОборот КАК ЦенаЗаПрошлыйПериод,
    ЗаПрошлыйПериод.КоличествоОборот КАК КоличествоПрошлый,
    0 КАК КоличествоТекущий,
    АналитикаНоменклатуры.Номенклатура КАК Номенклатура
ИЗ
    РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачалоПрошлогоПериода, &КонецПрошлогоПериода, Авто, ) КАК ЗаПрошлыйПериод
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаНоменклатуры
        ПО ЗаПрошлыйПериод.АналитикаУчетаНоменклатуры = АналитикаНоменклатуры.КлючАналитики
ГДЕ
    ЗаПрошлыйПериод.СуммаВыручкиОборот <> 0
 
ОБЪЕДИНИТЬ
 
ВЫБРАТЬ
    ЗаТекущийПериод.СуммаВыручкиОборот,
    0,
    0,
    ЗаТекущийПериод.КоличествоОборот,
    АналитикаНоменклатуры.Номенклатура
ИЗ
    РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачалоТекущегоПериода, &КонецТекущегоПериода, Авто, ) КАК ЗаТекущийПериод
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаНоменклатуры
        ПО ЗаТекущийПериод.АналитикаУчетаНоменклатуры = АналитикаНоменклатуры.КлючАналитики
ГДЕ
    ЗаТекущийПериод.СуммаВыручкиОборот <> 0
Добавлено через 30 минут
Хм, нашёл, где поставить отбор, поставил у цен <> 0, теперь вообще ничего не выводит
0
Эксперт 1С
 Аватар для GreenkA
3065 / 2012 / 525
Регистрация: 25.06.2009
Сообщений: 6,964
06.04.2014, 22:04
bugag, попробуйте изменить сам запрос. Возможно самих записей нет по этой номенклатуре и там не 0, а NULL.
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    0 КАК ЦенаЗаТекущийПериод,
    ЗаПрошлыйПериод.СуммаВыручкиОборот КАК ЦенаЗаПрошлыйПериод,
    ЗаПрошлыйПериод.КоличествоОборот КАК КоличествоПрошлый,
    0 КАК КоличествоТекущий,
    АналитикаНоменклатуры.Номенклатура КАК Номенклатура
ИЗ
    РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачалоПрошлогоПериода, &КонецПрошлогоПериода, Авто, ) КАК ЗаПрошлыйПериод
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаНоменклатуры
        ПО ЗаПрошлыйПериод.АналитикаУчетаНоменклатуры = АналитикаНоменклатуры.КлючАналитики
ГДЕ
    ЕСТЬNULL(ЗаПрошлыйПериод.СуммаВыручкиОборот,0) <> 0
 
ОБЪЕДИНИТЬ
 
ВЫБРАТЬ
    ЗаТекущийПериод.СуммаВыручкиОборот,
    0,
    0,
    ЗаТекущийПериод.КоличествоОборот,
    АналитикаНоменклатуры.Номенклатура
ИЗ
    РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачалоТекущегоПериода, &КонецТекущегоПериода, Авто, ) КАК ЗаТекущийПериод
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаНоменклатуры
        ПО ЗаТекущийПериод.АналитикаУчетаНоменклатуры = АналитикаНоменклатуры.КлючАналитики
ГДЕ
    ЕСТЬNULL(ЗаТекущийПериод.СуммаВыручкиОборот,0) <> 0
1
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 35
06.04.2014, 22:30
Что-то внезапно перестало пускать на форум=\
GreenkO, попробовал ваш запрос, тоже не работает. Чую, что проблема где-то тут
1C
1
2
3
4
5
6
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    0 КАК ЦенаЗаТекущийПериод,
    ЗаПрошлыйПериод.СуммаВыручкиОборот КАК ЦенаЗаПрошлыйПериод,
    ЗаПрошлыйПериод.КоличествоОборот КАК КоличествоПрошлый,
    0 КАК КоличествоТекущий,
    АналитикаНоменклатуры.Номенклатура КАК Номенклатура
и
1C
1
2
3
4
5
6
ВЫБРАТЬ
    ЗаТекущийПериод.СуммаВыручкиОборот,
    0,
    0,
    ЗаТекущийПериод.КоличествоОборот,
    АналитикаНоменклатуры.Номенклатура
потому что, если установить отбор в скд и потом поиграться там, то []http://s1.ipicture.ru/uploads/20140406/7YUKznvK.png[/] и []http://s1.ipicture.ru/uploads/20140406/bBuitdx9.png[/]

Добавлено через 55 секунд
Что-то не понимаю как картинки сюда вставлять, жму [IMG][/IMG] этот тег и ничего
0
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 35
06.04.2014, 22:41
разобрался с картинками
ну вот что получается, если поиграться с отборами
Миниатюры
Отчёт СКД. Как сделать так, чтобы в него попадали только данные за оба периода   Отчёт СКД. Как сделать так, чтобы в него попадали только данные за оба периода  
0
Эксперт 1С
 Аватар для GreenkA
3065 / 2012 / 525
Регистрация: 25.06.2009
Сообщений: 6,964
06.04.2014, 22:45
bugag1, было бы проще, если бы вы сам отчет выгрузили и показали (как и картинки через вложение к сообщению). Думаю, проблема в объединении запросов, решение: все запихнуть в один запрос: две таблицы регистров оборотов за разные периоды(соединить по номенклатуре) и регистр сведений. Тогда и проставлять нули напротив отсутствующих полей не нужно будет.

Добавлено через 1 минуту
bugag1, компоновка скрыта, у вас скорее всего стоит группировка по номенклатуре, поэтому цены за прошлый и тек период идут в одной строке, на самом деле в выборке - это две разные строки, поэтому отбором отсеивает то одно, то другое. Надо изменять запрос.
1
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 35
06.04.2014, 23:03
GreenkO, Да, совершенно верно, группировка по номенклатуре, как же я забыл про это.
Цитата Сообщение от GreenkO Посмотреть сообщение
все запихнуть в один запрос: две таблицы регистров оборотов за разные периоды(соединить по номенклатуре) и регистр сведений. Тогда и проставлять нули напротив отсутствующих полей не нужно будет.
Вы имеете в виду что-то типа этого
1C
1
2
3
4
5
6
7
8
9
10
ВЫБРАТЬ
    ЗаПролшлыйПериод.СуммаВыручкиОборот КАК ЦенаЗаПрошлыйПериод,
    ЗаТекущийПериод.СуммаВыручкиОборот КАК ЦенаЗаТекущийПериод,
    АналитикаНоменклатуры.Номенклатура
ИЗ
    РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачалоТекущегоПериода, &КонецТекущегоПериода, Авто, ) КАК ЗаТекущийПериод
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаНоменклатуры
            ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачалоПрошлогоПериода, &КонецПрошлогоПериода, Авто, ) КАК ЗаПролшлыйПериод
            ПО (ЗаПролшлыйПериод.АналитикаУчетаНоменклатуры = АналитикаНоменклатуры.КлючАналитики)
        ПО ЗаТекущийПериод.АналитикаУчетаНоменклатуры = АналитикаНоменклатуры.КлючАналитики
?
0
Эксперт 1С
 Аватар для GreenkA
3065 / 2012 / 525
Регистрация: 25.06.2009
Сообщений: 6,964
06.04.2014, 23:13
bugag1, почти. Что-то я смотрю, что таблица регистра сведений лишняя выходит. Можно её вообще исключить.
1C
1
2
3
4
5
6
7
8
9
10
ВЫБРАТЬ
    ЕстьNull(ЗаПролшлыйПериод.СуммаВыручкиОборот,0) КАК ЦенаЗаПрошлыйПериод,
    ЕстьNull(ЗаТекущийПериод.СуммаВыручкиОборот,0) КАК ЦенаЗаТекущийПериод,
    ЕстьNull(ЗаПролшлыйПериод.АналитикаУчетаНоменклатуры, ЗаТекущийПериод.АналитикаУчетаНоменклатуры) Как Номенклатура
ИЗ
    РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачалоТекущегоПериода, &КонецТекущегоПериода, Авто, ) КАК ЗаТекущийПериод
        ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачалоПрошлогоПериода, &КонецПрошлогоПериода, Авто, ) КАК ЗаПролшлыйПериод
            ПО (ЗаПролшлыйПериод.АналитикаУчетаНоменклатуры = ЗаТекущийПериод.АналитикаУчетаНоменклатуры)
ГДЕ
  ЕстьNull(ЗаПролшлыйПериод.СуммаВыручкиОборот,0) <> 0 И ЕстьNull(ЗаТекущийПериод.СуммаВыручкиОборот,0)<> 0
1
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 35
06.04.2014, 23:48
Спасибо, но что-то смотрю цены перестали выводиться.
Наверное, где-то с периодами косяки, будем искать разбираться.

Добавлено через 6 минут
С ценами разобрался, забыл включить в ресурсы.
Теперь отчёт работает как-то странно, апрель 2012-апрель 2014 не выводит ничего, год 2012-2014 что-то выводит, дальше не тестил.
0
Эксперт 1С
 Аватар для GreenkA
3065 / 2012 / 525
Регистрация: 25.06.2009
Сообщений: 6,964
06.04.2014, 23:49
bugag1, может все-таки отчет выгрузите? может отбор забыли убрать в самом СКД...
0
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 35
06.04.2014, 23:58
А не, это я тупой Походу просто в апреле 2012 - апреле 2014 не было одинаковых продаж
апрель 2011 - апрель 2014 работает адекватно, т.е. как на скринах, но пилятся лишние позиции. Значит, наверное, всё работает. Жаль, сам не догадался, но всё таки был где-то рядом
Первоначально пробовал юзать 2 таблицы оборотов, но какой-то бред выводился постоянно, решил сделать по аналогии с отчёт продажи сравнение двух периодов, отсюда и лишний регистр сведений с номенлкатурой.
Да, и отчёт как выгружать? Сохранить как внешнюю обработку, отчёт?

Добавлено через 7 минут
И ещё вопрос, я так понимаю можно и без естьнулл и тд, т.е. просто
1C
1
2
3
ВЫБРАТЬ
    ЗаПролшлыйПериод.СуммаВыручкиОборот КАК ЦенаЗаПрошлыйПериод,
    ЗаТекущийПериод.СуммаВыручкиОборот КАК ЦенаЗаТекущийПериод,
... и тд
но в скд указать отбор типа цены <> 0 и тоже должно работать?
0
Эксперт 1С
 Аватар для GreenkA
3065 / 2012 / 525
Регистрация: 25.06.2009
Сообщений: 6,964
07.04.2014, 00:01
bugag1, да, сохранить как внешнюю обработку, но я так понимаю проблема уже не актуальна?
Про ЕстьNULL(...): вряд ли, при полном соединении таблиц регистров за разные периоды могло бы не прокатить.
0
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 35
07.04.2014, 00:08
Да, проблема уже неактуальна, похоже всё хорошо работает.
Спасибо.
0
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 35
10.04.2014, 23:34
Приветствую снова
Не подскажите, как запрос с полным соединением можно переделать в запрос с объединением? И вообще возможно ли это?

Такой не работает, точнее не выводит ничего=\
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
ВЫБРАТЬ
    Вложенный.Номенклатура,
    Вложенный.ВыручкаЗаПрошлыйПериод,
    Вложенный.ВыручкаЗаТекущийПериод
ИЗ
    (ВЫБРАТЬ
        ЗаПрошлыйПериод.СуммаВыручкиОборот КАК ВыручкаЗаПрошлыйПериод,
        0 КАК ВыручкаЗаТекущийПериод,
        ЗаПрошлыйПериод.АналитикаУчетаНоменклатуры КАК Номенклатура
    ИЗ
        РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачалоПрошлогоПериода, &КонецПрошлогоПериода, Авто, ) КАК ЗаПрошлыйПериод
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        0,
        ЗаТекущийПериод.СуммаВыручкиОборот,
        ЗаТекущийПериод.АналитикаУчетаНоменклатуры
    ИЗ
        РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&НачалоТекущегоПериода, &КонецТекущегоПериода, Авто, ) КАК ЗаТекущийПериод) КАК Вложенный
ГДЕ
    ЕСТЬNULL(Вложенный.ВыручкаЗаПрошлыйПериод, 0) <> 0
    И ЕСТЬNULL(Вложенный.ВыручкаЗаТекущийПериод, 0) <> 0
Если убрать
1C
1
2
3
ГДЕ
    ЕСТЬNULL(Вложенный.ВыручкаЗаПрошлыйПериод, 0) <> 0
    И ЕСТЬNULL(Вложенный.ВыручкаЗаТекущийПериод, 0) <> 0
То выводятся все позиции, что не надо. Опять же думаю из-за обнуления полей.
0
 Аватар для duk337
2956 / 1768 / 84
Регистрация: 03.11.2011
Сообщений: 8,280
10.04.2014, 23:42
сгруппировать надо, однако (и ИЛИ поставить?). А так всё грамотно
0
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 35
10.04.2014, 23:51
duk337, Пробовал поставить Сгруппировать по Номенклатура, но он ругается "поле не входит в заданную группу", в скд, если ставить группировку, то автоматически группирует по
Вложенный.Номенклатура,
Вложенный.ВыручкаЗаПрошлыйПериод,
Вложенный.ВыручкаЗаТекущийПериод
Но толку никакого.
Попробовал ИЛИ, тоже не работает=\
0
Модератор
Эксперт 1С
 Аватар для Dethmontt
4032 / 2977 / 594
Регистрация: 10.03.2011
Сообщений: 11,701
Записей в блоге: 1
11.04.2014, 00:09
Конструкция ОБЪЕДИНИТЬ соединяет два результата и группирует повторяющие строки, в отличии от ОБЪЕДИНИТЬ ВСЕ которая не группирует автоматически строки результата.
0
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 35
11.04.2014, 00:15
Если намёк заменить объединить все на объединить, то тоже не работает так как надо
0
 Аватар для duk337
2956 / 1768 / 84
Регистрация: 03.11.2011
Сообщений: 8,280
11.04.2014, 00:19
сто лет юзаю объединение и всегда тупо группирую во вложенном запросе СУММА(ВыручкаЗаТекущийПериод), СУММА(ВыручкаЗаПрошлыйПериод) СГРУППИРОВАТЬ ПО Номенклатура. Это чтоб они тупо в одной строчке оказались.
Я, наверное, недоверчивый, но всё пашет и голова не болит.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.04.2014, 00:19
Помогаю со студенческими работами здесь

Сделать так, чтобы конечные остатки из одной строки попадали в начальные остатки в другой строке
Добрый день! Пытаюсь своими силами сделать БД.Остатки вроде считает,но хотелось бы чтобы это выглядело так,чтобы данные из поля...

Как сделать так чтобы выводились только те элементы, которые встречаются только 2 раза?
Как сделать так чтобы выводились только те элементы, которые встречаются только 2 раза? Scanner scan = new Scanner(System.in); ...

Запись структуры в файл - Как сделать так, чтобы в файл записывались только данные структуры?
Здравствуйте! using System.Runtime.Serialization.Formatters.Binary; public struct wav { public char a; public...

Создать отчет, чтобы он отражал не все данные, а данные только 1 человека
Здравствуйте! Мне нужно создать отчет, чтобы он отражал не все данные, а данные только 1 человека. У меня уже есть отчет( по форме), но там...

Модифицировать запрос, чтобы в него не попадали повторы по заданному полю
есть запрос Запрос.Текст = &quot;ВЫБРАТЬ | НеСоответствия.Дата, | НеСоответствия.Время, | НеСоответствия.Код, ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru