8.х Доработка отчета

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем PumbaNirvana, 13 ноя 2009.

  1. TopicStarter Overlay
    PumbaNirvana
    Offline

    PumbaNirvana

    Регистрация:
    25 авг 2009
    Сообщения:
    37
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте.
    Опять проблемки с отчетом.
    В форму добавлено Поле ввода - "Контрагент"
    При выборе из справочника любой папки с контрагентами, формирует только по корневым значениям, а по вложенным не формирует. Т.е. формирует только по корневым.
    Хотелось бы, что бы формирования и по вложенным тоже производилось.

    Запрос.УстановитьПараметр("ДатаС", НачалоДня(ДатаС));
    Запрос.УстановитьПараметр("ДатаПо", КонецДня(ДатаПо));
    Запрос.УстановитьПараметр("ДатаПо", КонецДня(ДатаПо));

    Запрос.УстановитьПараметр("Контрагент", Контрагент);

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

    Если НЕ Контрагент.Пустая() Тогда
    Запрос.Текст = Запрос.Текст + "
    |И ВозвратТоваровОтПокупателяТовары.Ссылка.Контрагент.Родитель.Ссылка = &Контрагент";
    КонецЕсли;

    Запрос.Текст = Запрос.Текст + "
    | И ВозвратТоваровОтПокупателяТовары.Ссылка.Комментарий ПОДОБНО ""%брак%""
    | И ВозвратТоваровОтПокупателяТовары.Ссылка.Проведен = ИСТИНА
    | СГРУППИРОВАТЬ ПО
    | ВозвратТоваровОтПокупателяТовары.Ссылка.Контрагент,
    | ВозвратТоваровОтПокупателяТовары.Номенклатура) КАК ВложенныйЗапрос
    |СГРУППИРОВАТЬ ПО
    | ВложенныйЗапрос.Контрагент,
    | ВложенныйЗапрос.Номенклатура
    |Итоги Сумма(Сумма), Сумма (Стоимость) По ВложенныйЗапрос.Контрагент, ВложенныйЗапрос.Номенклатура
    |АВТОУПОРЯДОЧИВАНИЕ";
  2. Stack_G
    Offline

    Stack_G Опытный в 1С

    Регистрация:
    10 дек 2007
    Сообщения:
    786
    Симпатии:
    2
    Баллы:
    26
    Вместо
    Код:
    Если НЕ Контрагент.Пустая() Тогда
    Запрос.Текст = Запрос.Текст + "
    |И Контрагент.Родитель = &Контрагент";
    КонецЕсли;
    
    
    
    Напиши
    Код:
    Если НЕ Контрагент.Пустая() Тогда
    Запрос.Текст = Запрос.Текст + "
    |И Контрагент В ИЕРАРХИИ (&Контрагент)";
    КонецЕсли;
    
    
    Ну и в месте условия возврата тож.
  3. TopicStarter Overlay
    PumbaNirvana
    Offline

    PumbaNirvana

    Регистрация:
    25 авг 2009
    Сообщения:
    37
    Симпатии:
    0
    Баллы:
    1
    Помогло. А можно еще 2 вопросик?
    1. Хотелось бы организовать групповой выбор контрагентов. Выбирать не одну папку а несколько.
    2. Сам отчет высыпается в макет таблицы. Можно ли организовать свертку по группам? Что бы можно было бегунком сворачивать группы.
  4. Stack_G
    Offline

    Stack_G Опытный в 1С

    Регистрация:
    10 дек 2007
    Сообщения:
    786
    Симпатии:
    2
    Баллы:
    26
    1 и 2: Можно: Либо при помощи универсальных механизмов построения отчетов: ПостроительОтчета, СКД - лучше всего, почитайте об этом, еще не раз пригодится. Либо ручками.
    Пример ручками см. во вложении. В предприятии он не откроется. См. в конфигураторе.

    Вложения:

  5. TopicStarter Overlay
    PumbaNirvana
    Offline

    PumbaNirvana

    Регистрация:
    25 авг 2009
    Сообщения:
    37
    Симпатии:
    0
    Баллы:
    1
    Спасибо за рекомендации. Сегодня сяду ковырять СКД.
  6. Elvir4ik
    Offline

    Elvir4ik

    Регистрация:
    28 сен 2009
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    добрый вечер) у меня такой вопрос: как сделать так, чтобы при открытии отчета, в поле ввода Ответственный вставал Текущий пользователь...?
  7. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Откройте в конфигураторе любой документ где есть реквизит Ответственный и гляньте как там заполняется. В разных конфигурациях разные процедуры например в УПП
    ДокументОбъект.Ответственный = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ТекПользователь, "ОсновнойОтветственный");
    Заполнит основного тветсвенного из настроек польователя.
    Вообще в большенствах документах при открытии есть функция ЗполнитьШапкуДоумента и там заполняется ответсвенный. Лезете туда смотрите и переносите в ваш отчет

    Или
    ПараметрыСеанса.ТекущийПользователь

    В общем вариантов много
  8. Elvir4ik
    Offline

    Elvir4ik

    Регистрация:
    28 сен 2009
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    уже сама разобралась.. спасибо)
  9. Вселенная
    Offline

    Вселенная Опытный в 1С

    Регистрация:
    4 ноя 2009
    Сообщения:
    176
    Симпатии:
    0
    Баллы:
    26
    Я совсем запуталась, помогите, пожалуйста...
    В бух (ред.1.6) есть отчет Расчетные ведомости организаций. Мне нужно добавить в него 2 колонки: алименты и недостача. Там есть большой сложный запрос, вот как в него добавить мои данные? Данные для новых колонок берутся из ручной операции. Как я понимаю, они отображаются в регистре Хозрасчетный.
    Код:
    |    ВЫБРАТЬ
    |        Хозрасчетный.Организация КАК Организация,
    |Хозрасчетный.СчетКт,
    |        ВЫБОР
    |            КОГДА Хозрасчетный.Организация.ГоловнаяОрганизация=&ПустаяОрганизация
    |                ТОГДА Хозрасчетный.Организация
    |            ИНАЧЕ Хозрасчетный.Организация.ГоловнаяОрганизация
    |        КОНЕЦ КАК ГоловнаяОрганизация,
    |  ХозрасчетныйДвиженияССубконто.СубконтоДт1 КАК ФизЛицо,
    |  Хозрасчетный.Сумма,
    |        NULL,
    |        NULL,
    |        NULL,
    |        NULL
    |     ИЗ
    |    РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто КАК ХозрасчетныйДвиженияССубконто
    |        ПО Хозрасчетный.СчетДт = ХозрасчетныйДвиженияССубконто.СчетДт
    |            И Хозрасчетный.СчетКт = ХозрасчетныйДвиженияССубконто.СчетКт
    |  ГДЕ
    |    (Хозрасчетный.СчетКт = &Алименты ИЛИ  Хозрасчетный.СчетКт = &Недостача) И Хозрасчетный.Период = &Период";
    </span>
    
    </FONT></FONT></pre>
    Хотела вот этот запрос вставить в исходный, но не получается...
  10. Вселенная
    Offline

    Вселенная Опытный в 1С

    Регистрация:
    4 ноя 2009
    Сообщения:
    176
    Симпатии:
    0
    Баллы:
    26
    Посмотрите, пожалуйста, умные люди, ну что не так?

    Вложения:

  11. Вселенная
    Offline

    Вселенная Опытный в 1С

    Регистрация:
    4 ноя 2009
    Сообщения:
    176
    Симпатии:
    0
    Баллы:
    26
    Неужели никто не сталкивался с доработкой отчета?
    Может, хоть какие-нибудь мысли есть?
  12. Вселенная
    Offline

    Вселенная Опытный в 1С

    Регистрация:
    4 ноя 2009
    Сообщения:
    176
    Симпатии:
    0
    Баллы:
    26
    Причем в консоле запросов результат правильный выводится, а вот построитель не выводит мои колонки. Может что-то с настройками? Но я не могу до них докопаться... :unsure:
  13. Вселенная
    Offline

    Вселенная Опытный в 1С

    Регистрация:
    4 ноя 2009
    Сообщения:
    176
    Симпатии:
    0
    Баллы:
    26
    Разобралась...
    Надо было
    Код:
    ГДЕ
    |      Хозрасчетный.Период МЕЖДУ &Период И КОНЕЦПЕРИОДА(&Период, МЕСЯЦ)
    
    вместо
    Код:
    ГДЕ
    |      Хозрасчетный.Период=&Период 
    
    Только вот теперь итог Всего удержано считает правильно, а итог Всего выплачено мои колонки не учитывает.

Поделиться этой страницей