Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
03 Авг 2020, 15:42
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Помогите пожалуйста с отчетом через СКД!  (Прочитано 348 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Elfidor

  • *
  • Сообщений: 26
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2019-03-06
  • Сайт: 
Задача в том, чтобы сделать отчёт по банковским картам, а конкретнее - имя клиента, телефон, номер карты, а так же вывести количество едино-разовых обращений и общее количество обращений. Общее количество - не проблема, через ресурсы сделаю, но вот единоразовое... Выходит будет ещё одна колонка "Обращения"(далее счетчик) и напротив каждого клиента должно быть написано 1/2.../n. Сами понимаете в документах там всё до кучи, один клиент значит одна запись, а отсортировать надо так, чтобы имена не дублировались в отчете, а с каждым дублем добавлялось +1 к счетчику обращений этого конкретного клиента, и те у кого этот счетчик равен одному залетали в итог по единоразовым обращениям. Например:
- Петров
- Петров
- Петров
- Козлов
- Иванов
В итоге - общее количество обращений = 5, а едино-разовых только 2!
Я уже написал запрос, но всё равно он у меня почему-то не работает. Скажу откровенно сколько учуь запросы так понять нормально и не выходит, поэтому то и прошу помощи здесь... А то неделю мучиться над одним и тем же запросом уже достало... Спасибо!

Изначальный запрос - результат
Ошибка: Неверные параметры "ТаблицаОбращений"
<<?>>&ТаблицаОбращений КАК ТаблицаОбращений
ВЫБРАТЬ
    ПродажиПоДисконтнымКартам.Период,
    ПродажиПоДисконтнымКартам.ДисконтнаяКарта.КодКарты,
    ПродажиПоДисконтнымКартам.ДисконтнаяКарта.ВладелецКарты,
    ПродажиПоДисконтнымКартам.ДисконтнаяКарта.БЭ_НомерТелефона,
    ИнформационныеКарты.Наименование,
    ИнформационныеКарты.ДатаВыдачи
ИЗ
    РегистрНакопления.ПродажиПоДисконтнымКартам КАК ПродажиПоДисконтнымКартам
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ИнформационныеКарты КАК ИнформационныеКарты
        ПО ПродажиПоДисконтнымКартам.ДисконтнаяКарта = ИнформационныеКарты.Ссылка
ГДЕ
    ПродажиПоДисконтнымКартам.Период МЕЖДУ &ДатаНач И &ДатаКон
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ТаблицаОбращений.ИмяВладельца КАК Ссылка,
    1 КАК Счетчик
ПОМЕСТИТЬ ИсходнаяТаблица
ИЗ
    &ТаблицаОбращений КАК ТаблицаОбращений
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ИсходнаяТаблица.Ссылка КАК Ссылка,
    СУММА(ИсходнаяТаблица.Счетчик) КАК Счетчик
ПОМЕСТИТЬ ОдноразовыеОбращенияТаблица
ИЗ
    ИсходнаяТаблица КАК ИсходнаяТаблица

СГРУППИРОВАТЬ ПО
    ИсходнаяТаблица.Ссылка

ИМЕЮЩИЕ
    СУММА(ИсходнаяТаблица.Счетчик) = 1
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ИсходнаяТаблица.Ссылка КАК Ссылка,
    ИсходнаяТаблица.Счетчик КАК Счетчик,
    ЕСТЬNULL(ОдноразовыеОбращенияТаблица.Счетчик, 0) КАК СчетчикОдинРаз
ИЗ
    ИсходнаяТаблица КАК ИсходнаяТаблица
        ЛЕВОЕ СОЕДИНЕНИЕ ОдноразовыеОбращенияТаблица КАК ОдноразовыеОбращенияТаблица
        ПО ИсходнаяТаблица.Ссылка = ОдноразовыеОбращенияТаблица.Ссылка

Уже переделал так, но в консоли запросов с записями всё нормально, счетчик правда у всех = 1, хотя не должен, а в самом отчете 100500+ записей...

ВЫБРАТЬ
ПродажиПоДисконтнымКартам.Период,
ПродажиПоДисконтнымКартам.ДисконтнаяКарта.КодКарты,
ПродажиПоДисконтнымКартам.ДисконтнаяКарта.ВладелецКарты,
ПродажиПоДисконтнымКартам.ДисконтнаяКарта.БЭ_НомерТелефона,
ИнформационныеКарты.Наименование,
ИнформационныеКарты.ДатаВыдачи
ПОМЕСТИТЬ ТаблицаОбращений
ИЗ
РегистрНакопления.ПродажиПоДисконтнымКартам КАК ПродажиПоДисконтнымКартам
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ИнформационныеКарты КАК ИнформационныеКарты
ПО ПродажиПоДисконтнымКартам.ДисконтнаяКарта = ИнформационныеКарты.Ссылка
ГДЕ
ПродажиПоДисконтнымКартам.Период МЕЖДУ &ДатаНач И &ДатаКон
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
1 КАК Счетчик,
ТаблицаОбращений.Наименование,
ТаблицаОбращений.ДисконтнаяКартаКодКарты,
ТаблицаОбращений.ДисконтнаяКартаБЭ_НомерТелефона
ПОМЕСТИТЬ ИсходнаяТаблица
ИЗ
ТаблицаОбращений КАК ТаблицаОбращений
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ИсходнаяТаблица.Счетчик КАК Счетчик1,
ИсходнаяТаблица.Наименование КАК Наименование1,
ИсходнаяТаблица.ДисконтнаяКартаКодКарты,
ИсходнаяТаблица.ДисконтнаяКартаБЭ_НомерТелефона
ПОМЕСТИТЬ ОдноразовыеОбращенияТаблица
ИЗ
ИсходнаяТаблица КАК ИсходнаяТаблица

СГРУППИРОВАТЬ ПО
ИсходнаяТаблица.Наименование,
ИсходнаяТаблица.Счетчик,
ИсходнаяТаблица.ДисконтнаяКартаКодКарты,
ИсходнаяТаблица.ДисконтнаяКартаБЭ_НомерТелефона

ИМЕЮЩИЕ
СУММА(ИсходнаяТаблица.Счетчик) = 1
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ОдноразовыеОбращенияТаблица.Счетчик1,
ОдноразовыеОбращенияТаблица.ДисконтнаяКартаКодКарты,
ОдноразовыеОбращенияТаблица.ДисконтнаяКартаБЭ_НомерТелефона,
ОдноразовыеОбращенияТаблица.Наименование1
ИЗ
ИсходнаяТаблица КАК ИсходнаяТаблица,
ОдноразовыеОбращенияТаблица КАК ОдноразовыеОбращенияТаблица
Помогите, уже нет моральных сил, а самое обидное, что я учу/читаю и всё равно не понимаю...


Оффлайн Elfidor

  • *
  • Сообщений: 26
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2019-03-06
  • Сайт: 
Так, ладно, товарищи, меня тут спустя столько времени осенило, вопрос немного другой. Если через запрос уже есть отдельная колонка "КоличествоОбращений", то как описать запросом или СКД, что если значение равно 1 то заносить его в другую колонку "Количество разовых обращений"? Меня поиск информации не пугает, так что если не уверены подскажите хоть в какую сторону копать, в сторону запросов или СКД или вообще как-то прописывать кодом в модуле...

Оффлайн LexaK

  • *****
  • Сообщений: 2215
  • РЕПУТАЦИЯ: 650
  • КПД: 29%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
зачем вам что-то анализировать и вычислять, вот же ваш запрос - получение одноразовых клиентов
Цитировать
ВЫБРАТЬ
    ИсходнаяТаблица.Ссылка КАК Ссылка,
    СУММА(ИсходнаяТаблица.Счетчик) КАК Счетчик
ПОМЕСТИТЬ ОдноразовыеОбращенияТаблица
ИЗ
    ИсходнаяТаблица КАК ИсходнаяТаблица

СГРУППИРОВАТЬ ПО
    ИсходнаяТаблица.Ссылка

ИМЕЮЩИЕ
    СУММА(ИсходнаяТаблица.Счетчик) = 1
;
присоедините эту таблицу к результату, вот вам и будет колонка Одноразовых! :dfbbdrfb:
Помогло? - Нажми СПАСИБО (под аватаром) !!!
                       :)

