8.х Как добавить в Отчет Продажи как новую колонку (универсальный отчет)

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

  1. TopicStarter Overlay
    Doza
    Offline

    Doza

    Регистрация:
    16 янв 2013
    Сообщения:
    33
    Симпатии:
    0
    Баллы:
    1
    Добрый день!

    У меня проблема с отчетом "Продажи" УТ 10.3. Мне нужно добавить колонку с остатками, резервами, и свободными остатками (остаток-резерв) на конец периода. Отчет формируется с помощью универсального отчета, по одному регистру "Продажи". А данные для новых колонок должны браться из других регистров накопления, например "Товары в резервах на складах". В самом отчете "Продажи" нет текста запроса( . Помогите пожалуйста, слезно прошу.

    Код:
    Процедура УстановитьНачальныеНастройки(ДополнительныеПараметры = Неопределено) Экспорт
    
    // Настройка общих параметров универсального отчета
    
    // Содержит название отчета, которое будет выводиться в шапке.
    // Тип: Строка.
    // Пример:
    // УниверсальныйОтчет.мНазваниеОтчета = "Название отчета";
    УниверсальныйОтчет.мНазваниеОтчета = СокрЛП(ЭтотОбъект.Метаданные().Синоним);
    
    // Содержит признак необходимости отображения надписи и поля выбора раздела учета в форме настройки.
    // Тип: Булево.
    // Значение по умолчанию: Истина.
    // Пример:
    // УниверсальныйОтчет.мВыбиратьИмяРегистра = Ложь;
    УниверсальныйОтчет.мВыбиратьИмяРегистра = Ложь;
    
    // Содержит имя регистра, по метаданным которого будет выполняться заполнение настроек отчета.
    // Тип: Строка.
    // Пример:
    // УниверсальныйОтчет.ИмяРегистра = "ТоварыНаСкладах";
    УниверсальныйОтчет.ИмяРегистра = "Продажи";
    
    // Содержит признак необходимости вывода отрицательных значений показателей красным цветом.
    // Тип: Булево.
    // Значение по умолчанию: Ложь.
    // Пример:
    // УниверсальныйОтчет.ОтрицательноеКрасным = Истина;
    
    // Содержит признак необходимости вывода в отчет общих итогов.
    // Тип: Булево.
    // Значение по умолчанию: Истина.
    // Пример:
    // УниверсальныйОтчет.ВыводитьОбщиеИтоги = Ложь;
    
    // Содержит признак необходимости вывода детальных записей в отчет.
    // Тип: Булево.
    // Значение по умолчанию: Ложь.
    // Пример:
    // УниверсальныйОтчет.ВыводитьДетальныеЗаписи = Истина;
    
    // Содержит признак необходимости отображения флага использования свойств и категорий в форме настройки.
    // Тип: Булево.
    // Значение по умолчанию: Истина.
    // Пример:
    // УниверсальныйОтчет.мВыбиратьИспользованиеСвойств = Ложь;
    
    // Содержит признак использования свойств и категорий при заполнении настроек отчета.
    // Тип: Булево.
    // Значение по умолчанию: Ложь.
    // Пример:
    // УниверсальныйОтчет.ИспользоватьСвойстваИКатегории = Истина;
    
    // Содержит признак использования простой формы настроек отчета без группировок колонок.
    // Тип: Булево.
    // Значение по умолчанию: Ложь.
    // Пример:
    // УниверсальныйОтчет.мРежимФормыНастройкиБезГруппировокКолонок = Истина;
    
    // Дополнительные параметры, переданные из отчета, вызвавшего расшифровку.
    // Информация, передаваемая в переменной ДополнительныеПараметры, может быть использована
    // для реализации специфичных для данного отчета параметрических настроек.
    
    УниверсальныйОтчет.ДобавитьПолеГруппировка("НоменклатураБазоваяЕдиницаИзмерения", "Номенклатура", "БазоваяЕдиницаИзмерения", "Базовая единица измерения");
    
    УниверсальныйОтчет.ДобавитьПолеРесурс("КоличествоЕдиницОтчетов", "КоличествоОборот * Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / Номенклатура.ЕдиницаДляОтчетов.Коэффициент", "Количество (в ед. отчетов)");
    УниверсальныйОтчет.ДобавитьПолеРесурс("КоличествоБазовыхЕд",	 "КоличествоОборот * Номенклатура.ЕдиницаХраненияОстатков.Коэффициент", "Количество (в базовых единицах)");
    УниверсальныйОтчет.ДобавитьПолеРесурс("ПроцентСкидки",		   "ВЫБОР КОГДА СтоимостьБезСкидокОборот = 0 ТОГДА 0 ИНАЧЕ (СтоимостьБезСкидокОборот - СтоимостьОборот) / СтоимостьБезСкидокОборот * 100 КОНЕЦ", "% скидки",
    "ВЫБОР КОГДА СУММА(СтоимостьБезСкидокОборот) = 0 ТОГДА 0 ИНАЧЕ (СУММА(СтоимостьБезСкидокОборот) - СУММА(СтоимостьОборот)) / СУММА(СтоимостьБезСкидокОборот) * 100 КОНЕЦ"); // Чтобы не суммировались проценты
    УниверсальныйОтчет.ДобавитьПолеРесурс("СуммаСкидки",			 "СтоимостьБезСкидокОборот - СтоимостьОборот", "Сумма скидки");
    
    // Заполнение начальных настроек универсального отчета
    УниверсальныйОтчет.УстановитьНачальныеНастройки(Истина);
    
    ВалютаУпр = глЗначениеПеременной("ВалютаУправленческогоУчета").Наименование;
    
    УниверсальныйОтчет.ДобавитьПоказатель("КоличествоОборот",, Ложь);
    УниверсальныйОтчет.ДобавитьПоказатель("КоличествоЕдиницОтчетов", "Количество (в ед. отчетов)",		Ложь, "ЧЦ=15; ЧДЦ=3");
    УниверсальныйОтчет.ДобавитьПоказатель("КоличествоБазовыхЕд",	 "Количество (в базовых единицах)", Истина, "ЧЦ=15; ЧДЦ=3");
    УниверсальныйОтчет.ДобавитьПоказатель("НДСОборот",			   "НДС",							   Ложь);
    УниверсальныйОтчет.ДобавитьПоказатель("СуммаСкидки",			 "Сумма скидки в " + ВалютаУпр,	 Истина, "ЧЦ=15; ЧДЦ=2");
    УниверсальныйОтчет.ДобавитьПоказатель("ПроцентСкидки",		   "% скидки",						Истина, "ЧЦ=15; ЧДЦ=2");
    
    УниверсальныйОтчет.ДобавитьПоказатель("СтоимостьОборот",		  "Сумма продажи в " + ВалютаУпр);
    УниверсальныйОтчет.ДобавитьПоказатель("СтоимостьБезСкидокОборот", "Сумма продажи без скидок в " + ВалютаУпр);
    
    // Добавление предопределенных группировок строк отчета.
    // Необходимо вызывать для каждой добавляемой группировки строки.
    // УниверсальныйОтчет.ДобавитьИзмерениеСтроки(<ПутьКДанным>);
    //УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Покупатель");
    УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Контрагент");
    УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Номенклатура");
    
    // Добавление предопределенных группировок колонок отчета.
    // Необходимо вызывать для каждой добавляемой группировки колонки.
    // УниверсальныйОтчет.ДобавитьИзмерениеКолонки(<ПутьКДанным>);
    
    // Добавление предопределенных отборов отчета.
    // Необходимо вызывать для каждого добавляемого отбора.
    // УниверсальныйОтчет.ДобавитьОтбор(<ПутьКДанным>);
    УниверсальныйОтчет.ДобавитьОтбор("Контрагент");
    УниверсальныйОтчет.ДобавитьОтбор("Номенклатура");
    УниверсальныйОтчет.ДобавитьОтбор("Проект");
    УниверсальныйОтчет.ДобавитьОтбор("Подразделение");
    
    // Добавление предопределенных полей порядка отчета.
    // Необходимо вызывать для каждого добавляемого поля порядка.
    // УниверсальныйОтчет.ДобавитьПорядок(<ПутьКДанным>);
    УниверсальныйОтчет.ДобавитьПорядок("Контрагент.Наименование");
    УниверсальныйОтчет.ДобавитьПорядок("Номенклатура.Наименование");
    
    // Установка связи подчиненных и родительских полей
    // УниверсальныйОтчет.УстановитьСвязьПолей(<ПутьКДанным>, <ПутьКДаннымРодитель>);
    
    // Установка связи полей и измерений
    // УниверсальныйОтчет.УстановитьСвязьПоляИИзмерения(<ИмяПоля>, <ИмяИзмерения>);
    
    // Добавление дополнительных полей
    // Необходимо вызывать для каждого добавляемого дополнительного поля.
    // УниверсальныйОтчет.ДобавитьДополнительноеПоле(<ПутьКДанным>, <Размещение>, <Положение>);
    УниверсальныйОтчет.ДобавитьДополнительноеПоле("НоменклатураБазоваяЕдиницаИзмерения");
    
    КонецПроцедуры
  2. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    Нужно писать свой запрос

    Коментарите строки
    Код:
    УниверсальныйОтчет.мВыбиратьИмяРегистра = Ложь;
    УниверсальныйОтчет.ИмяРегистра = "Продажи";
    
    Добавляете перед объявлением полей, представлений и т.п
    Код:
    // Текст запроса отчета
    ТекстЗапроса = "<текст запроса>";
    УниверсальныйОтчет.ПостроительОтчета.Текст = ТекстЗапроса;
    
    И это только начало

    Возьмите за основу любой типовой отчет в УТ с запросом, так будет проще разбираться
  3. TopicStarter Overlay
    Doza
    Offline

    Doza

    Регистрация:
    16 янв 2013
    Сообщения:
    33
    Симпатии:
    0
    Баллы:
    1
    Спасибо!

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