8.х отчет номенклатуры по технологическим картам

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

  1. TopicStarter Overlay
    gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    с упп (1.2.5.1, движок 8.1.15.14) никогда не сталкивался но пришлось сделать отчет в котором видно какая номенклатура по каким рабочим центрам проходит. как я понял связь тут следующая: берем справочник номенклатура, левым соединением получаем спецификацию, еще левым получаем технологическую карту, а уже тут обращаемся с табличной части "Маршрут", где собственно задаются рабочие центры.

    получить всё это хозяйство не проблема, я могу получить отчет вида (см. скрин)

    проблема вся в том, что заранее какие рабочие центры используются я не могу, а значит не могу заранее определить состав колонок =\
    есть у кого какие-нибудь мысли по решению проблемы?

    Вложения:

    • sshot_1.jpg
      sshot_1.jpg
      Размер файла:
      26,5 КБ
      Просмотров:
      59
  2. Максим
    Offline

    Максим Опытный в 1С

    Регистрация:
    28 фев 2008
    Сообщения:
    688
    Симпатии:
    8
    Баллы:
    29
    Построитель отчетов. Количество и состав колонок заранее не известен. Правда объект довольно сложноватый.
  3. TopicStarter Overlay
    gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    поподробнее можно?
  4. Максим
    Offline

    Максим Опытный в 1С

    Регистрация:
    28 фев 2008
    Сообщения:
    688
    Симпатии:
    8
    Баллы:
    29
    Пишется запрос. Далее в него добавляются конструкции для построителя отчетов (Используется {...}). результат передается как свойство текст объекта построитель отчета. Макет генерируется автоматически. Далее пользователь в может настраивать текст запроса посторителя отчетов прямо в режиме 1с Предприятие через интерфейсные объекты (Измерения колонки). Макет будет формироваться автоматически, в зависимости от того как пользователь настроит постоитель. Т.е. заранее может быть неизвестен состав строк, столбцов, группировки, сортировки, отбор все это настраивается в режиме 1с Предприятие.
  5. TopicStarter Overlay
    gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
  6. Максим
    Offline

    Максим Опытный в 1С

    Регистрация:
    28 фев 2008
    Сообщения:
    688
    Симпатии:
    8
    Баллы:
    29
    Вот текст построителяОтчетов в отчете Продажи УТ 8.0

    Код:
    ВЫБРАТЬ //РАЗЛИЧНЫЕ
    СУММА(РегПартии.Количество) КАК Количество,
    СУММА(РегПартии.Количество*РегПартии.ЕХОКоэффициент/РегПартии.ЕДОКоэффициент) КАК КоличествоЕдиницОтчетов,
    СУММА(РегПартии.Количество*РегПартии.ЕХОКоэффициент) КАК КоличествоБазовыхЕд,
    СУММА((ТаблицаРегистра.СтоимостьОборот/ТаблицаРегистра.КоличествоОборот)*РегПартии.Количество) КАК Стоимость
    {ВЫБРАТЬ 
    ТаблицаРегистра.ДоговорКонтрагента.Владелец.* КАК Покупатель,
    ТаблицаРегистра.ДоговорКонтрагента.* КАК ДоговорКонтрагента,
    ТаблицаРегистра.ЗаказПокупателя.* КАК ЗаказПокупателя,
    ТаблицаРегистра.Номенклатура.* КАК Номенклатура,
    ТаблицаРегистра.Номенклатура.БазоваяЕдиницаИзмерения.* КАК НоменклатураБазоваяЕдиницаИзмерения,
    ТаблицаРегистра.ХарактеристикаНоменклатуры.* КАК ХарактеристикаНоменклатуры,
    ТаблицаРегистра.ДокументПродажи.* КАК ДокументПродажи,
    ТаблицаРегистра.Подразделение.* КАК Подразделение,
    РегПартии.ДокументОприходования.Контрагент.* КАК Поставщик,
    ТаблицаРегистра.Период ,
    ТаблицаРегистра.Регистратор.* КАК Регистратор,
    СУММА(РегПартии.Количество) КАК Количество,
    СУММА(РегПартии.Количество*РегПартии.ЕХОКоэффициент/РегПартии.ЕДОКоэффициент) КАК КоличествоЕдиницОтчетов,
    СУММА(РегПартии.Количество*РегПартии.ЕХОКоэффициент) КАК КоличествоБазовыхЕд,
    СУММА((ТаблицаРегистра.СтоимостьОборот/ТаблицаРегистра.КоличествоОборот)*РегПартии.Количество) КАК Стоимость
    //СВОЙСТВА
    ,
    НачалоПериода(ТаблицаРегистра.Период, День) КАК ПериодДень ,
    НачалоПериода(ТаблицаРегистра.Период, Неделя) КАК ПериодНеделя ,
    НачалоПериода(ТаблицаРегистра.Период, Декада) КАК ПериодДекада ,
    НачалоПериода(ТаблицаРегистра.Период, Месяц) КАК ПериодМесяц ,
    НачалоПериода(ТаблицаРегистра.Период, Квартал) КАК ПериодКвартал ,
    НачалоПериода(ТаблицаРегистра.Период, Полугодие) КАК ПериодПолугодие ,
    НачалоПериода(ТаблицаРегистра.Период, Год) КАК ПериодГод}
    ИЗ РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, {&Периодичность}, {
    ДоговорКонтрагента.Владелец.* КАК Покупатель,
    ДоговорКонтрагента.* КАК ДоговорКонтрагента,
    ЗаказПокупателя.* КАК ЗаказПокупателя,
    Номенклатура.* КАК Номенклатура,
    Номенклатура.БазоваяЕдиницаИзмерения.* КАК НоменклатураБазоваяЕдиницаИзмерения,
    ХарактеристикаНоменклатуры.* КАК ХарактеристикаНоменклатуры,
    ДокументПродажи.* КАК ДокументПродажи,
    Подразделение.* КАК Подразделение}) КАК ТаблицаРегистра  
    { СОЕДИНЕНИЕ (
    ВЫБРАТЬ 
    ПартииТоваровНаСкладах.Регистратор КАК Регистратор,
    ПартииТоваровНаСкладах.Номенклатура КАК Номенклатура,
    ПартииТоваровНаСкладах.ДокументОприходования КАК ДокументОприходования,
    ПартииТоваровНаСкладах.Количество КАК Количество,
    ПартииТоваровНаСкладах.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК ЕХОКоэффициент,
    ПартииТоваровНаСкладах.Номенклатура.ЕдиницаДляОтчетов.Коэффициент КАК ЕДОКоэффициент
    ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах КАК ПартииТоваровНаСкладах) КАК РегПартии
    ПО ТаблицаРегистра.ДокументПродажи = РегПартии.Регистратор и 
    ТаблицаРегистра.Номенклатура = РегПартии.Номенклатура  
    }   
    {ГДЕ 
    ТаблицаРегистра.ДоговорКонтрагента.Владелец.* КАК Покупатель,
    ТаблицаРегистра.ДоговорКонтрагента.* КАК ДоговорКонтрагента,
    ТаблицаРегистра.ЗаказПокупателя.* КАК ЗаказПокупателя,
    ТаблицаРегистра.Номенклатура.* КАК Номенклатура,
    ТаблицаРегистра.Номенклатура.БазоваяЕдиницаИзмерения.* КАК НоменклатураБазоваяЕдиницаИзмерения,
    ТаблицаРегистра.ХарактеристикаНоменклатуры.* КАК ХарактеристикаНоменклатуры,
    ТаблицаРегистра.ДокументПродажи.* КАК ДокументПродажи,
    ТаблицаРегистра.Подразделение.* КАК Подразделение,
    РегПартии.ДокументОприходования.Контрагент.* КАК Поставщик,
    ТаблицаРегистра.Период ,
    ТаблицаРегистра.Регистратор.* КАК Регистратор
    //СВОЙСТВА
    //КАТЕГОРИИ
    }
    {УПОРЯДОЧИТЬ ПО 
    ТаблицаРегистра.ДоговорКонтрагента.Владелец.* КАК Покупатель,
    ТаблицаРегистра.ДоговорКонтрагента.* КАК ДоговорКонтрагента,
    ТаблицаРегистра.ЗаказПокупателя.* КАК ЗаказПокупателя,
    ТаблицаРегистра.Номенклатура.* КАК Номенклатура,
    ТаблицаРегистра.Номенклатура.БазоваяЕдиницаИзмерения.* КАК НоменклатураБазоваяЕдиницаИзмерения,
    ТаблицаРегистра.ХарактеристикаНоменклатуры.* КАК ХарактеристикаНоменклатуры,
    ТаблицаРегистра.ДокументПродажи.* КАК ДокументПродажи,
    ТаблицаРегистра.Подразделение.* КАК Подразделение,
    РегПартии.ДокументОприходования.Контрагент.* КАК Поставщик,
    ТаблицаРегистра.Период ,
    ТаблицаРегистра.Регистратор.* КАК Регистратор,
    Количество,
    КоличествоЕдиницОтчетов,
    КоличествоБазовыхЕд,
    Стоимость
    //СВОЙСТВА
    }
    {ИТОГИ ПО 
    ТаблицаРегистра.ДоговорКонтрагента.Владелец.* КАК Покупатель,
    ТаблицаРегистра.ДоговорКонтрагента.* КАК ДоговорКонтрагента,
    ТаблицаРегистра.ЗаказПокупателя.* КАК ЗаказПокупателя,
    ТаблицаРегистра.Номенклатура.* КАК Номенклатура,
    ТаблицаРегистра.Номенклатура.БазоваяЕдиницаИзмерения.* КАК НоменклатураБазоваяЕдиницаИзмерения,
    ТаблицаРегистра.ХарактеристикаНоменклатуры.* КАК ХарактеристикаНоменклатуры,
    ТаблицаРегистра.ДокументПродажи.* КАК ДокументПродажи,
    ТаблицаРегистра.Подразделение.* КАК Подразделение,
    РегПартии.ДокументОприходования.Контрагент.* КАК Поставщик,
    НачалоПериода(ТаблицаРегистра.Период, День) КАК ПериодДень ,
    НачалоПериода(ТаблицаРегистра.Период, Неделя) КАК ПериодНеделя ,
    НачалоПериода(ТаблицаРегистра.Период, Декада) КАК ПериодДекада ,
    НачалоПериода(ТаблицаРегистра.Период, Месяц) КАК ПериодМесяц ,
    НачалоПериода(ТаблицаРегистра.Период, Квартал) КАК ПериодКвартал ,
    НачалоПериода(ТаблицаРегистра.Период, Полугодие) КАК ПериодПолугодие ,
    НачалоПериода(ТаблицаРегистра.Период, Год) КАК ПериодГод
    //СВОЙСТВА
    }
    ИТОГИ  
    СУММА(Количество),
    СУММА(КоличествоЕдиницОтчетов),
    СУММА(КоличествоБазовыхЕд),
    СУММА(Стоимость)
    ПО ОБЩИЕ 
    АВТОУПОРЯДОЧИВАНИЕ 
    
    
    
    А вот пользователь выбирает измерения строки и столбцы

    Вложения:

    • 111.JPG
      111.JPG
      Размер файла:
      20,9 КБ
      Просмотров:
      47
  7. Максим
    Offline

    Максим Опытный в 1С

    Регистрация:
    28 фев 2008
    Сообщения:
    688
    Симпатии:
    8
    Баллы:
    29
    В данном случае колонок будет столько - сколько поставщиков (т.е. заранее не известно) (и номенклатуры, хотя номенклатуру наверно лучше перенести в "измерения строки"). Можно установить какой нибудь отбор, Тоже в режиме 1с Предприятие и поставщики будут не все. однако стоит учитывать, что макет генерируемый автоматически в любом случае придется подправлять как минимум ширину колонок (я обычно делаю в зависимости от длины наименования)

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