Оффлайн Elfidor

  • *
  • Сообщений: 26
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2019-03-06
  • Сайт: 
зачем вам что-то анализировать и вычислять, вот же ваш запрос - получение одноразовых клиентов
Цитировать
ВЫБРАТЬ
    ИсходнаяТаблица.Ссылка КАК Ссылка,
    СУММА(ИсходнаяТаблица.Счетчик) КАК Счетчик
ПОМЕСТИТЬ ОдноразовыеОбращенияТаблица
ИЗ
    ИсходнаяТаблица КАК ИсходнаяТаблица

СГРУППИРОВАТЬ ПО
    ИсходнаяТаблица.Ссылка

ИМЕЮЩИЕ
    СУММА(ИсходнаяТаблица.Счетчик) = 1
;
присоедините эту таблицу к результату, вот вам и будет колонка Одноразовых! :dfbbdrfb:

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

СГРУППИРОВАТЬ ПО
ИнформационныеКарты.Наименование,
ИнформационныеКарты.ДатаВыдачи,
ПродажиПоДисконтнымКартам.ДисконтнаяКарта.КодКарты,
ПродажиПоДисконтнымКартам.ДисконтнаяКарта.БЭ_НомерТелефона,
ИнформационныеКарты.Ссылка

ИМЕЮЩИЕ
КОЛИЧЕСТВО(ИнформационныеКарты.Ссылка) > 0


Теги:
 

Помогите срочно!! В вкладке "Сервис"--> "Журнал регистрации" отражаются все операции как можно определить сделаны ли операции "задним числом" и как вычислить первоначальную информацию какой расчет поменял на другой?

Автор 2ronРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 6754
Последний ответ 24 Дек 2015, 15:34
от дфтын
Помогите правильно настроить справочник "Единицы измерения" и "Номенклатура"

Автор perminovandrРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 1230
Последний ответ 23 Янв 2019, 07:21
от Геннадий ОбьГЭС
Помогите подобрать Back-office и Front-office

Автор avrnskРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 7168
Последний ответ 07 Сен 2010, 12:01
от mohock
Помогите с отчётами в УТ 10.3. (Ведомость по товарам и ведомость по заказам)

Автор chum710Раздел Пользователям "1С - Предприятие 8"

Ответов: 2
Просмотров: 7255
Последний ответ 28 Мар 2012, 13:02
от chum710
Помогите добавить "Обособленное подразделение".

Автор mspuzРаздел Пользователям "1С - Предприятие 8"

Ответов: 3
Просмотров: 1070
Последний ответ 10 Окт 2018, 17:27
от BuhRust

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
48 Сообщений
LexaK
40 Сообщений
ToryFree ToryFree
29 Сообщений
Алексей_1985_06
23 Сообщений
alexandr_ll
20 Сообщений
DmitriyF DmitriyF
20 Сообщений
antoneus antoneus
18 Сообщений
pavl_vs
9 Сообщений
Тари
9 Сообщений
Алексей Рожков Алексей Рожков
7 Сообщений

* Кто онлайн

  • Точка Гостей: 482
  • Точка Скрытых: 0
  • Точка Пользователей: 2
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal