8.х Отчет по реализованной номенклатуре

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем e-tixom, 6 окт 2009.

  1. TopicStarter Overlay
    e-tixom
    Offline

    e-tixom

    Регистрация:
    6 окт 2009
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Помогите, пожалуйста разобраться с методикой написания отчета, не прибегая к компоновщику.
    Есть документ - реализация товаров и услуг за период(период - это параметр) Реализуются разная номенклатура брюк, юбок и галстуков.
    В отчете 4 колонки. Ключевое поле - первая колонка - это номер акта реализации. Дальше 2-я колонка - брюки, 3-я - юбки, 4-я - галстуки. По ним надо вывести сумму реализации. Отдельно по каждой колонке написать запрос и получить итоговое поле СУММА - не проблема. Проблема в том - как это итоговое поле перенести в сводную таблицу.
  2. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Мммм... А что мешает все посчитать в одном запросе?
  3. mialord
    Offline

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

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Здраствуйте!

    А что такое у Вас
    ни совсем понятно, предположим что это группы номенклатуры, тогда вот вам простой запрос который собирает и суммирует нужные Вам данные

    Код:
    Функция ПолучитьРезультатЗапроса_tixom()
    
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |	Продажи.Регистратор КАК Регистратор,
    |	Продажи.Номенклатура КАК Номенклатура,
    |	Продажи.Номенклатура.НоменклатурнаяГруппа КАК НоменклатураНоменклатурнаяГруппа,
    |	СУММА(Продажи.Стоимость) КАК Стоимость
    |ИЗ
    |	РегистрНакопления.Продажи КАК Продажи
    |ГДЕ
    |	(Продажи.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
    |			ИЛИ Продажи.Регистратор ССЫЛКА Документ.КорректировкаЗаписейРегистров)
    |	И Продажи.Регистратор.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
    |
    |СГРУППИРОВАТЬ ПО
    |	Продажи.Регистратор,
    |	Продажи.Номенклатура.НоменклатурнаяГруппа,
    |	Продажи.Номенклатура
    |ИТОГИ
    |	СУММА(Стоимость)
    |ПО
    |	НоменклатураНоменклатурнаяГруппа,
    |	Номенклатура,
    |	Регистратор";
    //Параметры запроса
    Запрос.УстановитьПараметр("ДатаНачала",ДатаНачала);// Дата (01.01.2009 0:00:00)
    Запрос.УстановитьПараметр("ДатаОкончания",ДатаОкончания);// Дата (15.01.2009 0:00:00)
    Результат = Запрос.Выполнить();
    
    Выборка = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "НоменклатураНоменклатурнаяГруппа", "ВСЕ");
    Пока Выборка.Следующий() Цикл
    //<Код>
    КонецЦикла;
    
    Возврат Результат;
    
    КонецФункции //ПолучитьРезультатЗапроса_tixom
    
    Результат запроса будет выглядить так

    Посмотреть вложение 2744

    Вложения:

    • 1.JPG
      1.JPG
      Размер файла:
      52,4 КБ
      Просмотров:
      100
  4. TopicStarter Overlay
    e-tixom
    Offline

    e-tixom

    Регистрация:
    6 окт 2009
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Извините, я не уточнила, что реализация - это наш документ, который не входит в поставку. Так что обратиться к регистрам не удастся. Номенклатура в справочнике не упорядочена по группам (так нам надо) и отбирать возможно только по совпадению с ключевым словом, например "брюки". Она постоянно меняется и в акте может быть разное количество номенклатур, в название которых входит слово "брюки".
    Я пыталась реализовать подсчет как вложенный запрос, но к сожалению, в нем нельзя считать итоги по отобранным записям. Мое мнение, что надо выгрузить эти запросы в таблицы значений и работать уже с ними. Посмотреть вложение 2745 Посмотреть вложение 2745

    Вложения:

  5. mialord
    Offline

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

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    1. На будущее - уточнять нужно сразу, если используете не типовые документы.

    Код:
    Функция ПолучитьРезультатЗапроса_tixom()
    
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |    Реализация.Ссылка.Номер КАК Номер,
    |    СУММА(ВЫБОР
    |            КОГДА АКТ.Номенклатура.Наименование ПОДОБНО &ПодстрокаБрюки
    |                ТОГДА АКТ.Сумма
    |        КОНЕЦ) КАК Брюки,
    |    СУММА(ВЫБОР
    |            КОГДА АКТ.Номенклатура.Наименование ПОДОБНО &ПодстрокаЮбка
    |                ТОГДА АКТ.Сумма
    |        КОНЕЦ) КАК Юбка,
    |    СУММА(ВЫБОР
    |            КОГДА АКТ.Номенклатура.Наименование ПОДОБНО &ПодстрокаГалстук
    |                ТОГДА АКТ.Сумма
    |        КОНЕЦ) КАК Галстук
    |ИЗ
    |    Документ.Реализация.Товары КАК Реализация
    |        ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    |            РеализацияТоварыБезНДС.Номенклатура КАК Номенклатура,
    |            РеализацияТоварыБезНДС.Сумма КАК Сумма
    |        ИЗ
    |            Документ.РеализацияТоварыБезНДС.Товары КАК РеализацияТоварыБезНДСТовары
    |        ГДЕ
    |            РеализацияТоварыБезНДСТовары.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
    |            И РеализацияТоварыБезНДСТовары.Ссылка.Проведен = ИСТИНА) КАК АКТ
    |        ПО Реализация.Номенклатура = АКТ.Номенклатура
    |ГДЕ
    |    Реализация.Ссылка.Проведен = ИСТИНА
    |    И Реализация.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
    |
    |СГРУППИРОВАТЬ ПО
    |    Реализация.Ссылка.Номер
    |ИТОГИ
    |    СУММА(Брюки),
    |    СУММА(Юбка),
    |    СУММА(Галстук)
    |ПО
    |    Номер";
    //Параметры запроса
    Запрос.УстановитьПараметр("ДатаНачала",ДатаНачала);// Дата
    Запрос.УстановитьПараметр("ДатаОкончания",ДатаОкончания);// Дата
    Запрос.УстановитьПараметр("ПодстрокаБрюки",);// Неопределено
    Запрос.УстановитьПараметр("ПодстрокаГалстук",);// Неопределено
    Запрос.УстановитьПараметр("ПодстрокаЮбка",);// Неопределено
    Результат = Запрос.Выполнить();
    
    Выборка = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Номер", "ВСЕ");
    Пока Выборка.Следующий() Цикл
    //
    КонецЦикла;
    
    Возврат Результат;
    
    КонецФункции //ПолучитьРезультатЗапроса_tixom
    
    
    
    2. На будущее: Не рекомендую разбивать задачу на несколько запросов. Дело в чём. Сами подумайте, либо Вы передали запрос 1 раз, и забрали результат, либо Вы четыре раза по сетке пропустите запрос, чем создали не нужную нагрузку на сеть. Выше приведен запрос, как раз для Вас. Результат выборки будет соответствовать таблице приведенной Вами во влажении.

    Пробуйте, и удачи!
  6. TopicStarter Overlay
    e-tixom
    Offline

    e-tixom

    Регистрация:
    6 окт 2009
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Большое спасибо! Осталась одна малость. Когда выводится отчет на экран, печать не активна. Нужно щелкнуть на поле отчета, чтобы она активировалась. Как сделать, чтобы она была активна сразу, либо как спозиционировать курсор на поле отчета?
  7. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Установить ТекущийЭлемент формы
  8. TopicStarter Overlay
    e-tixom
    Offline

    e-tixom

    Регистрация:
    6 окт 2009
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Ничего не получается. Может быть, дело в том, что отчет внешний? Напишите, пожалуйста, код для примера.
  9. TopicStarter Overlay
    e-tixom
    Offline

    e-tixom

    Регистрация:
    6 окт 2009
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Все поняла. Текущий элемент надо устанавливать в модуле формы, а не в модуле документа. Спасибо!
  10. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Код:
    ФормаОтчета.ТекущийЭлемент = ФормаОтчета.Элементы.ПолеОтчета;
    
  11. TopicStarter Overlay
    e-tixom
    Offline

    e-tixom

    Регистрация:
    6 окт 2009
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте! В самом первом запросе Вы использовали обращение к регистру накопления Продажи. У нас версия 1.6.19.3, но никакого регистра Продажи нет. Где устанавливается его наличие?
  12. x_under
    Offline

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

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Это другая конфигурация - управление торговлей. А у вас бухгалтерия. А чтобы таких косяков не было - вам надо было сразу это указать.
    Вам этот запрос не подойдет.

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