|
Помогите с универсальным отчетом, пожалуйста. | ☑ | ||
---|---|---|---|---|
0
new1snik
01.07.13
✎
09:20
|
Добрый день. Делаю изменяю стандартный отчет "СтоимостнаяОценкаСкладаВЦенахНоменклатурыВнешний", нужно добавить в него колонки для второго типа цен. На форму добавил поле ввода, для выбора нового типа цен. В модуле отчета по аналогии с первым типом цен добавил в запросы нужные мне части. При формировании отчета появляются нужные столбики, но данные не заполняются. Если не сложно, то посмотрите в чем может быть причина...
http://yadi.sk/d/6l6PXVEz6MJKe |
|||
1
Галахад
гуру
01.07.13
✎
09:22
|
||||
2
new1snik
01.07.13
✎
09:24
|
(1) читал ее. Вроде в отчете все правильно сделал, но один черт, ничего не работает, а где ошибка уже не вижу - вроде все проверил.
|
|||
3
Галахад
гуру
01.07.13
✎
09:26
|
(2) В "Построителе" поля указал?
|
|||
4
new1snik
01.07.13
✎
09:27
|
(3) Да
|
|||
5
new1snik
01.07.13
✎
11:03
|
Сначала я добавил свои показатели:
УниверсальныйОтчет.ДобавитьПоказатель("ТипЦенЦена2", "Цена2", Истина, "ЧЦ=15; ЧДЦ=2", "ВВыбранномТипеЦен2", "В выбранном типе цен2 ("+мВалютаУправленческогоУчета+")"); Потом добавил в запрос новые строки для получения нужной мне информации. Далее представление полей УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("ТипЦенЦена2", "Цена в выбранном типе цен2"); И при формировании отчета передавал в него своим параметры: УниверсальныйОтчет.ПостроительОтчета.Параметры.Вставить("БазовыйТипЦен2" , ТипЦен2.БазовыйТипЦен); Если данные не выводятся, то нужно искать ошибку в запросе? Или она может возникнуть и на другом этапе? |
|||
6
new1snik
01.07.13
✎
12:18
|
Убрал все лишнее, оставил только один запрос(надеюсь поместится код под спойлер)
Посмотри, если не сложно: #Если Клиент Тогда // Валюта управленческого учета организаций Перем мВалютаУправленческогоУчета Экспорт; //////////////////////////////////////////////////////////////////////////////// // ПРОЦЕДУРЫ И ФУНКЦИИ НАЧАЛЬНОЙ НАСТРОЙКИ ОТЧЕТА // Процедура установки начальных настроек отчета с использованием текста запроса // Процедура УстановитьНачальныеНастройки(ДополнительныеПараметры = Неопределено) Экспорт // Настройка общих параметров универсального отчета Если ДополнительныеПараметры <> Неопределено Тогда УправлениеОтчетами.ВосстановитьРеквизитыОтчета(ЭтотОбъект, ДополнительныеПараметры); КонецЕсли; УниверсальныйОтчет.мНазваниеОтчета = СокрЛП(ЭтотОбъект.Метаданные().Синоним); УниверсальныйОтчет.мВыбиратьИмяРегистра = Ложь; УниверсальныйОтчет.ОтрицательноеКрасным = Истина; // Содержит признак необходимости вывода в отчет общих итогов. // Тип: Булево. // Значение по умолчанию: Истина. // Пример: // УниверсальныйОтчет.ВыводитьОбщиеИтоги = Ложь; // Содержит признак необходимости вывода детальных записей в отчет. // Тип: Булево. // Значение по умолчанию: Ложь. // Пример: // УниверсальныйОтчет.ВыводитьДетальныеЗаписи = Истина; // Содержит признак необходимости отображения флага использования свойств и категорий в форме настройки. // Тип: Булево. // Значение по умолчанию: Истина. // Пример: // УниверсальныйОтчет.мВыбиратьИспользованиеСвойств = Ложь; // Содержит признак использования свойств и категорий при заполнении настроек отчета. // Тип: Булево. // Значение по умолчанию: Ложь. // Пример: // УниверсальныйОтчет.ИспользоватьСвойстваИКатегории = Истина; УниверсальныйОтчет.мРежимФормыНастройкиБезГруппировокКолонок = Истина; // Дополнительные параметры, переданные из отчета, вызвавшего расшифровку. // Информация, передаваемая в переменной ДополнительныеПараметры, может быть использована // для реализации специфичных для данного отчета параметрических настроек. Режим = 0; Если Режим = 0 Тогда // Оперативный режим УниверсальныйОтчет.Показатели.Строки.Очистить(); УниверсальныйОтчет.ДобавитьПоказатель("КоличествоОстаток", "в ед. хранения", Истина, "ЧЦ=15; ЧДЦ=3", "Количество", "Количество"); УниверсальныйОтчет.ДобавитьПоказатель("КоличествоБазовыхЕдОстаток", "в базовых ед.", Истина, "ЧЦ=15; ЧДЦ=3", "Количество", "Количество"); УниверсальныйОтчет.ДобавитьПоказатель("ТипЦенЦена", "Цена", Истина, "ЧЦ=15; ЧДЦ=2", "ВВыбранномТипеЦен", "В выбранном типе цен ("+мВалютаУправленческогоУчета+")"); УниверсальныйОтчет.ДобавитьПоказатель("ТипЦенСтоимость", "Стоимость", Истина, "ЧЦ=15; ЧДЦ=2", "ВВыбранномТипеЦен", "В выбранном типе цен ("+мВалютаУправленческогоУчета+")"); //Добавляю показатели для второго типа цен УниверсальныйОтчет.ДобавитьПоказатель("ТипЦенЦена2", "Цена2", Истина, "ЧЦ=15; ЧДЦ=2", "ВВыбранномТипеЦен2", "В выбранном типе цен2 ("+мВалютаУправленческогоУчета+")"); УниверсальныйОтчет.ДобавитьПоказатель("ТипЦенСтоимость2", "Стоимость2", Истина, "ЧЦ=15; ЧДЦ=2", "ВВыбранномТипеЦен2", "В выбранном типе цен2 ("+мВалютаУправленческогоУчета+")"); ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | ТаблицаРегистра.Склад КАК Склад, | ТаблицаРегистра.Номенклатура КАК Номенклатура, | ТаблицаРегистра.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, | ТаблицаРегистра.КоличествоОстаток КАК КоличествоОстаток, | ТаблицаРегистра.КоличествоОстаток * ТаблицаРегистра.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК КоличествоБазовыхЕдОстаток, | ВЫБОР | КОГДА ЦеныНоменклатуры.Цена ЕСТЬ NULL | ТОГДА ЦеныНоменклатурыБезХарактеристик.Цена * ТаблицаРегистра.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ЦеныНоменклатурыБезХарактеристик.ЕдиницаИзмерения.Коэффициент * (КурсыВалютСрезПоследнихБезХарактеристик.Курс / КурсыВалютСрезПоследнихБезХарактеристик.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен | ИНАЧЕ ЦеныНоменклатуры.Цена * ТаблицаРегистра.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ЦеныНоменклатуры.ЕдиницаИзмерения.Коэффициент * (КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен | КОНЕЦ КАК ТипЦенЦена, | ВЫБОР | КОГДА ЦеныНоменклатуры.Цена ЕСТЬ NULL | ТОГДА ТаблицаРегистра.КоличествоОстаток * (ЦеныНоменклатурыБезХарактеристик.Цена / ЦеныНоменклатурыБезХарактеристик.ЕдиницаИзмерения.Коэффициент) * ТаблицаРегистра.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * (КурсыВалютСрезПоследнихБезХарактеристик.Курс / КурсыВалютСрезПоследнихБезХарактеристик.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен | ИНАЧЕ ТаблицаРегистра.КоличествоОстаток * (ЦеныНоменклатуры.Цена / ЦеныНоменклатуры.ЕдиницаИзмерения.Коэффициент) * ТаблицаРегистра.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * (КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен | КОНЕЦ КАК ТипЦенСтоимость, | ВЫБОР | КОГДА ЦеныНоменклатуры.Цена ЕСТЬ NULL | ТОГДА ЦеныНоменклатурыБезХарактеристик.Цена * ТаблицаРегистра.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ЦеныНоменклатурыБезХарактеристик.ЕдиницаИзмерения.Коэффициент * (КурсыВалютСрезПоследнихБезХарактеристик.Курс / КурсыВалютСрезПоследнихБезХарактеристик.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен | ИНАЧЕ ЦеныНоменклатуры.Цена * ТаблицаРегистра.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ЦеныНоменклатуры.ЕдиницаИзмерения.Коэффициент * (КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен | КОНЕЦ КАК ТипЦенЦена2, | ВЫБОР | КОГДА ЦеныНоменклатуры.Цена ЕСТЬ NULL | ТОГДА ТаблицаРегистра.КоличествоОстаток * (ЦеныНоменклатурыБезХарактеристик.Цена / ЦеныНоменклатурыБезХарактеристик.ЕдиницаИзмерения.Коэффициент) * ТаблицаРегистра.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * (КурсыВалютСрезПоследнихБезХарактеристик.Курс / КурсыВалютСрезПоследнихБезХарактеристик.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен | ИНАЧЕ ТаблицаРегистра.КоличествоОстаток * (ЦеныНоменклатуры.Цена / ЦеныНоменклатуры.ЕдиницаИзмерения.Коэффициент) * ТаблицаРегистра.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * (КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен | КОНЕЦ КАК ТипЦенСтоимость2 |{ВЫБРАТЬ | Склад.* КАК Склад, | Номенклатура.* КАК Номенклатура, | ХарактеристикаНоменклатуры.* КАК ХарактеристикаНоменклатуры, | КоличествоОстаток КАК КоличествоОстаток, | КоличествоБазовыхЕдОстаток КАК КоличествоБазовыхЕдОстаток, | ТипЦенЦена КАК ТипЦенЦена, | ТипЦенСтоимость КАК ТипЦенСтоимость, | ТипЦенЦена2 КАК ТипЦенЦена2, | ТипЦенСтоимость2 КАК ТипЦенСтоимость2} |ИЗ | РегистрСведений.КурсыВалют.СрезПоследних(&ДатаКон, Валюта = &ВалютаУпрУчета) КАК УпрВалюты, | РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаКон, {(Склад).* КАК Склад, (Номенклатура).* КАК Номенклатура, (ХарактеристикаНоменклатуры).* КАК ХарактеристикаНоменклатуры}) КАК ТаблицаРегистра | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаКон, ТипЦен = &БазовыйТипЦен {(Номенклатура).* КАК Номенклатура}) КАК ЦеныНоменклатуры | ПО ТаблицаРегистра.Номенклатура = ЦеныНоменклатуры.Номенклатура | И ТаблицаРегистра.ХарактеристикаНоменклатуры = ЦеныНоменклатуры.ХарактеристикаНоменклатуры | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаКон, ТипЦен = &БазовыйТипЦен {(Номенклатура).* КАК Номенклатура}) КАК ЦеныНоменклатуры2 | ПО ТаблицаРегистра.Номенклатура = ЦеныНоменклатуры.Номенклатура | И ТаблицаРегистра.ХарактеристикаНоменклатуры = ЦеныНоменклатуры.ХарактеристикаНоменклатуры | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних( | &ДатаКон, | ТипЦен = &БазовыйТипЦен | И ХарактеристикаНоменклатуры = &ПустаяХарактеристика {(Номенклатура).* КАК Номенклатура}) КАК ЦеныНоменклатурыБезХарактеристик | ПО ТаблицаРегистра.Номенклатура = ЦеныНоменклатурыБезХарактеристик.Номенклатура | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних( | &ДатаКон, | ТипЦен = &БазовыйТипЦен | И ХарактеристикаНоменклатуры = &ПустаяХарактеристика {(Номенклатура).* КАК Номенклатура}) КАК ЦеныНоменклатурыБезХарактеристик2 | ПО ТаблицаРегистра.Номенклатура = ЦеныНоменклатурыБезХарактеристик.Номенклатура | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&ДатаКон, ) КАК КурсыВалютСрезПоследних | ПО (ЦеныНоменклатуры.Валюта = КурсыВалютСрезПоследних.Валюта) | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&ДатаКон, ) КАК КурсыВалютСрезПоследнихБезХарактеристик | ПО (ЦеныНоменклатурыБезХарактеристик.Валюта = КурсыВалютСрезПоследнихБезХарактеристик.Валюта) |{ГДЕ | ТаблицаРегистра.Склад.* КАК Склад, | ТаблицаРегистра.Номенклатура.* КАК Номенклатура, | ТаблицаРегистра.ХарактеристикаНоменклатуры.* КАК ХарактеристикаНоменклатуры, | ТаблицаРегистра.КоличествоОстаток КАК КоличествоОстаток, | (ТаблицаРегистра.КоличествоОстаток * ТаблицаРегистра.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент) КАК КоличествоБазовыхЕдОстаток, | (ВЫБОР | КОГДА ЦеныНоменклатуры.Цена ЕСТЬ NULL | ТОГДА ЦеныНоменклатурыБезХарактеристик.Цена * ТаблицаРегистра.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ЦеныНоменклатурыБезХарактеристик.ЕдиницаИзмерения.Коэффициент * (КурсыВалютСрезПоследнихБезХарактеристик.Курс / КурсыВалютСрезПоследнихБезХарактеристик.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен | ИНАЧЕ ЦеныНоменклатуры.Цена * ТаблицаРегистра.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ЦеныНоменклатуры.ЕдиницаИзмерения.Коэффициент * (КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен | КОНЕЦ) КАК ТипЦенЦена, | (ВЫБОР | КОГДА ЦеныНоменклатуры.Цена ЕСТЬ NULL | ТОГДА ТаблицаРегистра.КоличествоОстаток * (ЦеныНоменклатурыБезХарактеристик.Цена / ЦеныНоменклатурыБезХарактеристик.ЕдиницаИзмерения.Коэффициент) * ТаблицаРегистра.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * (КурсыВалютСрезПоследнихБезХарактеристик.Курс / КурсыВалютСрезПоследнихБезХарактеристик.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен | ИНАЧЕ ТаблицаРегистра.КоличествоОстаток * (ЦеныНоменклатуры.Цена / ЦеныНоменклатуры.ЕдиницаИзмерения.Коэффициент) * ТаблицаРегистра.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * (КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен | КОНЕЦ) КАК ТипЦенСтоимость, | (ВЫБОР | КОГДА ЦеныНоменклатуры.Цена ЕСТЬ NULL | ТОГДА ЦеныНоменклатурыБезХарактеристик.Цена * ТаблицаРегистра.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ЦеныНоменклатурыБезХарактеристик.ЕдиницаИзмерения.Коэффициент * (КурсыВалютСрезПоследнихБезХарактеристик.Курс / КурсыВалютСрезПоследнихБезХарактеристик.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен | ИНАЧЕ ЦеныНоменклатуры.Цена * ТаблицаРегистра.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ЦеныНоменклатуры.ЕдиницаИзмерения.Коэффициент * (КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен | КОНЕЦ) КАК ТипЦенЦена2, | (ВЫБОР | КОГДА ЦеныНоменклатуры.Цена ЕСТЬ NULL | ТОГДА ТаблицаРегистра.КоличествоОстаток * (ЦеныНоменклатурыБезХарактеристик.Цена / ЦеныНоменклатурыБезХарактеристик.ЕдиницаИзмерения.Коэффициент) * ТаблицаРегистра.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * (КурсыВалютСрезПоследнихБезХарактеристик.Курс / КурсыВалютСрезПоследнихБезХарактеристик.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен | ИНАЧЕ ТаблицаРегистра.КоличествоОстаток * (ЦеныНоменклатуры.Цена / ЦеныНоменклатуры.ЕдиницаИзмерения.Коэффициент) * ТаблицаРегистра.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * (КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен | КОНЕЦ) КАК ТипЦенСтоимость2} |{УПОРЯДОЧИТЬ ПО | Склад.* КАК Склад, | ТаблицаРегистра.Номенклатура.* КАК Номенклатура, | ТаблицаРегистра.ХарактеристикаНоменклатуры.* КАК ХарактеристикаНоменклатуры, | КоличествоОстаток КАК КоличествоОстаток, | (ТаблицаРегистра.КоличествоОстаток * ТаблицаРегистра.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент) КАК КоличествоБазовыхЕдОстаток, | (ВЫБОР | КОГДА ЦеныНоменклатуры.Цена ЕСТЬ NULL | ТОГДА ЦеныНоменклатурыБезХарактеристик.Цена * ТаблицаРегистра.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ЦеныНоменклатурыБезХарактеристик.ЕдиницаИзмерения.Коэффициент * (КурсыВалютСрезПоследнихБезХарактеристик.Курс / КурсыВалютСрезПоследнихБезХарактеристик.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен | ИНАЧЕ ЦеныНоменклатуры.Цена * ТаблицаРегистра.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ЦеныНоменклатуры.ЕдиницаИзмерения.Коэффициент * (КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен | КОНЕЦ) КАК ТипЦенЦена, | (ВЫБОР | КОГДА ЦеныНоменклатуры.Цена ЕСТЬ NULL | ТОГДА ЦеныНоменклатурыБезХарактеристик.Цена * ТаблицаРегистра.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ЦеныНоменклатурыБезХарактеристик.ЕдиницаИзмерения.Коэффициент * (КурсыВалютСрезПоследнихБезХарактеристик.Курс / КурсыВалютСрезПоследнихБезХарактеристик.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен | ИНАЧЕ ЦеныНоменклатуры.Цена * ТаблицаРегистра.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ЦеныНоменклатуры.ЕдиницаИзмерения.Коэффициент * (КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен | КОНЕЦ) КАК ТипЦенЦена2, | (ВЫБОР | КОГДА ЦеныНоменклатуры.Цена ЕСТЬ NULL | ТОГДА ТаблицаРегистра.КоличествоОстаток * (ЦеныНоменклатурыБезХарактеристик.Цена / ЦеныНоменклатурыБезХарактеристик.ЕдиницаИзмерения.Коэффициент) * ТаблицаРегистра.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * (КурсыВалютСрезПоследнихБезХарактеристик.Курс / КурсыВалютСрезПоследнихБезХарактеристик.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен | ИНАЧЕ ТаблицаРегистра.КоличествоОстаток * (ЦеныНоменклатуры.Цена / ЦеныНоменклатуры.ЕдиницаИзмерения.Коэффициент) * ТаблицаРегистра.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * (КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен | КОНЕЦ) КАК ТипЦенСтоимость, | (ВЫБОР | КОГДА ЦеныНоменклатуры.Цена ЕСТЬ NULL | ТОГДА ТаблицаРегистра.КоличествоОстаток * (ЦеныНоменклатурыБезХарактеристик.Цена / ЦеныНоменклатурыБезХарактеристик.ЕдиницаИзмерения.Коэффициент) * ТаблицаРегистра.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * (КурсыВалютСрезПоследнихБезХарактеристик.Курс / КурсыВалютСрезПоследнихБезХарактеристик.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен | ИНАЧЕ ТаблицаРегистра.КоличествоОстаток * (ЦеныНоменклатуры.Цена / ЦеныНоменклатуры.ЕдиницаИзмерения.Коэффициент) * ТаблицаРегистра.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * (КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен | КОНЕЦ) КАК ТипЦенСтоимость2} |ИТОГИ | СУММА(КоличествоОстаток), | СУММА(КоличествоБазовыхЕдОстаток), | МАКСИМУМ(ТипЦенЦена), | СУММА(ТипЦенСтоимость), | МАКСИМУМ(ТипЦенЦена2), | СУММА(ТипЦенСтоимость2) |ПО | ОБЩИЕ |{ИТОГИ ПО | Склад.* КАК Склад, | ТаблицаРегистра.Номенклатура.* КАК Номенклатура, | ТаблицаРегистра.ХарактеристикаНоменклатуры.* КАК ХарактеристикаНоменклатуры}"; КонецЕсли; // В универсальном отчете включен флаг использования свойств и категорий. Если УниверсальныйОтчет.ИспользоватьСвойстваИКатегории Тогда // Добавление свойств и категорий поля запроса в таблицу полей. УниверсальныйОтчет.ДобавитьСвойстваИКатегорииДляПоля("ТаблицаРегистра.Номенклатура", "Номенклатура", "Номенклатура", ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Номенклатура); УниверсальныйОтчет.ДобавитьСвойстваИКатегорииДляПоля("ТаблицаРегистра.Склад", "Склад", "Склад", ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_Склады); // Добавление свойств и категорий в исходный текст запроса. УниверсальныйОтчет.ДобавитьВТекстЗапросаСвойстваИКатегории(ТекстЗапроса); КонецЕсли; // Инициализация текста запроса построителя отчета УниверсальныйОтчет.ПостроительОтчета.Текст = ТекстЗапроса; // Представления полей отчета. УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("Склад", "Склад"); УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("Номенклатура", "Номенклатура"); УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("ХарактеристикаНоменклатуры", "Характеристика номенклатуры"); УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("КоличествоОстаток", "Количество (в ед. хранения)"); УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("КоличествоБазовыхЕдОстаток", "Количество (в базовых ед.)"); УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("НеотфактурованныйОстаток", "Количество неотфактурованных (в ед. хранения)"); УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("НеотфактурованныйБазовыхЕдОстаток", "Количество неотфактурованных (в базовых ед.)"); УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("Себестоимость", "Себестоимость"); УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("ТипЦенЦена", "Цена в выбранном типе цен"); УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("ТипЦенСтоимость", "Стоимость в выбранном типе цен"); УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("ТипЦенНаценка", "Наценка в выбранном типе цен"); УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("ТипЦенРентабельность", "Рентабельность (%) в выбранном типе цен"); ////Добавляю новые структуры УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("ТипЦенЦена2", "Цена в выбранном типе цен2"); УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("ТипЦенСтоимость2", "Стоимость в выбранном типе цен2"); УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("ТипЦенНаценка2", "Наценка в выбранном типе цен2"); УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("ТипЦенРентабельность2", "Рентабельность (%) в выбранном типе цен2"); // Добавление показателей // Необходимо вызывать для каждого добавляемого показателя. // УниверсальныйОтчет.ДобавитьПоказатель(<ИмяПоказателя>, <ПредставлениеПоказателя>, <ВключенПоУмолчанию>, <Формат>, <ИмяГруппы>, <ПредставлениеГруппы>); // Добавление предопределенных группировок строк отчета. УниверсальныйОтчет.ПостроительОтчета.ИзмеренияСтроки.Очистить(); УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Склад"); УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Номенклатура"); // Добавление предопределенных группировок колонок отчета. // Необходимо вызывать для каждой добавляемой группировки колонки. // УниверсальныйОтчет.ДобавитьИзмерениеКолонки(<ПутьКДанным>); // Добавление предопределенных отборов отчета. УниверсальныйОтчет.ДобавитьОтбор("Склад"); УниверсальныйОтчет.ДобавитьОтбор("Номенклатура"); // Добавление предопределенных полей порядка отчета. // Необходимо вызывать для каждого добавляемого поля порядка. // УниверсальныйОтчет.ДобавитьПорядок(<ПутьКДанным>); // Установка связи подчиненных и родительских полей // УниверсальныйОтчет.УстановитьСвязьПолей(<ПутьКДанным>, <ПутьКДаннымРодитель>); // Установка связи полей и измерений // УниверсальныйОтчет.УстановитьСвязьПоляИИзмерения(<ИмяПоля>, <ИмяИзмерения>); // Установка представлений полей УниверсальныйОтчет.УстановитьПредставленияПолей(УниверсальныйОтчет.мСтруктураПредставлениеПолей, УниверсальныйОтчет.ПостроительОтчета); // Установка типов значений свойств в отборах отчета УниверсальныйОтчет.УстановитьТипыЗначенийСвойствДляОтбора(); // Заполнение начальных настроек универсального отчета УниверсальныйОтчет.УстановитьНачальныеНастройки(Ложь); // Добавление дополнительных полей // Необходимо вызывать для каждого добавляемого дополнительного поля. // УниверсальныйОтчет.ДобавитьДополнительноеПоле(<ПутьКДанным>, <Размещение>, <Положение>); КонецПроцедуры // УстановитьНачальныеНастройки() //////////////////////////////////////////////////////////////////////////////// // ПРОЦЕДУРЫ И ФУНКЦИИ ФОРМИРОВАНИЯ ОТЧЕТА // Процедура формирования отчета // Процедура СформироватьОтчет(ТабличныйДокумент) Экспорт УниверсальныйОтчет.ПостроительОтчета.Параметры.Вставить("ТипЦен", ТипЦен); УниверсальныйОтчет.ПостроительОтчета.Параметры.Вставить("ТипЦен2", ТипЦен2); Если ТипЦен.Рассчитывается Тогда УниверсальныйОтчет.ПостроительОтчета.Параметры.Вставить("БазовыйТипЦен" , ТипЦен.БазовыйТипЦен); УниверсальныйОтчет.ПостроительОтчета.Параметры.Вставить("КоэффициентБазовогоТипаЦен", 1+ТипЦен.ПроцентСкидкиНаценки/100); Иначе УниверсальныйОтчет.ПостроительОтчета.Параметры.Вставить("БазовыйТипЦен" , ТипЦен); УниверсальныйОтчет.ПостроительОтчета.Параметры.Вставить("КоэффициентБазовогоТипаЦен", 1); КонецЕсли; // Добавил и передал параметры для второго типа цен Если ТипЦен2.Рассчитывается Тогда УниверсальныйОтчет.ПостроительОтчета.Параметры.Вставить("БазовыйТипЦен2" , ТипЦен2.БазовыйТипЦен); УниверсальныйОтчет.ПостроительОтчета.Параметры.Вставить("КоэффициентБазовогоТипаЦен2", 1+ТипЦен2.ПроцентСкидкиНаценки/100); Иначе УниверсальныйОтчет.ПостроительОтчета.Параметры.Вставить("БазовыйТипЦен2" , ТипЦен2); УниверсальныйОтчет.ПостроительОтчета.Параметры.Вставить("КоэффициентБазовогоТипаЦен2", 1); КонецЕсли; УниверсальныйОтчет.ПостроительОтчета.Параметры.Вставить("Неотфактурованный" , Перечисления.СтатусыПартийТоваров.ПоОрдеру); УниверсальныйОтчет.ПостроительОтчета.Параметры.Вставить("ВалютаУпрУчета" , мВалютаУправленческогоУчета); УниверсальныйОтчет.ПостроительОтчета.Параметры.Вставить("ПустаяХарактеристика" , Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка()); СписокСтатусовПартии = Новый Массив; СписокСтатусовПартии.Добавить(Перечисления.СтатусыПартийТоваров.Купленный); СписокСтатусовПартии.Добавить(Перечисления.СтатусыПартийТоваров.НаКомиссию); СписокСтатусовПартии.Добавить(Перечисления.СтатусыПартийТоваров.ПоОрдеру); СписокСтатусовПартии.Добавить(Перечисления.СтатусыПартийТоваров.Продукция); СписокСтатусовПартии.Добавить(Перечисления.СтатусыПартийТоваров.Оборудование); УниверсальныйОтчет.ПостроительОтчета.Параметры.Вставить("СписокСтатусовПартии", СписокСтатусовПартии); УниверсальныйОтчет.СформироватьОтчет(ТабличныйДокумент,,, ЭтотОбъект); КонецПроцедуры // СформироватьОтчет() Функция ПолучитьТекстСправкиФормы() Экспорт ТекстСправкиФормы = ""; Если глЗначениеПеременной("ИспользоватьРасширеннуюАналитикуУчетаНоменклатурыИЗатрат") Тогда НачалоИспользования = Формат(глЗначениеПеременной("ДатаНачалаИспользованияРасширеннойАналитикиУчетаНоменклатурыИЗатрат"), "ДФ=dd.MM.yyyy"); ТекстСправкиФормы = "<P>С " + НачалоИспользования + " установлено использование расширенной аналитики учета затрат." + "<BR><b>Рекомендуется использовать режим - Оперативный (остатки)</b>."; КонецЕсли; Возврат ТекстСправкиФормы; КонецФункции //////////////////////////////////////////////////////////////////////////////// // ПРОЦЕДУРЫ И ФУНКЦИИ ОБЩЕГО НАЗНАЧЕНИЯ // Процедура обработки расшифровки // Процедура ОбработкаРасшифровки(Расшифровка, Объект) Экспорт // Дополнительные параметры в расшифровывающий отчет можно передать // посредством инициализации переменной "ДополнительныеПараметры". ДополнительныеПараметры = УправлениеОтчетами.СохранитьРеквизитыОтчета(ЭтотОбъект); УниверсальныйОтчет.ОбработкаРасшифровкиУниверсальногоОтчета(Расшифровка, Объект, ДополнительныеПараметры); КонецПроцедуры // ОбработкаРасшифровки() // Формирует структуру для сохранения настроек отчета // Процедура СформироватьСтруктуруДляСохраненияНастроек(СтруктураСНастройками) Экспорт УниверсальныйОтчет.СформироватьСтруктуруДляСохраненияНастроек(СтруктураСНастройками); УправлениеОтчетами.СохранитьРеквизитыОтчета(ЭтотОбъект, СтруктураСНастройками); КонецПроцедуры // СформироватьСтруктуруДляСохраненияНастроек() // Заполняет настройки отчета из структуры сохраненных настроек // Функция ВосстановитьНастройкиИзСтруктуры(СтруктураСНастройками) Экспорт УправлениеОтчетами.ВосстановитьРеквизитыОтчета(ЭтотОбъект, СтруктураСНастройками); Возврат УниверсальныйОтчет.ВосстановитьНастройкиИзСтруктуры(СтруктураСНастройками, ЭтотОбъект); КонецФункции // ВосстановитьНастройкиИзСтруктуры() УниверсальныйОтчет.мРежимВводаПериода = 1; мВалютаУправленческогоУчета = глЗначениеПеременной("ВалютаУправленческогоУчета"); #КонецЕсли |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |