Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
14 дек 2024, 23:38

Помогите с Итогами

Автор Dadka, 20 фев 2012, 22:17

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

Dadka

Доброго времени суток всем. я здесь новичек. помогите пожалуйста разобраться.
есть код (чуть ниже я его опубликую), нужно, чтобы как считается ИтогКоличество, чтобы считался ИтогМеста, Итог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
   ОбластьМакета = Макет.ПолучитьОбласть("Подвал");
   ОбластьМакета.Параметры.ИтогКоличество = ОбщегоНазначения.ФорматСумм(Количество);
   
   ОбластьМакета.Параметры.ИтогСуммыСНДС = ОбщегоНазначения.ФорматСумм(Сумма);

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

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

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

мВалютаРегламентированногоУчета = Константы.ВалютаРегламентированногоУчета.Получить();

cska-fanat-kz

И что мешает рядом с

Количество = Количество + ВыборкаСтрокТовары.Количество;

написать

Места = Места + ВыборкаСтрокТовары.Места;

???
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Теги:

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

Рейтинг@Mail.ru

Поиск