Имя: Пароль:
1C
1С v8
Помогите с Итогами
0 dadka
 
20.02.12
22:22
Доброго времени суток всем. помогите пожалуйста разобраться.
есть код (чуть ниже я его опубликую), нужно, чтобы как считается ИтогКоличество, чтобы считался ИтогМеста, ИтогNet, ИтогБрутто.
Прошу учесть, что:
Места
Брутто
это дополнительные реквизиты Справочника Номенклатура.
Заранее спасибо за ответы.


Перем мВалютаРегламентированногоУчета Экспорт;

Функция Печать() Экспорт

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

ЗапросПоТоварам = Новый Запрос();
ЗапросПоТоварам.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект.Ссылка);

ЧастьЗапросаДляВыбораСодержанияУслуг = ФормированиеПечатныхФорм.ПолучитьЧастьЗапросаДляВыбораСодержанияУслуг("ЗапросПоУслугам");

ЗапросПоТоварам.Текст =
"ВЫБРАТЬ
| ЗапросПоТоварам.Номенклатура,
| ЗапросПоТоварам.Номенклатура.Код,
| ЗапросПоТоварам.Номенклатура.НаименованиеПолное КАК НаименованиеПолное,
| ЗапросПоТоварам.ЕдиницаИзмерения.Представление,
| ЗапросПоТоварам.КоличествоМест,
| ЗапросПоТоварам.Количество КАК Количество,
| ЗапросПоТоварам.Коэффициент,
| ЗапросПоТоварам.Цена,
| ЗапросПоТоварам.Сумма,
| ЗапросПоТоварам.НомерСтроки,
| 3 КАК Поле2,
| ЕСТЬNULL(ЗначенияНетто.Значение, 0) КАК Нетто,
| ЕСТЬNULL(ЗначенияМеста.Значение, 0) КАК Места,
| ЕСТЬNULL(ЗначенияБрутто.Значение, 0) КАК Брутто
|ИЗ
| (ВЫБРАТЬ
| ПоступлениеТоваровУслуг.Номенклатура КАК Номенклатура,
| СУММА(ПоступлениеТоваровУслуг.КоличествоМест) КАК КоличествоМест,
| СУММА(ПоступлениеТоваровУслуг.Количество) КАК Количество,
| ПоступлениеТоваровУслуг.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| ПоступлениеТоваровУслуг.Коэффициент КАК Коэффициент,
| ПоступлениеТоваровУслуг.Цена КАК Цена,
| СУММА(ПоступлениеТоваровУслуг.Сумма) КАК Сумма,
| СУММА(ПоступлениеТоваровУслуг.СуммаНДС) КАК СуммаНДС,
| ПоступлениеТоваровУслуг.СтавкаНДС КАК СтавкаНДС,
| МИНИМУМ(ПоступлениеТоваровУслуг.НомерСтроки) КАК НомерСтроки
| ИЗ
| Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслуг
| ГДЕ
| ПоступлениеТоваровУслуг.Ссылка = &ТекущийДокумент
|
| СГРУППИРОВАТЬ ПО
| ПоступлениеТоваровУслуг.Номенклатура,
| ПоступлениеТоваровУслуг.СтавкаНДС,
| ПоступлениеТоваровУслуг.Цена,
| ПоступлениеТоваровУслуг.ЕдиницаИзмерения,
| ПоступлениеТоваровУслуг.Коэффициент) КАК ЗапросПоТоварам
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияНетто
| ПО ЗапросПоТоварам.Номенклатура.Ссылка = ЗначенияНетто.Объект
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияМеста
| ПО ЗапросПоТоварам.Номенклатура.Ссылка = ЗначенияМеста.Объект
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияБрутто
| ПО ЗапросПоТоварам.Номенклатура.Ссылка = ЗначенияБрутто.Объект
|ГДЕ
| ЗначенияМеста.Свойство.Наименование = ""Места""
| И ЗначенияНетто.Свойство.Наименование = ""Нетто""
| И ЗначенияБрутто.Свойство.Наименование = ""Брутто""" ;

ВыборкаСтрок = ЗапросПоТоварам.Выполнить().Выгрузить();

ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПоступлениеТоваровУслуг_ТОРГ12";
Макет = ПолучитьМакет("ТОРГ12");

ОбластьМакетаШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьМакетаЗаголовокТаблицы = Макет.ПолучитьОбласть("ЗаголовокТаб");
ОбластьМакетаСтрока = Макет.ПолучитьОбласть("Строка");
ОбластьМакетаИтогоПоСтранице = Макет.ПолучитьОбласть("ИтогоПоСтранице");
ОбластьМакетаВсего = Макет.ПолучитьОбласть("Всего");
ОбластьМакетаПодвал = Макет.ПолучитьОбласть("Подвал");

ОбластьМакетаШапка.Параметры.НомерДокумента = Номер;
ОбластьМакетаШапка.Параметры.ДатаДокумента = Формат(Дата, "ДФ=dd.MM.yyyy");


ТабДокумент.Вывести(ОбластьМакетаШапка);

ОбластьМакета = Макет.ПолучитьОбласть("ЗаголовокТаб");
ТабДокумент.Вывести(ОбластьМакета);

ОбластьМакета = Макет.ПолучитьОбласть("Строка");

Количество = 0;
Места = 0;
//Net = 0;
Брутто = 0;
Сумма = 0;
СуммаНДС = 0;




Для Каждого ВыборкаСтрокТовары Из ВыборкаСтрок Цикл

ОбластьМакета.Параметры.Заполнить(ВыборкаСтрокТовары);
ОбластьМакета.Параметры.НомерСтроки = ВыборкаСтрок.Индекс(ВыборкаСтрокТовары) + 1;
ОбластьМакета.Параметры.Товар = СокрЛП(ВыборкаСтрокТовары.НаименованиеПолное);
ОбластьМакета.Параметры.Нетто = ВыборкаСтрокТовары.Нетто;
ОбластьМакета.Параметры.Места = ВыборкаСтрокТовары.Места;
ОбластьМакета.Параметры.Брутто = ВыборкаСтрокТовары.Брутто;
//

Количество = Количество + ВыборкаСтрокТовары.Количество;
Net = ВыборкаСтрокТовары.Количество * ВыборкаСтрокТовары.Нетто;
ОбластьМакета.Параметры.Net = Net;
Сумма = Сумма + ВыборкаСтрокТовары.Сумма;
ТабДокумент.Вывести(ОбластьМакета);

КонецЦикла;



// Вывести Итого
ОбластьМакета = Макет.ПолучитьОбласть("Всего");
ОбластьМакета.Параметры.ИтогКоличество = ОбщегоНазначения.ФорматСумм(Количество);
ОбластьМакета.Параметры.ИтогМеста = ОбщегоНазначения.ФорматСумм(Места);
// ОбластьМакета.Параметры.ИтогNet = ОбщегоНазначения.ФорматСумм(Net);
ОбластьМакета.Параметры.ИтогБрутто = ОбщегоНазначения.ФорматСумм(Брутто);
ОбластьМакета.Параметры.ИтогСуммыСНДС = ОбщегоНазначения.ФорматСумм(Сумма);
ТабДокумент.Вывести(ОбластьМакета);


// Вывести TOTAL
ОбластьМакета = Макет.ПолучитьОбласть("Подвал");
ОбластьМакета.Параметры.ИтогКоличество = ОбщегоНазначения.ФорматСумм(Количество);

ОбластьМакета.Параметры.ИтогСуммыСНДС = ОбщегоНазначения.ФорматСумм(Сумма);


//ПервыйРазделитель = Найти(ПолнаяДатаДокумента," ");
//ВторойРазделитель = Найти(Прав(ПолнаяДатаДокумента,ДлинаСтроки - ПервыйРазделитель), " ") + ПервыйРазделитель;

ТабДокумент.Вывести(ОбластьМакета);

Возврат ТабДокумент;

КонецФункции // ПечатьПоступлениеТоваров()

мВалютаРегламентированногоУчета = Константы.ВалютаРегламентированногоУчета.Получить();
1 wade25
 
20.02.12
22:28
Введи переменную для них x, y, z/

x = x + ВыборкаСтрокТовары.Нетто;
y = y + ВыборкаСтрокТовары.Места;
z = Z + ВыборкаСтрокТовары.Брутто;

Код в цикл.
2 dadka
 
20.02.12
22:40
как уже писал ранее

Прошу учесть, что:
Места
Брутто
это дополнительные реквизиты Справочника Номенклатура.

и при вводе переменной


{ВнешняяОбработка.Инвойс.МодульОбъекта(135)}: Преобразование значения к типу Число не может быть выполнено
       Нетто     = Нетто    + ВыборкаСтрокТовары.Нетто;
3 wade25
 
20.02.12
22:45
А что в отладчике, какой тип?
4 dadka
 
20.02.12
22:56
Нетто - тип Неопределено
хотя ВыборкаСтрокТовары.Нетто - число дает
5 MrStomak
 
20.02.12
23:01
Инициализировать переменную Нетто строчкой Нетто=0 в начале
6 dadka
 
20.02.12
23:14
(5) спасибо огромное. помогло.
7 dadka
 
20.02.12
23:16
подскажите еще момент
есть переменная Net
она у меня считается как
Net = ВыборкаСтрокТовары.Количество * ВыборкаСтрокТовары.Нетто; и выводится в строку отчета
а нужно, чтобы еще по переменной Net считались итоги.
8 dadka
 
20.02.12
23:28
*up*
9 PVV65
 
21.02.12
01:02
(0) Начать надо с запроса. У регистра ЗначенияСвойствОбъектов есть измерение "Свойство", поэтому надо писать

...
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияНетто
| ПО ЗапросПоТоварам.Номенклатура.Ссылка = ЗначенияНетто.Объект И
|    ЗначенияНетто.Свойство = &СвойствоНетто
...

иначе - бред.
Основная теорема систематики: Новые системы плодят новые проблемы.