Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
12 дек 2024, 00:49

как правильно составить отчет?

Автор Yamuna, 15 окт 2019, 11:40

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

Yamuna

добрый день, подскажите как правильно составить отчет, есть документ УчетРабочегоВремени в шапке реквизит Сотрудник и Контрагент и в этом документе есть табличная часть в ней реквизит Услуга и Релиз, релиз будет заполняться только для услуги Обновление,и в отчете хотят увидеть по месяцам для какого Контрагента было обновление или нет, если было то на какой релиз и хотят чтоб месяц был в колонке т.е. должно быть 12 колонок. Какой регистр лучше для этого использовать?

LexaK

отчет можно построить и по данным документа,
если у вас нет или еще не используется какой-то, для взаиморасчетов с Контрагентами по указанным услугам,
то специально для отчета не надо делать регистр, запрос будет выглядеть примерно так

ВЫБРАТЬ //первые 100
Док.Дата,
НачалоПериода(Док.Дата, Месяц) как Месяц, //для сборки по месяцам
Док.Сотрудник,
Док.Контрагент,
ДокТЧ.Услуга,
ДокТЧ.Релиз
ИЗ
Документ.УчетРабочегоВремени Док
левое соединение Документ.УчетРабочегоВремени.ВашаТЧ ДокТЧ
по Док.Ссылка = ДокТЧ.Ссылка

ГДЕ
Док.Дата Между &Дата1 и &Дата2 //отбор документов за период
и Не Док.ПометкаУдаления //помеченные на удаление не учитываем
и ДокТЧ.Услуга = &УслугаОбновление //условие конкретно для Обновления, можно в параметры вынести

Упорядочить по
Док.Контрагент,
Док.Дата

запрос из консоли, можно поместить его в СКД с небольшими доработками,
еще добавит дополнение до 12 месяцев (зачем - не понятно)
и отчет готов!
если помогло нажмите: Спасибо!

Yamuna

Цитата: LexaK от 15 окт 2019, 14:53

запрос из консоли, можно поместить его в СКД с небольшими доработками,
еще добавит дополнение до 12 месяцев (зачем - не понятно)
и отчет готов!
ЛехаК ,здравствуйте рад читать Ваши сообщения, Вы всегда помогаете,спасибо. Подскажите что имеется ввиду "Поместить его в СКД" это добавить в отчет? а где добавляют дополнение?, начальник хочет видеть по месяцам было ли у контрагента обновление поэтому 12 колонок
Добавлено: 15 окт 2019, 18:34


и еще подскажите как лучше сделать: нужно выбрать из документа ВходящаяЗаявка всех контрагентов у которых действует подписка, в документе есть реквизит ДатаНачала и ДатаЗавершения. Это надо ТекущуюДату проверять находится ли она в интервале между ДатаНачала и ДатаЗавершения? и потом этот список надо привязать с услугами и релизам,которые мы выше осуждали, чтобы было видно какие контрагенты обработаны а какие нет

LexaK

ЦитироватьПодскажите что имеется ввиду "Поместить его в СКД"
Yamuna, вы меня пугаете! Вообще: Отчет на СКД - вам что нибудь говорит?
СКД - Система Компоновки Данных

Цитироватьи еще подскажите как лучше сделать: нужно выбрать из документа ВходящаяЗаявка всех контрагентов у которых действует подписка, в документе есть реквизит ДатаНачала и ДатаЗавершения. Это надо ТекущуюДату проверять находится ли она в интервале между ДатаНачала и ДатаЗавершения? и потом этот список надо привязать с услугами и релизам,которые мы выше осуждали, чтобы было видно какие контрагенты обработаны а какие нет
да, можно выбрать из документа, в запросе в секции Где, добавьте такое условие
примерно так, возможны варианты

Выбрать Различные
    Док.Контрагент
Из
    Документ.ВходящаяЗаявка  Док
Где
    Не Док.ПометкаУдаления //не учитываем помеченные на удаление или измените на проверку Проведения
    и &ТекущаДата Между Док.ДатаНачала и Док.ДатаЗавершения


если помогло нажмите: Спасибо!

Yamuna

Цитата: LexaK от 16 окт 2019, 09:10
ЦитироватьПодскажите что имеется ввиду "Поместить его в СКД"
Yamuna, вы меня пугаете! Вообще: Отчет на СКД - вам что нибудь говорит?
СКД - Система Компоновки Данных
да спасибо понял)),LexaK а где и как добавить дополнение на СКД? можете подсказать?

LexaK

один из вариантов, построить свою таблицу с нужными месяцами
вот пример
в результат выводятся месяца, даже если по ним не было обновлений

//вариант формирования таблицы с месяцами за Год
Выбрать &Год как Месяц Поместить ТаблицаМесяцев
Объединить все Выбрать ДобавитьКДате(&Год, Месяц, 1)
Объединить все Выбрать ДобавитьКДате(&Год, Месяц, 2)
Объединить все Выбрать ДобавитьКДате(&Год, Месяц, 3)
Объединить все Выбрать ДобавитьКДате(&Год, Месяц, 4)
Объединить все Выбрать ДобавитьКДате(&Год, Месяц, 5)
Объединить все Выбрать ДобавитьКДате(&Год, Месяц, 6)
Объединить все Выбрать ДобавитьКДате(&Год, Месяц, 7)
Объединить все Выбрать ДобавитьКДате(&Год, Месяц, 8)
Объединить все Выбрать ДобавитьКДате(&Год, Месяц, 9)
Объединить все Выбрать ДобавитьКДате(&Год, Месяц, 10)
Объединить все Выбрать ДобавитьКДате(&Год, Месяц, 11)
;
//выбрать ТаблицаМесяцев.*

ВЫБРАТЬ //первые 100
Таб.Месяц,
    Док.Дата,
    Док.Сотрудник,
    Док.Контрагент,
    ДокТЧ.Услуга,
    ДокТЧ.Релиз
ИЗ
ТаблицаМесяцев Таб
левое соединение Документ.УчетРабочегоВремени Док
по Таб.Месяц = НачалоПериода(Док.Дата, Месяц)

левое соединение Документ.УчетРабочегоВремени.ВашаТЧ ДокТЧ
по Док.Ссылка = ДокТЧ.Ссылка
и  ДокТЧ.Услуга = &УслугаОбновление //условие конкретно для Обновления, можно в параметры вынести
   
ГДЕ
//Док.Дата Между &Дата1 и &Дата2 //отбор документов за период
    НачалоПериода(Док.Дата, Год) = &Год //отбор документов за Год = 01.01.ГГГГ
и    Не Док.ПометкаУдаления    //помеченные на удаление не учитываем

Добавлено: 17 окт 2019, 09:06


упс, небольшая ошибка, условие по отбору надо перенести, так

//вариант формирования таблицы с месяцами за Год
Выбрать &Год как Месяц Поместить ТаблицаМесяцев
Объединить все Выбрать ДобавитьКДате(&Год, Месяц, 1)
Объединить все Выбрать ДобавитьКДате(&Год, Месяц, 2)
Объединить все Выбрать ДобавитьКДате(&Год, Месяц, 3)
Объединить все Выбрать ДобавитьКДате(&Год, Месяц, 4)
Объединить все Выбрать ДобавитьКДате(&Год, Месяц, 5)
Объединить все Выбрать ДобавитьКДате(&Год, Месяц, 6)
Объединить все Выбрать ДобавитьКДате(&Год, Месяц, 7)
Объединить все Выбрать ДобавитьКДате(&Год, Месяц, 8)
Объединить все Выбрать ДобавитьКДате(&Год, Месяц, 9)
Объединить все Выбрать ДобавитьКДате(&Год, Месяц, 10)
Объединить все Выбрать ДобавитьКДате(&Год, Месяц, 11)
;
//выбрать ТаблицаМесяцев.*

ВЫБРАТЬ //первые 100
    Таб.Месяц,
    Док.Дата,
    Док.Сотрудник,
    Док.Контрагент,
    ДокТЧ.Услуга,
    ДокТЧ.Релиз
ИЗ
    ТаблицаМесяцев Таб
левое соединение Документ.УчетРабочегоВремени Док
    по Таб.Месяц = НачалоПериода(Док.Дата, Месяц)
    //и Док.Дата Между &Дата1 и &Дата2 //отбор документов за период
и    НачалоПериода(Док.Дата, Год) = &Год //отбор документов за &Год(тип Дата) = 01.01.ГГГГ
и    Не Док.ПометкаУдаления    //помеченные на удаление не учитываем

левое соединение Документ.УчетРабочегоВремени.ВашаТЧ ДокТЧ
    по Док.Ссылка = ДокТЧ.Ссылка
    и  ДокТЧ.Услуга = &УслугаОбновление //условие конкретно для Обновления, можно в параметры вынести
   
//ГДЕ - здесь отбор не нужен

Добавлено: 17 окт 2019, 09:11


если данные нужны по всем заданным месяцам, то это условие - лишнее
//и Док.Дата Между &Дата1 и &Дата2 //отбор документов за период
//и НачалоПериода(Док.Дата, Год) = &Год //отбор документов за &Год(тип Дата) = 01.01.ГГГГ
если помогло нажмите: Спасибо!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск