8.х Табличное Поле в Отчете

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем zayaroslava, 12 апр 2011.

  1. TopicStarter Overlay
    zayaroslava
    Offline

    zayaroslava Опытный в 1С

    Регистрация:
    27 янв 2010
    Сообщения:
    329
    Симпатии:
    1
    Баллы:
    26
    Подскажите пожалуйста,как проще реализовать след.задачу:

    Необходимо создать отчет с данными Табличного поле документа при определенных условиях.

    Например есть документ Инвентаризация товаров на складе,необходимо в отчете отобразить все товары у которых отклонение не равно нулю.

    Не пойму именно как вытащить в отчете СКД все Табличное поле для отбора...киньте примером.... :angry:
  2. vartanet
    Offline

    vartanet Опытный в 1С Команда форума

    Регистрация:
    16 ноя 2010
    Сообщения:
    2.698
    Симпатии:
    15
    Баллы:
    29
    делайте запрос по табличной части документа с отбором по этому документу..

    чувствую себя капитаном очевидность ;)
  3. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.743
    Симпатии:
    509
    Баллы:
    204
    Для чего вам условие в табличном поле? Не проще ли регистры перебирать, а не документы?
  4. Hr0n
    Offline

    Hr0n Опытный в 1С

    Регистрация:
    17 авг 2009
    Сообщения:
    353
    Симпатии:
    0
    Баллы:
    26
    Сделать это несложно. Пишите запрос вида:
    Код:
    "ВЫБРАТЬ
    |    ИнвентаризацияТовары.Номенклатура,
    |    ИнвентаризацияТовары.Количество,
    |    ИнвентаризацияТовары.КоличествоУчет,
    |    ИнвентаризацияТовары.Сумма,
    |    ИнвентаризацияТовары.СуммаУчет,
    |    ИнвентаризацияТовары.ЕдиницаИзмерения,
    |    ИнвентаризацияТовары.Ссылка,
    |    ИнвентаризацияТовары.Количество - ИнвентаризацияТовары.КоличествоУчет КАК КоличествоОтклонение,
    |    ИнвентаризацияТовары.Сумма - ИнвентаризацияТовары.СуммаУчет КАК СуммаОтклонение
    |ИЗ
    |    Документ.ИнвентаризацияТоваровНаСкладе.Товары КАК ИнвентаризацияТовары"
    
    
    потом устанавливайте отбор, КоличествоОтклонение <> 0 и отчет у Вас будет выводить только товары с отклонением.
    Отбор также можно установить для СКД и программно, например:
    Код:
    ОтборКоличествоОтклонение = Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ОтборКоличествоОтклонение.ЛевоеЗначение     = Новый ПолеКомпоновкиДанных("КоличествоОтклонение");    
    ОтборКоличествоОтклонение.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
    ОтборКоличествоОтклонение .ПравоеЗначение = 0;
    ОтборКоличествоОтклонение .Использование    = Истина;
    
    
    Поместите процедуру с этим кодом например при открытии формы отчета, если выводите отчет средствами платформы (стандартная кнопка "Сформировать"). Если выводите отчет с помощью своего кода, то лучше процедуру отбора повесить непосредственно перед процедурой формирования.
  5. TopicStarter Overlay
    zayaroslava
    Offline

    zayaroslava Опытный в 1С

    Регистрация:
    27 янв 2010
    Сообщения:
    329
    Симпатии:
    1
    Баллы:
    26
    Подскажите,Как установить отбор в СКД
  6. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.743
    Симпатии:
    509
    Баллы:
    204
    Думаю что так:
    Код:
    НовыйЭлементОтбора = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ПолеОтбора = Новый ПолеКомпоновкиДанных("Ответственный");
    НовыйЭлементОтбора.ЛевоеЗначение = ПолеОтбора;
    НовыйЭлементОтбора.Использование = Истина;
    НовыйЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    НовыйЭлементОтбора.ПравоеЗначение = Пользователь.Ссылка;
    
  7. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.743
    Симпатии:
    509
    Баллы:
    204
    Или вот так:
    Код:
    НовыйЭлементОтбора = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ПолеОтбора = Новый ПолеКомпоновкиДанных("ИмяПоляКомпановки");
    НовыйЭлементОтбора.ЛевоеЗначение  = ПолеОтбора;
    НовыйЭлементОтбора.Использование  = Истина;
    НовыйЭлементОтбора.ВидСравнения   = ВидСравненияКомпоновкиДанных.Равно;
    НовыйЭлементОтбора.ПравоеЗначение = Значение;
    
  8. TopicStarter Overlay
    zayaroslava
    Offline

    zayaroslava Опытный в 1С

    Регистрация:
    27 янв 2010
    Сообщения:
    329
    Симпатии:
    1
    Баллы:
    26
    Сделала чуть по другому:В СКД Запрос вот такой:
    Код:
    ВЫБРАТЬ
    ИнвентаризацияТовары.Номенклатура,
    ИнвентаризацияТовары.Количество,
    ИнвентаризацияТовары.КоличествоУчет,
    ИнвентаризацияТовары.Сумма,
    ИнвентаризацияТовары.СуммаУчет,
    ИнвентаризацияТовары.ЕдиницаИзмерения,
    ИнвентаризацияТовары.Ссылка,
    ИнвентаризацияТовары.Количество - ИнвентаризацияТовары.КоличествоУчет КАК КоличествоОтклонение,
    ИнвентаризацияТовары.Сумма - ИнвентаризацияТовары.СуммаУчет КАК СуммаОтклонение,
    ИнвентаризацияТовары.Ссылка.Месяц,
    ИнвентаризацияТовары.Ссылка.Склад
    ИЗ
    Документ.ИнвентаризацияТоваровНаСкладе.Товары КАК ИнвентаризацияТовары
    
    
    и в отборах значение КоличествоОтклонение <> 0..

    но теперь возникла необходимость поделить по разным колонкам Положительные и Отрицательные значения из КоличествоОтклонение...подскажите как это в СКД можно реализовать ??
  9. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.743
    Симпатии:
    509
    Баллы:
    204
    Программно будет заморочено, лучше создать два одинаковых ресурса, и вывод данных в таблицу.
  10. TopicStarter Overlay
    zayaroslava
    Offline

    zayaroslava Опытный в 1С

    Регистрация:
    27 янв 2010
    Сообщения:
    329
    Симпатии:
    1
    Баллы:
    26
    а можно поподробней ? =)
  11. Hr0n
    Offline

    Hr0n Опытный в 1С

    Регистрация:
    17 авг 2009
    Сообщения:
    353
    Симпатии:
    0
    Баллы:
    26
    я бы сделал 4 вычисляемых поля, где бы проанализировал отклонение на равенство нулю. Вам же скидываю запрос который содержит еще 4 ресурса: КоличествоОтклонениеНедостача (с минусом), КоличествоОтклонениеЛишнее, СуммаОтклонениеНедостача и СуммаОтклонениеЛишнее. Выводите эти ресурсы в выбираемые поля и у Вас будет разнесение по разным колонкам.
    Код:
    "ВЫБРАТЬ
    |    ИнвентаризацияТовары.Номенклатура,
    |    ИнвентаризацияТовары.Количество,
    |    ИнвентаризацияТовары.КоличествоУчет,
    |    ИнвентаризацияТовары.Сумма,
    |    ИнвентаризацияТовары.СуммаУчет,
    |    ИнвентаризацияТовары.ЕдиницаИзмерения,
    |    ИнвентаризацияТовары.Ссылка,
    |    ВЫБОР
    |        КОГДА ИнвентаризацияТовары.Количество - ИнвентаризацияТовары.КоличествоУчет < 0
    |            ТОГДА ИнвентаризацияТовары.Количество - ИнвентаризацияТовары.КоличествоУчет
    |        ИНАЧЕ 0
    |    КОНЕЦ КАК КоличествоОтклонениеНедостача,
    |    ВЫБОР
    |        КОГДА ИнвентаризацияТовары.Количество - ИнвентаризацияТовары.КоличествоУчет > 0
    |            ТОГДА ИнвентаризацияТовары.Количество - ИнвентаризацияТовары.КоличествоУчет
    |        ИНАЧЕ 0
    |    КОНЕЦ КАК КоличествоОтклонениеЛишнее,
    |    ВЫБОР
    |        КОГДА ИнвентаризацияТовары.Сумма - ИнвентаризацияТовары.СуммаУчет < 0
    |            ТОГДА ИнвентаризацияТовары.Сумма - ИнвентаризацияТовары.СуммаУчет
    |        ИНАЧЕ 0
    |    КОНЕЦ КАК СуммаОтклонениеНедостача,
    |    ВЫБОР
    |        КОГДА ИнвентаризацияТовары.Сумма - ИнвентаризацияТовары.СуммаУчет > 0
    |            ТОГДА ИнвентаризацияТовары.Сумма - ИнвентаризацияТовары.СуммаУчет
    |        ИНАЧЕ 0
    |    КОНЕЦ КАК СуммаОтклонениеЛишнее,
    |    ИнвентаризацияТовары.Количество - ИнвентаризацияТовары.КоличествоУчет КАК КоличествоОтклонение,
    |    ИнвентаризацияТовары.Сумма - ИнвентаризацияТовары.СуммаУчет КАК СуммаОтклонение
    |ИЗ
    |    Документ.ИнвентаризацияТоваровНаСкладе.Товары КАК ИнвентаризацияТовары"
    
    
  12. TopicStarter Overlay
    zayaroslava
    Offline

    zayaroslava Опытный в 1С

    Регистрация:
    27 янв 2010
    Сообщения:
    329
    Симпатии:
    1
    Баллы:
    26
    Блин что-то я туплю...хочу добавить в отчет выводить склад добавляю в запрос перед ВЫБОР

    ...
    ИнвентаризацияТовары.Ссылка.Склад,
    ...

    И ничего не появляется =(
    и где отклонение "0" тоже попадают в отчет,хотя не должны =(
  13. TopicStarter Overlay
    zayaroslava
    Offline

    zayaroslava Опытный в 1С

    Регистрация:
    27 янв 2010
    Сообщения:
    329
    Симпатии:
    1
    Баллы:
    26
    С товарами получилось, а как убрать чтобы в отчет не попадали значения с "0"
  14. TopicStarter Overlay
    zayaroslava
    Offline

    zayaroslava Опытный в 1С

    Регистрация:
    27 янв 2010
    Сообщения:
    329
    Симпатии:
    1
    Баллы:
    26
    ВСе получилось...
    Решилось через отбор в СКД где указал отбор по отклонениям - ЗАПОЛНЕНО

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