Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
07 апр 2025, 06:47

Отбор по статусу документа УниверсальномОтчёте

Автор keramik, 19 авг 2015, 22:55

0 Пользователей и 1 гость просматривают эту тему.

keramik

Добрый вечер, 1С 8.2, "Управление торговлей", редакция 10.3 (10.3.7.9).

Как ограничить отбираемые данные по статусу документа в отчёте, который создан при помощи УниверсальногоОтчёта?

У документов, которые пойдут в отчёт могут быть статусы "В работе" и "Выполнен", нас интересует только "Выполнен". В обычном отчёте получилось это сделать, добавив в запрос условие:
|АС_ПродажиОбороты.Регистратор.Состояние = ЗНАЧЕНИЕ(Перечисление.СостояниеЗаказНаряда.Выполнен)
но в отчёте, который был создан используя УниверсальныйОтчёт у меня пока не получилось сделать ограничение по статусу.
Вот процедура, которая отчёт создаёт:
Процедура УстановитьНачальныеНастройки(ДополнительныеПараметры = Неопределено) Экспорт // Настройка общих параметров универсального отчета // Содержит название отчета, которое будет выводиться в шапке. // Тип: Строка. // Пример: // УниверсальныйОтчет.мНазваниеОтчета = "Название отчета"; УниверсальныйОтчет.мНазваниеОтчета = СокрЛП(ЭтотОбъект.Метаданные().Синоним); // Содержит признак необходимости отображения надписи и поля выбора раздела учета в форме настройки. // Тип: Булево. // Значение по умолчанию: Истина. // Пример: // УниверсальныйОтчет.мВыбиратьИмяРегистра = Ложь; УниверсальныйОтчет.мВыбиратьИмяРегистра = Ложь; // Содержит имя регистра, по метаданным которого будет выполняться заполнение настроек отчета. // Тип: Строка. // Пример: // УниверсальныйОтчет.ИмяРегистра = "ТоварыНаСкладах"; УниверсальныйОтчет.ИмяРегистра = "АС_Продажи"; УниверсальныйОтчет.ДобавитьПолеРесурс("ЦенаБезНДС", "СтоимостьБезНДСОборот / ВЫБОР КОГДА КоличествоОборот = 0 ТОГДА 1 ИНАЧЕ КоличествоОборот КОНЕЦ", Нстр("ru='Цена без НДС';lv='Cena bez PVN'")); УниверсальныйОтчет.ДобавитьПолеРесурс("Цена", "СтоимостьОборот / ВЫБОР КОГДА КоличествоОборот = 0 ТОГДА 1 ИНАЧЕ КоличествоОборот КОНЕЦ", Нстр("ru='Цена';lv='Cena'")); // Заполнение начальных настроек универсального отчета УниверсальныйОтчет.УстановитьНачальныеНастройки(Истина); УниверсальныйОтчет.ДобавитьПоказатель("СтоимостьБезНДСОборот",          "Pārdošanas summa bez PVN", Истина); УниверсальныйОтчет.ДобавитьПоказатель("СтоимостьОборот",          "Pārdošanas summa ar PVN", Истина); УниверсальныйОтчет.ДобавитьПоказатель("КоличествоОборот", "Daudzums", Ложь); УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("Контрагент", "Контрагент"); УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("СтоимостьБезНДС", "Summa bez PVN"); УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("Стоимость", "Summa ar PVN"); // Добавление предопределенных группировок строк отчета. // Необходимо вызывать для каждой добавляемой группировки строки. УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Контрагент"); // Добавление предопределенных отборов отчета. // Необходимо вызывать для каждого добавляемого отбора. УниверсальныйОтчет.ДобавитьОтбор("Контрагент"); КонецПроцедуры // УстановитьНачальныеНастройки()
Пробовал вставить в неё запрос свой, но он игнорируется программой :(
Запрос был такого типа:
ТекстЗапроса = "ВЫБРАТЬ    | АС_ПродажиОбороты.Контрагент КАК Контрагент,    | АС_ПродажиОбороты.СтоимостьБезНДСОборот КАК СтоимостьБезНДС,    | АС_ПродажиОбороты.СтоимостьОборот КАК Стоимость    |{ВЫБРАТЬ    | Контрагент.*}    |ИЗ    | РегистрНакопления.АС_Продажи.Обороты(&НачалоПериода, &КонецПериода, Регистратор, ) КАК АС_ПродажиОбороты    |{ГДЕ    | (АС_ПродажиОбороты.Регистратор.Состояние = ЗНАЧЕНИЕ(Перечисление.СостояниеЗаказНаряда.Выполнен))}    |{УПОРЯДОЧИТЬ ПО    | Контрагент.*}    |ИТОГИ    | СУММА(СтоимостьБезНДС),    | СУММА(Стоимость)    |ПО    | ОБЩИЕ    |{ИТОГИ ПО    | Контрагент.*}";

keramik

Вышеупомянутая процедура находится в модуле отчёта АС_Продажи.

vitasw

Должен быть или свой текст запроса или "УниверсальныйОтчет.ИмяРегистра = "АС_Продажи";" Если есть оба, то ваш текст запроса херится. Откройте любой типовой отчет с произвольным текстом запроса и посмотрите как он работает. Где у вас косяк по приведенному коду определить невозможно.

keramik

Значит, где-то есть ещё запрос, который я пока не нашёл.
Походу, именно в "УниверсальныйОтчёт" и есть этот запрос, который выводит данные в таблицу.
Нашёл процедуру в модуле АС_УниверсальныйОтчет:
Процедура УстановитьНачальныеНастройкиПоМетаданнымРегистра(ИмяРегистра) МетаданныеРегистра = Метаданные.РегистрыНакопления.Найти(ИмяРегистра); Если МетаданныеРегистра = Неопределено Тогда Возврат; КонецЕсли; Обороты = МетаданныеРегистра.ВидРегистра = Метаданные.СвойстваОбъектов.ВидРегистраНакопления.Обороты; ОписаниеПолейВыборки = ""; ОписаниеПолейВыборкиПостроитель = ""; ОписаниеИсточниковЗапроса = ""; ОписаниеОтборовРезультатаЗапроса = ""; ОписаниеУпорядочиванияРезультатаЗапроса = ""; ОписаниеИтогиЗапроса = ""; ОписаниеИтогиЗапросаПостроитель = ""; Если ИспользоватьСвойстваИКатегории Тогда Запрос = Новый Запрос( "ВЫБРАТЬ | НазначенияСвойствКатегорийОбъектов.Ссылка, | НазначенияСвойствКатегорийОбъектов.Предопределенный, | НазначенияСвойствКатегорийОбъектов.ТипЗначения |ИЗ | ПланВидовХарактеристик.НазначенияСвойствКатегорийОбъектов КАК НазначенияСвойствКатегорийОбъектов |ГДЕ | НазначенияСвойствКатегорийОбъектов.ПометкаУдаления = ЛОЖЬ | И НазначенияСвойствКатегорийОбъектов.ЭтоГруппа = ЛОЖЬ"); РезультатЗапросаНазначенияСвойствКатегорийОбъектов = Запрос.Выполнить(); ВыборкаНазначенияСвойствКатегорийОбъектов = РезультатЗапросаНазначенияСвойствКатегорийОбъектов.Выбрать(); КонецЕсли; Для каждого Измерение из МетаданныеРегистра.Измерения Цикл ОписаниеПолейВыборки = ОписаниеПолейВыборки + ?(ОписаниеПолейВыборки = "", "", ",") + " | ИсточникДанных." + Измерение.Имя + " КАК " + Измерение.Имя + ", | ПРЕДСТАВЛЕНИЕ(ИсточникДанных." + Измерение.Имя + ") КАК " + Измерение.Имя + "Представление"; ОписаниеПолейВыборкиПостроитель = ОписаниеПолейВыборкиПостроитель + ?(ОписаниеПолейВыборкиПостроитель = "", "", ",") + " | " + Измерение.Имя + ".*"; ОписаниеИсточниковЗапроса = ОписаниеИсточниковЗапроса + ?(ОписаниеИсточниковЗапроса = "", "", ",") + " | " + Измерение.Имя + ".* КАК " + Измерение.Имя; ОписаниеУпорядочиванияРезультатаЗапроса = ОписаниеУпорядочиванияРезультатаЗапроса + ?(ОписаниеУпорядочиванияРезультатаЗапроса = "", "", ",") + " | " + Измерение.Имя + ".*"; ОписаниеИтогиЗапросаПостроитель = ОписаниеИтогиЗапросаПостроитель + ?(ОписаниеИтогиЗапросаПостроитель = "", "", ",") + " | " + Измерение.Имя + ".*"; мСтруктураПредставлениеПолей.Вставить(Измерение.Имя, Измерение.Представление()); Если ИспользоватьСвойстваИКатегории Тогда МассивНазначений = Новый Массив; Для каждого ТипИзмерения из Измерение.Тип.Типы() Цикл ВыборкаНазначенияСвойствКатегорийОбъектов.Сбросить(); Пока ВыборкаНазначенияСвойствКатегорийОбъектов.Следующий() Цикл Если ВыборкаНазначенияСвойствКатегорийОбъектов.Ссылка = ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_ХарактеристикиНоменклатуры И ТипИзмерения = Тип("СправочникСсылка.ХарактеристикиНоменклатуры") ИЛИ ВыборкаНазначенияСвойствКатегорийОбъектов.Ссылка <> ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_ХарактеристикиНоменклатуры И ВыборкаНазначенияСвойствКатегорийОбъектов.ТипЗначения.СодержитТип(ТипИзмерения) И МассивНазначений.Найти(ВыборкаНазначенияСвойствКатегорийОбъектов.Ссылка) = Неопределено Тогда МассивНазначений.Добавить(ВыборкаНазначенияСвойствКатегорийОбъектов.Ссылка); КонецЕсли; КонецЦикла; КонецЦикла; Для каждого Назначение из МассивНазначений Цикл ДобавитьСвойстваИКатегорииДляПоля("ИсточникДанных." + Измерение.Имя, Измерение.Имя, Измерение.Представление(), Назначение); КонецЦикла; КонецЕсли; Если мИспользоватьПараметрыАвтомобиля Тогда ДобавитьПараметрыАвтомобиляДляПоля("ИсточникДанных." + Измерение.Имя, Измерение.Имя, Измерение.Представление()); КонецЕсли; КонецЦикла; // Свойства и категории поля "Регистратор" Если ИспользоватьСвойстваИКатегории Тогда МассивНазначений = Новый Массив; Запрос = Новый Запрос( "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 0 | ИсточникДанных.Регистратор КАК Регистратор |ИЗ | РегистрНакопления." + ИмяРегистра + " КАК ИсточникДанных"); РезультатЗапроса = Запрос.Выполнить(); Для каждого ТипРегистратора из РезультатЗапроса.Колонки.Регистратор.ТипЗначения.Типы() Цикл ВыборкаНазначенияСвойствКатегорийОбъектов.Сбросить(); Пока ВыборкаНазначенияСвойствКатегорийОбъектов.Следующий() Цикл Если ВыборкаНазначенияСвойствКатегорийОбъектов.ТипЗначения.СодержитТип(ТипРегистратора) И МассивНазначений.Найти(ВыборкаНазначенияСвойствКатегорийОбъектов.Ссылка) = Неопределено Тогда МассивНазначений.Добавить(ВыборкаНазначенияСвойствКатегорийОбъектов.Ссылка); КонецЕсли; КонецЦикла; КонецЦикла; Для каждого Назначение из МассивНазначений Цикл //мВсеПоЛатышски - выводить все тексты на латышском не зависимо от интерфейса пользователя Если мВсеПоЛатышски Тогда ДобавитьСвойстваИКатегорииДляПоля("ИсточникДанных.Регистратор", "Регистратор", "Kustības dokuments (reģistrators)", Назначение); Иначе ДобавитьСвойстваИКатегорииДляПоля("ИсточникДанных.Регистратор", "Регистратор", Нстр("lv='Kustības dokuments (reģistrators)';ru='Документ движения (регистратор)';en='Документ движения (регистратор)'"), Назначение); КонецЕСли; КонецЦикла; КонецЕсли; Если мМассивПоляГруппировка <> Неопределено Тогда Для каждого ПолеГруппировка из мМассивПоляГруппировка Цикл ПолеВыборки = СтрЗаменить(?(ПолеГруппировка.Выражение = Неопределено, "%ПолеВыборки%", ПолеГруппировка.Выражение), "%ПолеВыборки%", "ИсточникДанных." + ПолеГруппировка.Родитель + "." + ПолеГруппировка.ПутьКДанным); ИсточникЗапроса = СтрЗаменить(?(ПолеГруппировка.Выражение = Неопределено, "%ПолеВыборки%", ПолеГруппировка.Выражение), "%ПолеВыборки%", ПолеГруппировка.Родитель + "." + ПолеГруппировка.ПутьКДанным); ОписаниеПолейВыборки = ОписаниеПолейВыборки + ?(ОписаниеПолейВыборки = "", "", ",") + " | " + ПолеВыборки + " КАК " + ПолеГруппировка.Имя + ", | ПРЕДСТАВЛЕНИЕ(" + ПолеВыборки + ") КАК " + ПолеГруппировка.Имя + "Представление"; ОписаниеПолейВыборкиПостроитель = ОписаниеПолейВыборкиПостроитель + ?(ОписаниеПолейВыборкиПостроитель = "", "", ",") + " | " + ПолеГруппировка.Имя + ".*"; ОписаниеИсточниковЗапроса = ОписаниеИсточниковЗапроса + ?(ОписаниеИсточниковЗапроса = "", "", ",") + " | (" + ИсточникЗапроса + ").* КАК " + ПолеГруппировка.Имя; ОписаниеУпорядочиванияРезультатаЗапроса = ОписаниеУпорядочиванияРезультатаЗапроса + ?(ОписаниеУпорядочиванияРезультатаЗапроса = "", "", ",") + " | " + ПолеГруппировка.Имя + ".*"; ОписаниеИтогиЗапросаПостроитель = ОписаниеИтогиЗапросаПостроитель + ?(ОписаниеИтогиЗапросаПостроитель = "", "", ",") + " | " + ПолеГруппировка.Имя + ".*"; мСтруктураПредставлениеПолей.Вставить(ПолеГруппировка.Имя, ПолеГруппировка.Представление); ДокументыДобавлен = Ложь; Если ИспользоватьСвойстваИКатегории И ПолеГруппировка.Тип <> Неопределено И ТипЗнч(ПолеГруппировка.Тип) = Тип("ОписаниеТипов") Тогда МассивНазначений = Новый Массив; Для каждого ТипГруппировки из ПолеГруппировка.Тип.Типы() Цикл ВыборкаНазначенияСвойствКатегорийОбъектов.Сбросить(); Пока ВыборкаНазначенияСвойствКатегорийОбъектов.Следующий() Цикл Если ВыборкаНазначенияСвойствКатегорийОбъектов.Ссылка = ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_ХарактеристикиНоменклатуры И ТипГруппировки = Тип("СправочникСсылка.ХарактеристикиНоменклатуры") ИЛИ ВыборкаНазначенияСвойствКатегорийОбъектов.Ссылка <> ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_ХарактеристикиНоменклатуры И ВыборкаНазначенияСвойствКатегорийОбъектов.ТипЗначения.СодержитТип(ТипГруппировки) И МассивНазначений.Найти(ВыборкаНазначенияСвойствКатегорийОбъектов.Ссылка) = Неопределено Тогда МассивНазначений.Добавить(ВыборкаНазначенияСвойствКатегорийОбъектов.Ссылка); КонецЕсли; КонецЦикла; КонецЦикла; Для каждого Назначение из МассивНазначений Цикл ДобавитьСвойстваИКатегорииДляПоля("ИсточникДанных." + ПолеГруппировка.Родитель + "." + ПолеГруппировка.ПутьКДанным, ПолеГруппировка.Имя, ПолеГруппировка.Представление, Назначение); КонецЦикла; КонецЕсли; Если мИспользоватьПараметрыАвтомобиля Тогда ДобавитьПараметрыАвтомобиляДляПоля("ИсточникДанных." + ПолеГруппировка.Родитель + "." + ПолеГруппировка.ПутьКДанным, ПолеГруппировка.Имя, ПолеГруппировка.Представление); КонецЕсли; УстановитьСвязьПолей(ПолеГруппировка.Имя, ПолеГруппировка.Родитель); КонецЦикла; мМассивПоляГруппировка = Неопределено; КонецЕсли; Для каждого Ресурс Из МетаданныеРегистра.Ресурсы Цикл Если Обороты Тогда ОписаниеПолейВыборки = ОписаниеПолейВыборки + ?(ОписаниеПолейВыборки = "", "", ",") + " | ИсточникДанных." + Ресурс.Имя + "Оборот КАК " + Ресурс.Имя + "Оборот"; ОписаниеПолейВыборкиПостроитель = ОписаниеПолейВыборкиПостроитель + ?(ОписаниеПолейВыборкиПостроитель = "", "", ",") + " | " + Ресурс.Имя + "Оборот"; ОписаниеОтборовРезультатаЗапроса = ОписаниеОтборовРезультатаЗапроса + ?(ОписаниеОтборовРезультатаЗапроса = "", "", ",") + " | ИсточникДанных." + Ресурс.Имя + "Оборот КАК " + Ресурс.Имя + "Оборот"; ОписаниеИтогиЗапроса = ОписаниеИтогиЗапроса + ?(ОписаниеИтогиЗапроса = "", "", ",") + " | СУММА(" + Ресурс.Имя + "Оборот)"; ОписаниеУпорядочиванияРезультатаЗапроса = ОписаниеУпорядочиванияРезультатаЗапроса + ?(ОписаниеУпорядочиванияРезультатаЗапроса = "", "", ",") + " | " + Ресурс.Имя + "Оборот"; ДобавитьПоказатель(Ресурс.Имя + "Оборот", Ресурс.Представление(), Истина, "ЧЦ = " + Формат(Ресурс.Тип.КвалификаторыЧисла.Разрядность, "ЧГ=0") + " ; ЧДЦ = " + Формат(Ресурс.Тип.КвалификаторыЧисла.РазрядностьДробнойЧасти, "ЧГ=0")); //мВсеПоЛатышски - выводить все тексты на латышском не зависимо от интерфейса пользователя Если мВсеПоЛатышски Тогда мСтруктураПредставлениеПолей.Вставить(Ресурс.Имя + "Оборот", Ресурс.Представление() + " (apgrozījums)"); Иначе мСтруктураПредставлениеПолей.Вставить(Ресурс.Имя + "Оборот", Ресурс.Представление() + НСтр("lv=' (apgrozījums)';ru=' (оборот)';en=' (оборот)'")); КонецЕСли; Иначе ОписаниеПолейВыборки = ОписаниеПолейВыборки + ?(ОписаниеПолейВыборки = "", "", ",") + " | ИсточникДанных." + Ресурс.Имя + "НачальныйОстаток КАК " + Ресурс.Имя + "НачальныйОстаток, | ИсточникДанных." + Ресурс.Имя + "Приход КАК " + Ресурс.Имя + "Приход, | ИсточникДанных." + Ресурс.Имя + "Расход КАК " + Ресурс.Имя + "Расход, | ИсточникДанных." + Ресурс.Имя + "КонечныйОстаток КАК " + Ресурс.Имя + "КонечныйОстаток, | ИсточникДанных." + Ресурс.Имя + "Оборот КАК " + Ресурс.Имя + "Оборот"; ОписаниеПолейВыборкиПостроитель = ОписаниеПолейВыборкиПостроитель + ?(ОписаниеПолейВыборкиПостроитель = "", "", ",") + " | " + Ресурс.Имя + "НачальныйОстаток, | " + Ресурс.Имя + "Приход, | " + Ресурс.Имя + "Расход, | " + Ресурс.Имя + "КонечныйОстаток, | " + Ресурс.Имя + "Оборот"; ОписаниеОтборовРезультатаЗапроса = ОписаниеОтборовРезультатаЗапроса + ?(ОписаниеОтборовРезультатаЗапроса = "", "", ",") + " | ИсточникДанных." + Ресурс.Имя + "НачальныйОстаток КАК " + Ресурс.Имя + "НачальныйОстаток, | ИсточникДанных." + Ресурс.Имя + "Приход КАК " + Ресурс.Имя + "Приход, | ИсточникДанных." + Ресурс.Имя + "Расход КАК " + Ресурс.Имя + "Расход, | ИсточникДанных." + Ресурс.Имя + "КонечныйОстаток КАК " + Ресурс.Имя + "КонечныйОстаток, | ИсточникДанных." + Ресурс.Имя + "Оборот КАК " + Ресурс.Имя + "Оборот"; ОписаниеИтогиЗапроса = ОписаниеИтогиЗапроса + ?(ОписаниеИтогиЗапроса = "", "", ",") + " | СУММА(" + Ресурс.Имя + "НачальныйОстаток), | СУММА(" + Ресурс.Имя + "Приход), | СУММА(" + Ресурс.Имя + "Расход), | СУММА(" + Ресурс.Имя + "КонечныйОстаток), | СУММА(" + Ресурс.Имя + "Оборот)"; ОписаниеУпорядочиванияРезультатаЗапроса = ОписаниеУпорядочиванияРезультатаЗапроса + ?(ОписаниеУпорядочиванияРезультатаЗапроса = "", "", ",") + " | " + Ресурс.Имя + "НачальныйОстаток, | " + Ресурс.Имя + "Приход, | " + Ресурс.Имя + "Расход, | " + Ресурс.Имя + "КонечныйОстаток, | " + Ресурс.Имя + "Оборот"; //мВсеПоЛатышски - выводить все тексты на латышском не зависимо от интерфейса пользователя Если мВсеПоЛатышски Тогда ДобавитьПоказатель(Ресурс.Имя + "НачальныйОстаток", "Sāk. atlikums", Истина, "ЧЦ = " + Формат(Ресурс.Тип.КвалификаторыЧисла.Разрядность, "ЧГ=0") + " ; ЧДЦ = " + Формат(Ресурс.Тип.КвалификаторыЧисла.РазрядностьДробнойЧасти, "ЧГ=0"), Ресурс.Имя, Ресурс.Представление()); ДобавитьПоказатель(Ресурс.Имя + "Приход", "Saņemšana", Истина, "ЧЦ = " + Формат(Ресурс.Тип.КвалификаторыЧисла.Разрядность, "ЧГ=0") + " ; ЧДЦ = " + Формат(Ресурс.Тип.КвалификаторыЧисла.РазрядностьДробнойЧасти, "ЧГ=0"), Ресурс.Имя, Ресурс.Представление()); ДобавитьПоказатель(Ресурс.Имя + "Расход", "Izdevumi", Истина, "ЧЦ = " + Формат(Ресурс.Тип.КвалификаторыЧисла.Разрядность, "ЧГ=0") + " ; ЧДЦ = " + Формат(Ресурс.Тип.КвалификаторыЧисла.РазрядностьДробнойЧасти, "ЧГ=0"), Ресурс.Имя, Ресурс.Представление()); ДобавитьПоказатель(Ресурс.Имя + "КонечныйОстаток", "Beig. atlikums", Истина, "ЧЦ = " + Формат(Ресурс.Тип.КвалификаторыЧисла.Разрядность, "ЧГ=0") + " ; ЧДЦ = " + Формат(Ресурс.Тип.КвалификаторыЧисла.РазрядностьДробнойЧасти, "ЧГ=0"), Ресурс.Имя, Ресурс.Представление()); ДобавитьПоказатель(Ресурс.Имя + "Оборот", "Apgrozījums", Истина, "ЧЦ = " + Формат(Ресурс.Тип.КвалификаторыЧисла.Разрядность, "ЧГ=0") + " ; ЧДЦ = " + Формат(Ресурс.Тип.КвалификаторыЧисла.РазрядностьДробнойЧасти, "ЧГ=0"), Ресурс.Имя, Ресурс.Представление()); мСтруктураПредставлениеПолей.Вставить(Ресурс.Имя + "НачальныйОстаток", Ресурс.Представление() + " (sāk. atl.)"); мСтруктураПредставлениеПолей.Вставить(Ресурс.Имя + "Приход", Ресурс.Представление() + " (ieņēmumi)"); мСтруктураПредставлениеПолей.Вставить(Ресурс.Имя + "Расход", Ресурс.Представление() + " (izdevumi)"); мСтруктураПредставлениеПолей.Вставить(Ресурс.Имя + "КонечныйОстаток", Ресурс.Представление() + " (beig. atl.)"); мСтруктураПредставлениеПолей.Вставить(Ресурс.Имя + "Оборот", Ресурс.Представление() + " (apgrozījums)"); Иначе ДобавитьПоказатель(Ресурс.Имя + "НачальныйОстаток", Нстр("lv='Sāk. atlikums';ru='Нач. остаток';en='Нач. остаток'"), Истина, "ЧЦ = " + Формат(Ресурс.Тип.КвалификаторыЧисла.Разрядность, "ЧГ=0") + " ; ЧДЦ = " + Формат(Ресурс.Тип.КвалификаторыЧисла.РазрядностьДробнойЧасти, "ЧГ=0"), Ресурс.Имя, Ресурс.Представление()); ДобавитьПоказатель(Ресурс.Имя + "Приход", НСтр("lv='Saņemšana';ru='Приход';en='Приход'"), Истина, "ЧЦ = " + Формат(Ресурс.Тип.КвалификаторыЧисла.Разрядность, "ЧГ=0") + " ; ЧДЦ = " + Формат(Ресурс.Тип.КвалификаторыЧисла.РазрядностьДробнойЧасти, "ЧГ=0"), Ресурс.Имя, Ресурс.Представление()); ДобавитьПоказатель(Ресурс.Имя + "Расход", НСтр("lv='Izdevumi';ru='Расход';en='Расход'"), Истина, "ЧЦ = " + Формат(Ресурс.Тип.КвалификаторыЧисла.Разрядность, "ЧГ=0") + " ; ЧДЦ = " + Формат(Ресурс.Тип.КвалификаторыЧисла.РазрядностьДробнойЧасти, "ЧГ=0"), Ресурс.Имя, Ресурс.Представление()); ДобавитьПоказатель(Ресурс.Имя + "КонечныйОстаток", НСтр("lv='Beig. atlikums';ru='Кон. остаток';en='Кон. остаток'"), Истина, "ЧЦ = " + Формат(Ресурс.Тип.КвалификаторыЧисла.Разрядность, "ЧГ=0") + " ; ЧДЦ = " + Формат(Ресурс.Тип.КвалификаторыЧисла.РазрядностьДробнойЧасти, "ЧГ=0"), Ресурс.Имя, Ресурс.Представление()); ДобавитьПоказатель(Ресурс.Имя + "Оборот", НСтр("lv='Apgrozījums';ru='Оборот';en='Оборот'"), Истина, "ЧЦ = " + Формат(Ресурс.Тип.КвалификаторыЧисла.Разрядность, "ЧГ=0") + " ; ЧДЦ = " + Формат(Ресурс.Тип.КвалификаторыЧисла.РазрядностьДробнойЧасти, "ЧГ=0"), Ресурс.Имя, Ресурс.Представление()); мСтруктураПредставлениеПолей.Вставить(Ресурс.Имя + "НачальныйОстаток", Ресурс.Представление() + НСтр("lv=' (sāk. atl.)';ru=' (нач. ост.)';en=' (нач. ост.)'")); мСтруктураПредставлениеПолей.Вставить(Ресурс.Имя + "Приход", Ресурс.Представление() + НСтр("lv=' (ieņēmumi)';ru=' (приход)';en=' (приход)'")); мСтруктураПредставлениеПолей.Вставить(Ресурс.Имя + "Расход", Ресурс.Представление() + НСтр("lv=' (izdevumi)';ru=' (расход)';en=' (расход)'")); мСтруктураПредставлениеПолей.Вставить(Ресурс.Имя + "КонечныйОстаток", Ресурс.Представление() + НСтр("lv=' (beig. atl.)';ru=' (кон. ост.)';en=' (кон. ост.)'")); мСтруктураПредставлениеПолей.Вставить(Ресурс.Имя + "Оборот", Ресурс.Представление() + НСтр("lv=' (apgrozījums)';ru=' (оборот)';en=' (оборот)'")); КонецЕСли; КонецЕсли; КонецЦикла; Если мМассивПоляРесурс <> Неопределено Тогда Для каждого ПолеРесурс из мМассивПоляРесурс Цикл ОписаниеПолейВыборки = ОписаниеПолейВыборки + ?(ОписаниеПолейВыборки = "", "", ",") + " | " + ПолеРесурс.ПутьКДанным + " КАК " + ПолеРесурс.Имя; ОписаниеПолейВыборкиПостроитель = ОписаниеПолейВыборкиПостроитель + ?(ОписаниеПолейВыборкиПостроитель = "", "", ",") + " | " + ПолеРесурс.Имя; ОписаниеОтборовРезультатаЗапроса = ОписаниеОтборовРезультатаЗапроса + ?(ОписаниеОтборовРезультатаЗапроса = "", "", ",") + " | " + ПолеРесурс.ПутьКДанным + " КАК " + ПолеРесурс.Имя; ОписаниеУпорядочиванияРезультатаЗапроса = ОписаниеУпорядочиванияРезультатаЗапроса + ?(ОписаниеУпорядочиванияРезультатаЗапроса = "", "", ",") + " | " + ПолеРесурс.Имя; Если ПолеРесурс.Итог = Неопределено Тогда ОписаниеИтогиЗапроса = ОписаниеИтогиЗапроса + ?(ОписаниеИтогиЗапроса = "", "", ",") + " | СУММА(" + ПолеРесурс.Имя + ")"; Иначе ОписаниеИтогиЗапроса = ОписаниеИтогиЗапроса + ?(ОписаниеИтогиЗапроса = "", "", ",") + " | " + ПолеРесурс.Итог + " КАК " + ПолеРесурс.Имя; КонецЕсли; мСтруктураПредставлениеПолей.Вставить(ПолеРесурс.Имя, ПолеРесурс.Представление); КонецЦикла; мМассивПоляРесурс = Неопределено; КонецЕсли; ОписаниеПолейВыборки = "ВЫБРАТЬ РАЗРЕШЕННЫЕ" + ОписаниеПолейВыборки + ?(ОписаниеПолейВыборки = "", "", ",") + " | ИсточникДанных.Регистратор КАК Регистратор, | ПРЕДСТАВЛЕНИЕ(ИсточникДанных.Регистратор) КАК РегистраторПредставление, | ИсточникДанных.Период КАК Период, | НачалоПериода(ИсточникДанных.Период, День) КАК ПериодДень, | НачалоПериода(ИсточникДанных.Период, Неделя) КАК ПериодНеделя, | НачалоПериода(ИсточникДанных.Период, Декада) КАК ПериодДекада, | НачалоПериода(ИсточникДанных.Период, Месяц) КАК ПериодМесяц, | НачалоПериода(ИсточникДанных.Период, Квартал) КАК ПериодКвартал, | НачалоПериода(ИсточникДанных.Период, Полугодие) КАК ПериодПолугодие, | НачалоПериода(ИсточникДанных.Период, Год) КАК ПериодГод | //ПОЛЯ_СВОЙСТВА | //ПОЛЯ_КАТЕГОРИИ | //ПОЛЯ_АВТОСЕРВИС"; ОписаниеПолейВыборкиПостроитель = " |{ВЫБРАТЬ" + ОписаниеПолейВыборкиПостроитель + ?(ОписаниеПолейВыборкиПостроитель = "", "", ",") + " | Регистратор.* КАК Регистратор, | Период КАК Период, | ПериодДень, | ПериодНеделя, | ПериодДекада, | ПериодМесяц, | ПериодКвартал, | ПериодПолугодие, | ПериодГод | //ПСЕВДОНИМЫ_СВОЙСТВА | //ПСЕВДОНИМЫ_КАТЕГОРИИ | //ПСЕВДОНИМЫ_АВТОСЕРВИС |}"; Если Обороты Тогда ОписаниеИсточниковЗапроса = " |ИЗ РегистрНакопления." + ИмяРегистра + ".Обороты(&ДатаНач, &ДатаКон, Регистратор {&Периодичность}, {" + ОписаниеИсточниковЗапроса + "}) КАК ИсточникДанных |//СОЕДИНЕНИЯ |//СОЕД_АВТОСЕРВИС"; Иначе ОписаниеИсточниковЗапроса = " |ИЗ РегистрНакопления." + ИмяРегистра + ".ОстаткиИОбороты(&ДатаНач, &ДатаКон, Регистратор {&Периодичность},, {" + ОписаниеИсточниковЗапроса + "}) КАК ИсточникДанных |//СОЕДИНЕНИЯ |//СОЕД_АВТОСЕРВИС"; КонецЕсли; ОписаниеОтборовРезультатаЗапроса = " |{ГДЕ" + ОписаниеОтборовРезультатаЗапроса + ?(ОписаниеОтборовРезультатаЗапроса = "", "", ",") + " | ИсточникДанных.Регистратор.* КАК Регистратор, | ИсточникДанных.Период КАК Период, | НачалоПериода(ИсточникДанных.Период, День) КАК ПериодДень, | НачалоПериода(ИсточникДанных.Период, Неделя) КАК ПериодНеделя, | НачалоПериода(ИсточникДанных.Период, Декада) КАК ПериодДекада, | НачалоПериода(ИсточникДанных.Период, Месяц) КАК ПериодМесяц, | НачалоПериода(ИсточникДанных.Период, Квартал) КАК ПериодКвартал, | НачалоПериода(ИсточникДанных.Период, Полугодие) КАК ПериодПолугодие, | НачалоПериода(ИсточникДанных.Период, Год) КАК ПериодГод | //УСЛОВИЯ_СВОЙСТВА | //УСЛОВИЯ_КАТЕГОРИИ | //УСЛОВИЯ_АВТОСЕРВИС |}"; ОписаниеУпорядочиванияРезультатаЗапроса = " |{УПОРЯДОЧИТЬ ПО" + ОписаниеУпорядочиванияРезультатаЗапроса + ?(ОписаниеУпорядочиванияРезультатаЗапроса = "", "", ",") + " | Регистратор.*, | Период, | ПериодДень, | ПериодНеделя, | ПериодДекада, | ПериодМесяц, | ПериодКвартал, | ПериодПолугодие, | ПериодГод | //ПСЕВДОНИМЫ_СВОЙСТВА | //ПСЕВДОНИМЫ_КАТЕГОРИИ | //ПСЕВДОНИМЫ_АВТОСЕРВИС |}"; ОписаниеИтогиЗапроса = " |ИТОГИ" + ОписаниеИтогиЗапроса + " | //ИТОГИ_СВОЙСТВА | //ИТОГИ_КАТЕГОРИИ | //ИТОГИ_АВТОСЕРВИС |ПО | ОБЩИЕ"; ОписаниеИтогиЗапросаПостроитель = " |{ИТОГИ ПО" + ОписаниеИтогиЗапросаПостроитель + ?(ОписаниеИтогиЗапросаПостроитель = "", "", ",") + " | Регистратор.*, | Период, | ПериодДень, | ПериодНеделя, | ПериодДекада, | ПериодМесяц, | ПериодКвартал, | ПериодПолугодие, | ПериодГод | //ПСЕВДОНИМЫ_СВОЙСТВА | //ПСЕВДОНИМЫ_КАТЕГОРИИ | //ПСЕВДОНИМЫ_АВТОСЕРВИС |}"; ТекстЗапроса = ОписаниеПолейВыборки + ОписаниеПолейВыборкиПостроитель + ОписаниеИсточниковЗапроса + ОписаниеОтборовРезультатаЗапроса + ОписаниеУпорядочиванияРезультатаЗапроса + ОписаниеИтогиЗапроса + ОписаниеИтогиЗапросаПостроитель; ТекстПоля = ""; Если ИспользоватьСвойстваИКатегории Тогда ДобавитьВТекстЗапросаСвойстваИКатегории(ТекстЗапроса); КонецЕсли; Если мИспользоватьПараметрыАвтомобиля Тогда ДобавитьВТекстЗапросаПараметрыАвтосервиса(ТекстЗапроса); КонецЕСли; ПостроительОтчета.Текст = ТекстЗапроса; ОтборПериодичность = ПостроительОтчета.Отбор.Найти("Периодичность"); Если ОтборПериодичность <> Неопределено Тогда ПостроительОтчета.Отбор.Удалить(ПостроительОтчета.Отбор.Индекс(ОтборПериодичность)); КонецЕсли;   УстановитьПредставленияПолей(мСтруктураПредставлениеПолей, ПостроительОтчета); УстановитьТипыЗначенийСвойствДляОтбора(); КонецПроцедуры // УстановитьНачальныеНастройкиПоМетаданнымРегистра()

vitasw

Причем тут запрос в Универсальном отчете! Вы неправильно настраиваете свой отчет. Из-за того, что вы неправильно настроили свой отчет - универсальный не может вывести то, что вы ожидаете.
P.S. Хотя ошибки в схеме универсального отчета тоже не исключаю, т.к. объекты с префиксов "АС_" - это явно что-то кем-то дописанное и к типовому функционалу не относится.

keramik

Понятно, буду смотреть, как правильно настроить :)
Да, это дополненная конфигурация предыдущим разработчиком.
Добавлено: 20 авг 2015, 14:48


Наметился некоторый прогресс. Основываясь на отчёте о Валовой прибыли собрал отчёт для Продаж. Но пока только названия колонок и само название отчёта выводятся. Данные почему-то не отображаются:
Процедура УстановитьНачальныеНастройки(ДополнительныеПараметры = Неопределено) Экспорт // Настройка общих параметров универсального отчета // Содержит название отчета, которое будет выводиться в шапке. // Тип: Строка. // Пример: // УниверсальныйОтчет.мНазваниеОтчета = "Название отчета"; УниверсальныйОтчет.мНазваниеОтчета = СокрЛП(ЭтотОбъект.Метаданные().Синоним); УниверсальныйОтчет.мВсеПоЛатышски = Истина; // Содержит признак необходимости отображения надписи и поля выбора раздела учета в форме настройки. // Тип: Булево. // Значение по умолчанию: Истина. // Пример: // УниверсальныйОтчет.мВыбиратьИмяРегистра = Ложь; УниверсальныйОтчет.мВыбиратьИмяРегистра = Ложь; // Содержит имя регистра, по метаданным которого будет выполняться заполнение настроек отчета. // Тип: Строка. // Пример: // УниверсальныйОтчет.ИмяРегистра = "ТоварыНаСкладах"; УниверсальныйОтчет.ИмяРегистра = "АС_Продажи"; // Дополнительные параметры, переданные из отчета, вызвавшего расшифровку. // Информация, передаваемая в переменной ДополнительныеПараметры, может быть использована // для реализации специфичных для данного отчета параметрических настроек. // Описание исходного текста запроса. ТекстЗапроса = "ВЫБРАТЬ | АС_ПродажиОбороты.Период КАК Период, | АС_ПродажиОбороты.Регистратор КАК Регистратор, | АС_ПродажиОбороты.Контрагент КАК Контрагент, | АС_ПродажиОбороты.СтоимостьОборот КАК Стоимость, | АС_ПродажиОбороты.СтоимостьБезНДСОборот КАК СтоимостьБезНДС |{ВЫБРАТЬ | Период, | Регистратор.*, | Контрагент.*, | Стоимость, | СтоимостьБезНДС} |ИЗ | РегистрНакопления.АС_Продажи.Обороты(, , Регистратор, ) КАК АС_ПродажиОбороты |ГДЕ | АС_ПродажиОбороты.Регистратор.Состояние = ЗНАЧЕНИЕ(Перечисление.СостояниеЗаказНаряда.Выполнен) | |СГРУППИРОВАТЬ ПО | АС_ПродажиОбороты.Контрагент, | АС_ПродажиОбороты.Период, | АС_ПродажиОбороты.Регистратор, | АС_ПродажиОбороты.СтоимостьОборот, | АС_ПродажиОбороты.СтоимостьБезНДСОборот | |УПОРЯДОЧИТЬ ПО | Контрагент |ИТОГИ | СУММА(Стоимость), | СУММА(СтоимостьБезНДС) |ПО | Период, | Регистратор, | Контрагент"; // Инициализация текста запроса построителя отчета УниверсальныйОтчет.ПостроительОтчета.Текст = ТекстЗапроса; // Представления полей отчета. // Необходимо вызывать для каждого поля запроса. // УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить(<ИмяПоля>, <ПредставлениеПоля>); УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("Контрагент");    УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("Регистратор");  УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("Период"); УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("СтоимостьБезНДС"); УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("Стоимость"); // Добавление показателей // Необходимо вызывать для каждого добавляемого показателя. // УниверсальныйОтчет.ДобавитьПоказатель(<ИмяПоказателя>, <ПредставлениеПоказателя>, <ВключенПоУмолчанию>, <Формат>, <ИмяГруппы>, <ПредставлениеГруппы>); УниверсальныйОтчет.ДобавитьПоказатель("Контрагент", НСтр("lv='Kontrahents';ru='Контрагент';en='Контрагент'"), Истина); УниверсальныйОтчет.ДобавитьПоказатель("СтоимостьБезНДС", НСтр("lv='Bez PVN';ru='Без НДС';en='Без НДС'"), Истина, "ЧЦ=15; ЧДЦ=2"); УниверсальныйОтчет.ДобавитьПоказатель("Стоимость", НСтр("lv='Ar PVN';ru='С НДС';en='С НДС'"), Истина, "ЧЦ=15; ЧДЦ=2"); // Добавление предопределенных группировок строк отчета. // Необходимо вызывать для каждой добавляемой группировки строки. // УниверсальныйОтчет.ДобавитьИзмерениеСтроки(<ПутьКДанным>); УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Контрагент"); УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Регистратор"); УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Период"); // Добавление предопределенных отборов отчета. // Необходимо вызывать для каждого добавляемого отбора. // УниверсальныйОтчет.ДобавитьОтбор(<ПутьКДанным>); УниверсальныйОтчет.ДобавитьОтбор("Контрагент"); УниверсальныйОтчет.ДобавитьОтбор("Регистратор"); УниверсальныйОтчет.ДобавитьОтбор("Период"); // Установка представлений полей УниверсальныйОтчет.УстановитьПредставленияПолей(УниверсальныйОтчет.мСтруктураПредставлениеПолей, УниверсальныйОтчет.ПостроительОтчета); // Установка типов значений свойств в отборах отчета УниверсальныйОтчет.УстановитьТипыЗначенийСвойствДляОтбора(); // Заполнение начальных настроек универсального отчета УниверсальныйОтчет.УстановитьНачальныеНастройки(Ложь); КонецПроцедуры // УстановитьНачальныеНастройки()
продолжу разбираться, как вывести даннные.
Добавлено: 20 авг 2015, 14:53


При этом, если раскоментить строку УниверсальныйОтчет.ВыводитьДетальныеЗаписи = Истина;
то какие-то данные по работам выводятся.

vitasw

УниверсальныйОтчет.ДобавитьПоказатель - для добавления, грубо говоря ресурсов. чего влепили контрагента?

keramik

Блин, вот я голова варёная. Отбор делал по августу, а в августе нет ни одного документа со статусом "Выполнен" :)
Получилось вывести отчёт, не совсем красиво пока что, но прогресс есть.

Подправил запрос, чтобы учитывался период:
|ИЗ | РегистрНакопления.АС_Продажи.Обороты(&ДатаНач, &ДатаКон, Регистратор, ) КАК АС_ПродажиОбороты
   
Добавлено: 20 авг 2015, 15:03


Цитата: vitasw от 20 авг 2015, 14:59
УниверсальныйОтчет.ДобавитьПоказатель - для добавления, грубо говоря ресурсов. чего влепили контрагента?
иначе не выводится нигде контрагент :( В приложении скрин с результатом отчёта.

vitasw

Контрагент не выводится потому-что нет секции Итоги построителя.
должно быть что-то типа:
|{ИТОГИ ПО
   |   Контрагент.*,
   |   Регистратор.*,
...
а итоги по запросу - не нужны.

keramik

Спасибо, буду ковырять запрос, чтобы выводить данные так как хочу.
Добавлено: 21 авг 2015, 11:34


Пока что не получается вывести данные в отчёт, подскажите может что-нибудь упустил. Ниже код процедуры:
Процедура УстановитьНачальныеНастройки(ДополнительныеПараметры = Неопределено) Экспорт // Настройка общих параметров универсального отчета // Содержит название отчета, которое будет выводиться в шапке. // Тип: Строка. // Пример: // УниверсальныйОтчет.мНазваниеОтчета = "Название отчета"; УниверсальныйОтчет.мНазваниеОтчета = СокрЛП(ЭтотОбъект.Метаданные().Синоним); // Содержит признак необходимости отображения надписи и поля выбора раздела учета в форме настройки. // Тип: Булево. // Значение по умолчанию: Истина. // Пример: // УниверсальныйОтчет.мВыбиратьИмяРегистра = Ложь; УниверсальныйОтчет.мВыбиратьИмяРегистра = Ложь; // Содержит имя регистра, по метаданным которого будет выполняться заполнение настроек отчета. // Тип: Строка. // Пример: // УниверсальныйОтчет.ИмяРегистра = "ТоварыНаСкладах"; УниверсальныйОтчет.ИмяРегистра = "АС_Продажи"; УниверсальныйОтчет.мИспользоватьПараметрыАвтомобиля = истина; УниверсальныйОтчет.мВсеПоЛатышски = Истина; ТекстЗапроса = "ВЫБРАТЬ                | АС_ПродажиОбороты.Контрагент,                | АС_ПродажиОбороты.Регистратор,                | АС_ПродажиОбороты.СтоимостьБезНДСОборот КАК СтоимостьБезНДС,                | АС_ПродажиОбороты.СтоимостьОборот КАК Стоимость                |{ВЫБРАТЬ                | Контрагент.*,                | Регистратор.*,                | СтоимостьБезНДС,                | Стоимость}                |ИЗ                | РегистрНакопления.АС_Продажи.Обороты(&ДатаНач {(&ДатаНач)}, &ДатаКон {(&ДатаКон)}, Регистратор, ) КАК АС_ПродажиОбороты                |ГДЕ                | АС_ПродажиОбороты.Регистратор.Состояние = ЗНАЧЕНИЕ(Перечисление.СостояниеЗаказНаряда.Выполнен)                |{ИТОГИ ПО                | Контрагент.*,    | СтоимостьБезНДС,                | Стоимость}"; УниверсальныйОтчет.ПостроительОтчета.Текст = ТекстЗапроса; // Заполнение начальных настроек универсального отчета УниверсальныйОтчет.УстановитьНачальныеНастройки(Ложь); УниверсальныйОтчет.ДобавитьПоказатель("СтоимостьБезНДС",          "Pārdošanas summa bez PVN", Истина); УниверсальныйОтчет.ДобавитьПоказатель("Стоимость",          "Pārdošanas summa ar PVN", Истина); УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("Контрагент", "Kontrahēnts"); УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("СтоимостьБезНДС", "Summa bez PVN"); УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("Стоимость", "Summa ar PVN"); // Добавление предопределенных группировок строк отчета. // Необходимо вызывать для каждой добавляемой группировки строки. // УниверсальныйОтчет.ДобавитьИзмерениеСтроки(<ПутьКДанным>); УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Контрагент"); // Добавление предопределенных отборов отчета. // Необходимо вызывать для каждого добавляемого отбора. // УниверсальныйОтчет.ДобавитьОтбор(<ПутьКДанным>); УниверсальныйОтчет.ДобавитьОтбор("Контрагент"); // Добавление предопределенных полей порядка отчета. // Необходимо вызывать для каждого добавляемого поля порядка. // УниверсальныйОтчет.ДобавитьПорядок(<ПутьКДанным>); УниверсальныйОтчет.ДобавитьПорядок("СтоимостьБезНДС"); УниверсальныйОтчет.ДобавитьПорядок("Стоимость"); КонецПроцедуры // УстановитьНачальныеНастройки()
При этом на ячейку с суммой в отчёте можно нажимать и предлагаются варианты расшифровки, но вот данных в ней нет никаких, кроме контрагента.
В приложении скрин с примером.
Добавлено: 21 авг 2015, 12:39


Получилось вывести данные, добавил в запросе самом условие суммировать значение стоимости и стоимости без НДС :zebzdr:
Добавлено: 21 авг 2015, 13:07


Ещё вопрос уточняющий, как скрыть из расшифровки поля Стоимость и СтоимостьБезНДС?
В приложении скрин расшифровки с полями.
Пробовал в процедуре прописать:
//УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("СтоимостьБезНДС", "Summa bez PVN", Ложь); //УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("Стоимость", "Summa ar PVN", Ложь);
но тогда программа выкидывает сообщение "Too many actual parameters".
Добавлено: 21 авг 2015, 13:08


В процедуре условия раскоментированы.
Добавлено: 21 авг 2015, 13:20


Методом научного тыка вычислил, что в запросе вызывались эти Стоимость и СтоимостьБезНДС, а затем по ним же делал итоги. Удалил их и получилось нормально. Вот код запроса окончательный:
ВЫБРАТЬ                | АС_ПродажиОбороты.Период,                | АС_ПродажиОбороты.Регистратор,                | АС_ПродажиОбороты.Цех,                | АС_ПродажиОбороты.Контрагент,                | АС_ПродажиОбороты.Автомобиль,                | АС_ПродажиОбороты.ВидРемонта,                | АС_ПродажиОбороты.Номенклатура,                | СУММА(АС_ПродажиОбороты.СтоимостьОборот) КАК Стоимость,                | СУММА(АС_ПродажиОбороты.СтоимостьБезНДСОборот) КАК СтоимостьБезНДС                |{ВЫБРАТЬ                | Период,                | Регистратор.*,                | Цех.*,                | Контрагент.*,                | Автомобиль.*,                | ВидРемонта.*,                | Номенклатура.*                | Стоимость,                | СтоимостьБезНДС}                |ИЗ                | РегистрНакопления.АС_Продажи.Обороты(&ДатаНач {(&ДатаНач)}, &ДатаКон {(&ДатаКон)}, Регистратор, ) КАК АС_ПродажиОбороты                |ГДЕ                | АС_ПродажиОбороты.Регистратор.Состояние = ЗНАЧЕНИЕ(Перечисление.СостояниеЗаказНаряда.Выполнен)                |                |СГРУППИРОВАТЬ ПО                | АС_ПродажиОбороты.Период,                | АС_ПродажиОбороты.Регистратор,                | АС_ПродажиОбороты.Цех,                | АС_ПродажиОбороты.Контрагент,                | АС_ПродажиОбороты.Автомобиль,                | АС_ПродажиОбороты.ВидРемонта,                | АС_ПродажиОбороты.Номенклатура                |{ИТОГИ ПО                | Период,                | Регистратор.*,                | Цех.*,                | Контрагент.*,                | Автомобиль.*,                | ВидРемонта.*,                | Номенклатура.*}
Добавлено: 21 авг 2015, 14:42


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

Похожие темы (5)

Рейтинг@Mail.ru

Поиск