Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
11 Дек 2017, 22:13
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Отбор по статусу документа УниверсальномОтчёте  (Прочитано 1853 раз)

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

Оффлайн keramik

  • ***
  • Сообщений: 161
  • РЕПУТАЦИЯ: 2
  • КПД: 1%
  • Регистрация: 2014-10-03
  • Сайт: 
  • Профессия: Программист 1С
Добрый вечер, 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

  • ***
  • Сообщений: 161
  • РЕПУТАЦИЯ: 2
  • КПД: 1%
  • Регистрация: 2014-10-03
  • Сайт: 
  • Профессия: Программист 1С
Вышеупомянутая процедура находится в модуле отчёта АС_Продажи.

Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Должен быть или свой текст запроса или "УниверсальныйОтчет.ИмяРегистра = "АС_Продажи";" Если есть оба, то ваш текст запроса херится. Откройте любой типовой отчет с произвольным текстом запроса и посмотрите как он работает. Где у вас косяк по приведенному коду определить невозможно.

Оффлайн keramik

  • ***
  • Сообщений: 161
  • РЕПУТАЦИЯ: 2
  • КПД: 1%
  • Регистрация: 2014-10-03
  • Сайт: 
  • Профессия: Программист 1С
Значит, где-то есть ещё запрос, который я пока не нашёл.
Походу, именно в "УниверсальныйОтчёт" и есть этот запрос, который выводит данные в таблицу.
Нашёл процедуру в модуле АС_УниверсальныйОтчет:
Процедура УстановитьНачальныеНастройкиПоМетаданнымРегистра(ИмяРегистра)

МетаданныеРегистра = Метаданные.РегистрыНакопления.Найти(ИмяРегистра);

Если МетаданныеРегистра = Неопределено Тогда

Возврат;

КонецЕсли;

Обороты = МетаданныеРегистра.ВидРегистра = Метаданные.СвойстваОбъектов.ВидРегистраНакопления.Обороты;

ОписаниеПолейВыборки = "";
ОписаниеПолейВыборкиПостроитель = "";
ОписаниеИсточниковЗапроса = "";
ОписаниеОтборовРезультатаЗапроса = "";
ОписаниеУпорядочиванияРезультатаЗапроса = "";
ОписаниеИтогиЗапроса = "";
ОписаниеИтогиЗапросаПостроитель = "";

Если ИспользоватьСвойстваИКатегории Тогда

