Имя: Пароль:
1C
1С v8
Валовая прибыль(диаграмма)
0 qwerty072
 
04.04.12
12:58
Есть отчёт Продажи(диаграмма) а где можно найти такое же, только для валовой. конфигурация УТ 10.2 платформа 8.1
Буду очень признателен
1 КМ155
 
04.04.12
13:04
(0) что-то мешает заменить запрос в существующем отчете ?
2 qwerty072
 
04.04.12
13:08
да там вот через такое идёт, подставляется имя регистра, а где запрос берется, пока не понял, а параметры из макета готового

СтруктураПредставлениеПолей = Новый Структура;
   МассивОтбора = Новый Массив;
   ОбщийОтчет.ИмяРегистра = "Продажи";
   ЗаполнитьНачальныеНастройкиПоМакету(ПолучитьМакет("ПараметрыОтчетовПродажиКомпании"), СтруктураПредставлениеПолей, МассивОтбора, ОбщийОтчет, "Диаграмма");
3 КМ155
 
04.04.12
13:13
(2) открой валовую прибыль, возьми оттуда запрос
4 qwerty072
 
04.04.12
13:21
это не проблема, потом то что делать с этим
5 КМ155
 
04.04.12
13:28
(4) Процедура ЗаполнитьНачальныеНастройки() Экспорт
   
   Если НЕ ЗначениеЗаполнено(ВидЗадолженности) Тогда
       Если Найти(ОбщийОтчет.мНазваниеОтчета, "Дебиторская")>0 Тогда
           ВидЗадолженности = "Дебиторская";
       ИначеЕсли найти(ОбщийОтчет.мНазваниеОтчета, "Кредиторская")>0 Тогда
           ВидЗадолженности = "Кредиторская";
       Иначе
           Сообщить("Не задан тип задолженности (переменная объекта мНазваниеОтчета)", СтатусСообщения.ОченьВажное);
           возврат;
       КонецЕсли;
   КонецЕсли;

   Если ВидЗадолженности="Дебиторская" Тогда

       ТекстРесурсы = "
       |    СУММА(СуммаОстаток) КАК Сумма ";
   ИначеЕсли ВидЗадолженности="Кредиторская" Тогда

       ТекстРесурсы = "
       |    СУММА(-СуммаОстаток) КАК Сумма ";
   Иначе

       Возврат;
       
   КонецЕсли;
   
   Текст =
   "ВЫБРАТЬ РАЗРЕШЕННЫЕ " + ТекстРесурсы + "
   |{ВЫБРАТЬ "+ТекстРесурсы+",
   |    Организация.* КАК Организация,
   |    Контрагент.* КАК Контрагент,
   |    ДоговорКонтрагента.* КАК ДоговорКонтрагента,
   |    ДоговорКонтрагента.ВалютаВзаиморасчетов.* КАК ДоговорКонтрагентаВалютаВзаиморасчетов,
   |    Сделка.* КАК Сделка
   |    //СВОЙСТВА
   |}
   |ИЗ
   //РегистрНакопления.КонтрагентыВзаиморасчетыКомпании.Остатки(&ДатаКон) КАК ТаблицаРегистра
   |(ВЫБРАТЬ
   |    Организация КАК Организация,
   |    Контрагент КАК Контрагент,
   |    ДоговорКонтрагента КАК ДоговорКонтрагента,
   |    ВЫБОР КОГДА Сделка = НЕОПРЕДЕЛЕНО ТОГДА ДоговорКонтрагента
   |    ИНАЧЕ Сделка КОНЕЦ КАК Сделка,
   |    СУММА (СуммаВзаиморасчетовОстаток*КурсыВалют.Курс/КурсыВалют.Кратность/КурсВалютыУпрУчета.Курс*КурсВалютыУпрУчета.Кратность) КАК СуммаОстаток
   |ИЗ
   |    РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(&ДатаКон) КАК ТаблицаРегистра
   |    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&ДатаКон) КАК КурсыВалют
   |    ПО КурсыВалют.Валюта = ТаблицаРегистра.ДоговорКонтрагента.ВалютаВзаиморасчетов
   |    , РегистрСведений.КурсыВалют.СрезПоследних(&ДатаКон, Валюта = &ВалютаУправленческогоУчета) КАК КурсВалютыУпрУчета
   |СГРУППИРОВАТЬ ПО
   |    Организация, Контрагент, ДоговорКонтрагента, Сделка
   |";
   Если ВидЗадолженности="Дебиторская" Тогда

       Текст = Текст + "
       |ИМЕЮЩИЕ СУММА (СуммаВзаиморасчетовОстаток*КурсыВалют.Курс/КурсыВалют.Кратность/КурсВалютыУпрУчета.Курс*КурсВалютыУпрУчета.Кратность)>0 ";

   ИначеЕсли ВидЗадолженности="Кредиторская" Тогда

       Текст = Текст + "
       |ИМЕЮЩИЕ СУММА (-СуммаВзаиморасчетовОстаток*КурсыВалют.Курс/КурсыВалют.Кратность/КурсВалютыУпрУчета.Курс*КурсВалютыУпрУчета.Кратность)>0 ";

   КонецЕсли;
   Текст = Текст + "
   |) КАК ТаблицаЗадолженности
   |    //СОЕДИНЕНИЯ
   | ";

   Текст = Текст + "
   |{ГДЕ
   |    Организация.* КАК Организация,
   |    Контрагент.* КАК Контрагент,
   |    ДоговорКонтрагента.ВидВзаиморасчетов КАК ВидВзаиморасчетов,
   |    ДоговорКонтрагента.* КАК ДоговорКонтрагента,
   |    ДоговорКонтрагента.ВалютаВзаиморасчетов.* КАК ДоговорКонтрагентаВалютаВзаиморасчетов,
   |    Сделка.* КАК Сделка
   |    //СВОЙСТВА
   |    //КАТЕГОРИИ
   |}
   |{УПОРЯДОЧИТЬ ПО
   |    Контрагент.* КАК Контрагент,
   |    Организация.* КАК Организация,
   |    ДоговорКонтрагента.* КАК ДоговорКонтрагента,
   |    ДоговорКонтрагента.ВалютаВзаиморасчетов.* КАК ДоговорКонтрагентаВалютаВзаиморасчетов,
   |    Сделка.* КАК Сделка,
   |    Сумма    
   |    //СВОЙСТВА
   |}
   |{ИТОГИ ПО
   |    Организация.* КАК Организация,
   |    Контрагент.* КАК Контрагент,
   |    ДоговорКонтрагента.* КАК ДоговорКонтрагента,
   |    ДоговорКонтрагента.ВалютаВзаиморасчетов.* КАК ДоговорКонтрагентаВалютаВзаиморасчетов,
   |    Сделка.* КАК Сделка
   |    //СВОЙСТВА
   |}
   |ИТОГИ  
   |    СУММА(Сумма)
   |ПО ОБЩИЕ
   |АВТОУПОРЯДОЧИВАНИЕ ";

   //ОбщийОтчет.ПостроительОтчета.Текст = Текст;
   ОбщийОтчет.ПостроительОтчета.Параметры.Вставить("ВалютаУправленческогоУчета", КОнстанты.ВалютаУправленческогоУчета.Получить());

   // Соответствие имен полей в запросе и их представлений в отчете
   СтруктураПредставлениеПолей = Новый Структура("
   |    Организация,
   |    Контрагент,
   |    ДоговорКонтрагента,
   |    ДоговорКонтрагентаВалютаВзаиморасчетов,
   |    Сделка,
   |    Сумма",
   "Организация",
   "Контрагент",
   "Договор контрагента",
   "Валюта взаиморасчетов",
   "Сделка",
   "Сумма в валюте упр. учета");
   
   ТекстПоляКатегорий = "";
   ТекстПоляСвойств = "";
   
   Если ОбщийОтчет.ИспользоватьСвойстваИКатегории = Истина Тогда
       
       ТаблицаПолей = Новый ТаблицаЗначений;
       ТаблицаПолей.Колонки.Добавить("ПутьКДанным");  // описание поля запроса поля, для которого добавляются свойства и
                                                      // категории. Используется в условии соединения с регистром сведений,
                                                      // хранящим значения свойств или категорий
       ТаблицаПолей.Колонки.Добавить("Представление");// представление поля, для которого добавляются свойства и категории.
       ТаблицаПолей.Колонки.Добавить("Назначение");   // назначение свойств/категорий объектов для данного поля
   //    ТаблицаПолей.Колонки.Добавить("ТипЗначения");  // тип значения поля, для которого добавляются свойства и категории.
                                                      // Не используется.
       ТаблицаПолей.Колонки.Добавить("НетКатегорий"); // признак НЕиспользования категорий для объекта
       
       СтрокаТаблицы = ТаблицаПолей.Добавить();
       СтрокаТаблицы.ПутьКДанным = "Контрагент";
       СтрокаТаблицы.Представление = "Контрагент";
       СтрокаТаблицы.Назначение = ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Контрагенты;

       СтрокаТаблицы = ТаблицаПолей.Добавить();
       СтрокаТаблицы.ПутьКДанным = "Организация";
       СтрокаТаблицы.Представление = "Организация";
       СтрокаТаблицы.Назначение = ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Организации;

       
       УправлениеОтчетами.ДобавитьВТекстСвойстваИКатегории(ТаблицаПолей, Текст, СтруктураПредставлениеПолей,
               ОбщийОтчет.мСоответствиеНазначений, ОбщийОтчет.ПостроительОтчета.Параметры
               ,, ТекстПоляКатегорий, ТекстПоляСвойств,,,,,,ОбщийОтчет.мСтруктураДляОтбораПоКатегориям);

   КонецЕсли;

   ОбщийОтчет.ПостроительОтчета.Текст = Текст;
       
   Если ОбщийОтчет.ИспользоватьСвойстваИКатегории = Истина Тогда

       УправлениеОтчетами.УстановитьТипыЗначенийСвойствИКатегорийДляОтбора(ОбщийОтчет.ПостроительОтчета, ТекстПоляКатегорий, ТекстПоляСвойств, ОбщийОтчет.мСоответствиеНазначений, СтруктураПредставлениеПолей);

   КонецЕсли;

   Если ОбщийОтчет.Показатели.Найти("Сумма", "Имя") = Неопределено Тогда
       ОбщийОтчет.ЗаполнитьПоказатели("Сумма", "Сумма в " + глЗначениеПеременной("ВалютаУправленческогоУчета"), Ложь, "ЧЦ=15; ЧДЦ=2");
   КонецЕсли;
   
   МассивОтбора=Новый Массив;
   МассивОтбора.Добавить("Организация");
   МассивОтбора.Добавить("ВидВзаиморасчетов");
   УправлениеОтчетами.ЗаполнитьПредставленияПолей(СтруктураПредставлениеПолей, ОбщийОтчет.ПостроительОтчета);
   УправлениеОтчетами.ОчиститьДополнительныеПоляПостроителя(ОбщийОтчет.ПостроительОтчета);
   УправлениеОтчетами.ЗаполнитьОтбор(МассивОтбора, ОбщийОтчет.ПостроительОтчета);
   ОбщийОтчет.мВыбиратьИмяРегистра = Ложь;
   
   ОбщийОтчет.ПостроительОтчета.ИзмеренияСтроки.Добавить("Контрагент");


КонецПРоцедуры

Процедура СформироватьОтчет(Диаграмма) Экспорт
   ОбщийОтчет.СформироватьОтчет(Диаграмма);
КонецПроцедуры
Закон Брукера: Даже маленькая практика стоит большой теории.