Запрос = Новый Запрос(
"ВЫБРАТЬ
| НазначенияСвойствКатегорийОбъектов.Ссылка,
| НазначенияСвойствКатегорийОбъектов.Предопределенный,
| НазначенияСвойствКатегорийОбъектов.ТипЗначения
|ИЗ
| ПланВидовХарактеристик.НазначенияСвойствКатегорийОбъектов КАК НазначенияСвойствКатегорийОбъектов
|ГДЕ
| НазначенияСвойствКатегорийОбъектов.ПометкаУдаления = ЛОЖЬ
| И НазначенияСвойствКатегорийОбъектов.ЭтоГруппа = ЛОЖЬ");

РезультатЗапросаНазначенияСвойствКатегорийОбъектов = Запрос.Выполнить();
ВыборкаНазначенияСвойствКатегорийОбъектов = РезультатЗапросаНазначенияСвойствКатегорийОбъектов.Выбрать();

КонецЕсли;

Для каждого Измерение из МетаданныеРегистра.Измерения Цикл

ОписаниеПолейВыборки = ОписаниеПолейВыборки + ?(ОписаниеПолейВыборки = "", "", ",") + "
| ИсточникДанных." + Измерение.Имя + " КАК " + Измерение.Имя + ",
| ПРЕДСТАВЛЕНИЕ(ИсточникДанных." + Измерение.Имя + ") КАК " + Измерение.Имя + "Представление";

ОписаниеПолейВыборкиПостроитель = ОписаниеПолейВыборкиПостроитель + ?(ОписаниеПолейВыборкиПостроитель = "", "", ",") + "
| " + Измерение.Имя + ".*";

ОписаниеИсточниковЗапроса = ОписаниеИсточниковЗапроса + ?(ОписаниеИсточниковЗапроса = "", "", ",") + "
| " + Измерение.Имя + ".* КАК " + Измерение.Имя;

ОписаниеУпорядочиванияРезультатаЗапроса = ОписаниеУпорядочиванияРезультатаЗапроса + ?(ОписаниеУпорядочиванияРезультатаЗапроса = "", "", ",") + "
| " + Измерение.Имя + ".*";

ОписаниеИтогиЗапросаПостроитель = ОписаниеИтогиЗапросаПостроитель + ?(ОписаниеИтогиЗапросаПостроитель = "", "", ",") + "
| " + Измерение.Имя + ".*";


мСтруктураПредставлениеПолей.Вставить(Измерение.Имя, Измерение.Представление());

Если ИспользоватьСвойстваИКатегории Тогда

МассивНазначений = Новый Массив;

Для каждого ТипИзмерения из Измерение.Тип.Типы() Цикл

ВыборкаНазначенияСвойствКатегорийОбъектов.Сбросить();

Пока ВыборкаНазначенияСвойствКатегорийОбъектов.Следующий() Цикл

Если ВыборкаНазначенияСвойствКатегорийОбъектов.Ссылка = ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_ХарактеристикиНоменклатуры И
ТипИзмерения = Тип("СправочникСсылка.ХарактеристикиНоменклатуры") ИЛИ
ВыборкаНазначенияСвойствКатегорийОбъектов.Ссылка <> ПланыВидовХарактеристик.НазначенияСвойствКатегорийОбъектов.Справочник_ХарактеристикиНоменклатуры И
ВыборкаНазначенияСвойствКатегорийОбъектов.ТипЗначения.СодержитТип(ТипИзмерения) И
МассивНазначений.Найти(ВыборкаНазначенияСвойствКатегорийОбъектов.Ссылка) = Неопределено Тогда

МассивНазначений.Добавить(ВыборкаНазначенияСвойствКатегорийОбъектов.Ссылка);

КонецЕсли;

КонецЦикла;

КонецЦикла;

Для каждого Назначение из МассивНазначений Цикл

ДобавитьСвойстваИКатегорииДляПоля("ИсточникДанных." + Измерение.Имя, Измерение.Имя, Измерение.Представление(), Назначение);

КонецЦикла;

КонецЕсли;

Если мИспользоватьПараметрыАвтомобиля Тогда
ДобавитьПараметрыАвтомобиляДляПоля("ИсточникДанных." + Измерение.Имя, Измерение.Имя, Измерение.Представление());
КонецЕсли;

КонецЦикла;

// Свойства и категории поля "Регистратор"
Если ИспользоватьСвойстваИКатегории Тогда

МассивНазначений = Новый Массив;

Запрос = Новый Запрос(
"ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 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

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Причем тут запрос в Универсальном отчете! Вы неправильно настраиваете свой отчет. Из-за того, что вы неправильно настроили свой отчет - универсальный не может вывести то, что вы ожидаете.
P.S. Хотя ошибки в схеме универсального отчета тоже не исключаю, т.к. объекты с префиксов "АС_" - это явно что-то кем-то дописанное и к типовому функционалу не относится.

Оффлайн keramik

  • ***
  • Сообщений: 161
  • РЕПУТАЦИЯ: 2
  • КПД: 1%
  • Регистрация: 2014-10-03
  • Сайт: 
  • Профессия: Программист 1С
Понятно, буду смотреть, как правильно настроить :)
Да, это дополненная конфигурация предыдущим разработчиком.
Добавлено: 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

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

Последний раз редактировалось: keramik; 20 Авг 2015, 14:53. Причина: Объединение сообщений

Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
УниверсальныйОтчет.ДобавитьПоказатель - для добавления, грубо говоря ресурсов. чего влепили контрагента?

Оффлайн keramik

  • ***
  • Сообщений: 161
  • РЕПУТАЦИЯ: 2
  • КПД: 1%
  • Регистрация: 2014-10-03
  • Сайт: 
  • Профессия: Программист 1С
Блин, вот я голова варёная. Отбор делал по августу, а в августе нет ни одного документа со статусом "Выполнен" :)
Получилось вывести отчёт, не совсем красиво пока что, но прогресс есть.

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

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

Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Контрагент не выводится потому-что нет секции Итоги построителя.
должно быть что-то типа:
|{ИТОГИ ПО
   |   Контрагент.*,
   |   Регистратор.*,
...
а итоги по запросу - не нужны.

Оффлайн keramik

  • ***
  • Сообщений: 161
  • РЕПУТАЦИЯ: 2
  • КПД: 1%
  • Регистрация: 2014-10-03
  • Сайт: 
  • Профессия: Программист 1С
Спасибо, буду ковырять запрос, чтобы выводить данные так как хочу.
Добавлено: 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

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

Последний раз редактировалось: keramik; 21 Авг 2015, 14:42. Причина: Объединение сообщений


 

Не открывает форму сохраненного документа, открывает форму нового.

Автор EHOTРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 4467
Последний ответ 13 Апр 2012, 23:26
от Vit1501
Автоматическое заполнение табличной части документа из табличной части другого

Автор WillРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 6
Просмотров: 15900
Последний ответ 16 Авг 2012, 12:07
от Will
Заполнение поля табличной части документа из табличной части справочника.

Автор Kurt_WagnerРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 4195
Последний ответ 06 Апр 2015, 20:08
от Kurt_Wagner
Заполнение табличной части документа реквизитами табличной части справочника

Автор kaf_infoРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 616
Последний ответ 10 Май 2017, 20:44
от ilnur75
Добавление сведений в графу "основание" документа "ТОРГ-12"

Автор Ярослав1984Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 4
Просмотров: 7734
Последний ответ 20 Авг 2013, 18:45
от Ярослав1984

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
166 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
56 Сообщений
alex0402
46 Сообщений
andron81_81
44 Сообщений
AIFrame
36 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
BuhRust
28 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 321
  • Точка Скрытых: 0
  • Точка Пользователей: 6
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal