Как в макете посчитать итог по идентичным документам?
По теме из базы знаний
Ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(10)
ОбластьСтрока.Параметры.Контрагент = строкаТЗ.РегистраторКонтрагент ;
ОбластьСтрока.Параметры.Адрес = строкаТЗ.АдресДоставки ;
ОбластьСтрока.Параметры.Территория = строкаТЗ.Территория ; //ЗаявкаСтр.ЧерезКого.Территория
ОбластьСтрока.Параметры.Артикул = строкаТЗ.Номенклатура.Артикул;
ОбластьСтрока.Параметры.Код = строкаТЗ.Номенклатура.Код;
ОбластьСтрока.Параметры.Наименование = строкаТЗ.Номенклатура;
ОбластьСтрока.Параметры.ЦенаДо = строкаТЗ.ИсходнаяЦена *строкаТЗ.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент; //*
ОбластьСтрока.Параметры.КолДо = ОКР(строкаТЗ.ИсходноеКоличество /строкаТЗ.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент,2) ; //*
ОбластьСтрока.Параметры.СуммаЗаказаДо = строкаТЗ.ИсходнаяЦена*строкаТЗ.ИсходноеКоличество ;
ОбластьСтрока.Параметры.ОтданоКол = (строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество)/строкаТЗ.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент; //*
ОбластьСтрока.Параметры.ОтданоКГ = (строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество)*строкаТЗ.ВесШтуки ;
ОбластьСтрока.Параметры.ОтданоКГНетто = (строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество)*строкаТЗ.ВесШтуки ;
ОбластьСтрока.Параметры.ЦенаПосле = строкаТЗ.ЦенаПосле*строкаТЗ.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент; //*
Если ОбластьСтрока.Параметры.ЦенаПосле <> 0 тогда
ОбластьСтрока.Параметры.Отгружено = ОКР(строкаТЗ.КоличествоПосле/строкаТЗ.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент); //*
ОбластьСтрока.Параметры.КГПосле = строкаТЗ.КоличествоПосле*строкаТЗ.ВесШтуки ;
КонецЕсли;
ОбластьСтрока.Параметры.СуммаОтгружено = строкаТЗ.ЦенаПосле *строкаТЗ.КоличествоПосле ;
Если ОбластьСтрока.Параметры.ЦенаПосле = 0 тогда
ОбластьСтрока.Параметры.ОтгруженоБонуса = (строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество)/строкаТЗ.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент ;
ОбластьСтрока.Параметры.ОтгруженоБонусаРуб = (строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество)*строкаТЗ.БазоваяЦена;
ОбластьСтрока.Параметры.ОтгруженоБонусаКГ = (строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество)*строкаТЗ.ВесШтуки ;
ОбластьСтрока.Параметры.ОтгруженоБонусаКГНетто = (строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество)*строкаТЗ.ВесШтуки ;
КонецЕсли;
ОбластьСтрока.Параметры.ПредоставленоСкидки = ?(строкаТЗ.ИсходнаяЦена>0,(строкаТЗ.ИсходнаяЦена-строкаТЗ.ЦенаПосле) * строкаТЗ.КоличествоПосле,0) ;
ОбластьСтрока.Параметры.ПредоставленоСкидкиБезНДС = ОКР(ОбластьСтрока.Параметры.ПредоставленоСкидки/(строкаТЗ.ПроцентНДС/100+1),2) ; //окр(ПредоставленоСкидки/(СпрТовар.СтавкаНДС.Ставка/100+1),2)
ОбластьСтрока.Параметры.Агент = строкаТЗ.РегистраторТорговыйПредставитель ;
ОбластьСтрока.Параметры.ЗаявкаСтр = строкаТЗ.ДокументНачисления;
ОбластьСтрока.Параметры.НаклСтр = строкаТЗ.РегистраторДокументПродажи ;
Если этаформа.ЭлементыФормы.ПолеВыбора1.Значение <> "Ruchnoy_bonus" Тогда
ОбластьСтрока.Параметры.БонусНаклСтр = ?(строка(строкаТЗ.БонуснаяЗаявка)="","",строкаТЗ.ДокументПродажиБонусногоЗаказа) ;
ИНАЧЕ
ОбластьСтрока.Параметры.БонусНаклСтр = строкаТЗ.ДокументПродажиБонусногоЗаказа ;
КонецЕсли;
ОбластьСтрока.Параметры.ЦенаЗакупки = строкаТЗ.ЦенаЗакупки*строкаТЗ.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент ;
ОбластьСтрока.Параметры.КоэффициентМеста = строкаТЗ.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент ;
ОбластьСтрока.Параметры.БазоваяЦена = строкаТЗ.БазоваяЦена*строкаТЗ.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент ; //СпрТовар.БазоваяЦена.получить(НаклСтр.датадок).ЦенаБазовая
ОбластьСтрока.Параметры.СтавкаНДС = строка(ОКР(строкаТЗ.ПроцентНДС))+" %"; //СпрТовар.СтавкаНДС
ТабДок.Вывести(ОбластьСтрока);
Показать
(12)
//перед объявлением цикла добавить
ПредыдущийДок = Неопределено;
ИтогПоДокументу = 0;
//---
//++++++++
Если ПредыдущийДок <> Неопределено И ПредыдущийДок <> строкаТЗ.РегистраторДокументПродажи Тогда
ОбластьСтрока.Параметры.НаклСтр = "Итог по документу" + ИтогПоДокументу;
ТабДок.Вывести(ОбластьСтрока);
ИтогПоДокументу = 0;
КонецЕсли
//-------
ОбластьСтрока.Параметры.Контрагент = строкаТЗ.РегистраторКонтрагент ;
ОбластьСтрока.Параметры.Адрес = строкаТЗ.АдресДоставки ;
ОбластьСтрока.Параметры.Территория = строкаТЗ.Территория ; //ЗаявкаСтр.ЧерезКого.Территория
ОбластьСтрока.Параметры.Артикул = строкаТЗ.Номенклатура.Артикул;
ОбластьСтрока.Параметры.Код = строкаТЗ.Номенклатура.Код;
ОбластьСтрока.Параметры.Наименование = строкаТЗ.Номенклатура;
ОбластьСтрока.Параметры.ЦенаДо = строкаТЗ.ИсходнаяЦена *строкаТЗ.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент; //*
ОбластьСтрока.Параметры.КолДо = ОКР(строкаТЗ.ИсходноеКоличество /строкаТЗ.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент,2) ; //*
ОбластьСтрока.Параметры.СуммаЗаказаДо = строкаТЗ.ИсходнаяЦена*строкаТЗ.ИсходноеКоличество ;
ОбластьСтрока.Параметры.ОтданоКол = (строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество)/строкаТЗ.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент; //*
ОбластьСтрока.Параметры.ОтданоКГ = (строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество)*строкаТЗ.ВесШтуки ;
ОбластьСтрока.Параметры.ОтданоКГНетто = (строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество)*строкаТЗ.ВесШтуки ;
ОбластьСтрока.Параметры.ЦенаПосле = строкаТЗ.ЦенаПосле*строкаТЗ.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент; //*
Если ОбластьСтрока.Параметры.ЦенаПосле <> 0 тогда
ОбластьСтрока.Параметры.Отгружено = ОКР(строкаТЗ.КоличествоПосле/строкаТЗ.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент); //*
ОбластьСтрока.Параметры.КГПосле = строкаТЗ.КоличествоПосле*строкаТЗ.ВесШтуки ;
КонецЕсли;
ОбластьСтрока.Параметры.СуммаОтгружено = строкаТЗ.ЦенаПосле *строкаТЗ.КоличествоПосле ;
Если ОбластьСтрока.Параметры.ЦенаПосле = 0 тогда
ОбластьСтрока.Параметры.ОтгруженоБонуса = (строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество)/строкаТЗ.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент ;
ОбластьСтрока.Параметры.ОтгруженоБонусаРуб = (строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество)*строкаТЗ.БазоваяЦена;
ОбластьСтрока.Параметры.ОтгруженоБонусаКГ = (строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество)*строкаТЗ.ВесШтуки ;
ОбластьСтрока.Параметры.ОтгруженоБонусаКГНетто = (строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество)*строкаТЗ.ВесШтуки ;
КонецЕсли;
ОбластьСтрока.Параметры.ПредоставленоСкидки = ?(строкаТЗ.ИсходнаяЦена>0,(строкаТЗ.ИсходнаяЦена-строкаТЗ.ЦенаПосле) * строкаТЗ.КоличествоПосле,0) ;
ОбластьСтрока.Параметры.ПредоставленоСкидкиБезНДС = ОКР(ОбластьСтрока.Параметры.ПредоставленоСкидки/(строкаТЗ.ПроцентНДС/100+1),2) ; //окр(ПредоставленоСкидки/(СпрТовар.СтавкаНДС.Ставка/100+1),2)
ОбластьСтрока.Параметры.Агент = строкаТЗ.РегистраторТорговыйПредставитель ;
ОбластьСтрока.Параметры.ЗаявкаСтр = строкаТЗ.ДокументНачисления;
ОбластьСтрока.Параметры.НаклСтр = строкаТЗ.РегистраторДокументПродажи ;
Если этаформа.ЭлементыФормы.ПолеВыбора1.Значение <> "Ruchnoy_bonus" Тогда
ОбластьСтрока.Параметры.БонусНаклСтр = ?(строка(строкаТЗ.БонуснаяЗаявка)="","",строкаТЗ.ДокументПродажиБонусногоЗаказа) ;
ИНАЧЕ
ОбластьСтрока.Параметры.БонусНаклСтр = строкаТЗ.ДокументПродажиБонусногоЗаказа ;
КонецЕсли;
ОбластьСтрока.Параметры.ЦенаЗакупки = строкаТЗ.ЦенаЗакупки*строкаТЗ.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент ;
ОбластьСтрока.Параметры.КоэффициентМеста = строкаТЗ.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент ;
ОбластьСтрока.Параметры.БазоваяЦена = строкаТЗ.БазоваяЦена*строкаТЗ.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент ; //СпрТовар.БазоваяЦена.получить(НаклСтр.датадок).ЦенаБазовая
ОбластьСтрока.Параметры.СтавкаНДС = строка(ОКР(строкаТЗ.ПроцентНДС))+" %"; //СпрТовар.СтавкаНДС
ТабДок.Вывести(ОбластьСтрока);
//++++++++
ПредыдущийДок = ТвояТекущаяСсылка;
ИтогПоДокументу = ИтогПоДокументу+1;
//------
Показать
(12) как то так примерно:
тзПоДокам=тз.Скопировать();
тзПоДокам.Свернуть("РегистраторДокументПродажи");
Для каждого СтрокаПоДокам из тзПоДокам Цикл
тзПоТекущемуДоку=тз.Скопировать(Новый Структура("РегистраторДокументПродажи",СтрокаПоДокам.РегистраторДокументПродажи));
Для каждого стрПоТекущемуДоку из тзПоТекущемуДоку Цикл
.....
//тут ваш основной цикл
.....
КонецЦикла;
СекцияВыводаИтогаПоДоку.Параметры.ИтогоПоДоку=тзПоТекущемуДоку.Количество();
ТабДок.Вывести(СекцияВыводаИтогаПоДоку);
КонецЦикла;
Показать
(20)
Для каждого строкаТЗ из ТЗ Цикл
//Если (строкаТЗ.ЧисловойНомерСтатусаКредитногоКонтроля = 1)И(ФлагРасчетВШтуках = Истина) И ПредыдущийДок <> Неопределено И ПредыдущийДок <> строкаТЗ.РегистраторДокументПродажи Тогда
Если (строкаТЗ.ЧисловойНомерСтатусаКредитногоКонтроля = 1)И(ФлагРасчетВШтуках = Истина) Тогда
// Если ПредыдущийДок <> Неопределено И ПредыдущийДок <> строкаТЗ.РегистраторДокументПродажи Тогда
// ОбластьСтрока.Параметры.НаклСтр = "Итог по документу" + ИтогПоДокументу;
// ТабДок.Вывести(ОбластьСтрока);
// ИтогПоДокументу = 0;
//КонецЕсли;
ОбластьСтрока.Параметры.Контрагент = строкаТЗ.РегистраторКонтрагент ;
ОбластьСтрока.Параметры.Адрес = строкаТЗ.АдресДоставки ;
ОбластьСтрока.Параметры.Территория = строкаТЗ.Территория ; //ЗаявкаСтр.ЧерезКого.Территория
ОбластьСтрока.Параметры.Артикул = строкаТЗ.Номенклатура.Артикул;
ОбластьСтрока.Параметры.Код = строкаТЗ.Номенклатура.Код;
ОбластьСтрока.Параметры.Наименование = строкаТЗ.Номенклатура;
ОбластьСтрока.Параметры.ЦенаДо = строкаТЗ.ИсходнаяЦена;
ОбластьСтрока.Параметры.КолДо = строкаТЗ.ИсходноеКоличество ;
ОбластьСтрока.Параметры.СуммаЗаказаДо = строкаТЗ.ИсходнаяЦена*строкаТЗ.ИсходноеКоличество ;
ОбластьСтрока.Параметры.ОтданоКол = строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество;
ОбластьСтрока.Параметры.ОтданоКГ = (строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество)*строкаТЗ.ВесШтуки ;
ОбластьСтрока.Параметры.ОтданоКГНетто = (строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество)*строкаТЗ.ВесШтуки ;
ОбластьСтрока.Параметры.ЦенаПосле = строкаТЗ.ЦенаПосле;
Если ОбластьСтрока.Параметры.ЦенаПосле <> 0 тогда
ОбластьСтрока.Параметры.Отгружено = строкаТЗ.КоличествоПосле;
ОбластьСтрока.Параметры.КГПосле = строкаТЗ.КоличествоПосле*строкаТЗ.ВесШтуки ;
КонецЕсли;
ОбластьСтрока.Параметры.СуммаОтгружено = строкаТЗ.ЦенаПосле *строкаТЗ.КоличествоПосле ;
Если ОбластьСтрока.Параметры.ЦенаПосле = 0 тогда
ОбластьСтрока.Параметры.ОтгруженоБонуса = строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество ;
ОбластьСтрока.Параметры.ОтгруженоБонусаРуб = (строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество)*строкаТЗ.БазоваяЦена;
ОбластьСтрока.Параметры.ОтгруженоБонусаКГ = (строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество)*строкаТЗ.ВесШтуки ;
ОбластьСтрока.Параметры.ОтгруженоБонусаКГНетто = (строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество)*строкаТЗ.ВесШтуки ;
КонецЕсли;
ОбластьСтрока.Параметры.ПредоставленоСкидки = ?(строкаТЗ.ИсходнаяЦена>0,(строкаТЗ.ИсходнаяЦена-строкаТЗ.ЦенаПосле) * строкаТЗ.КоличествоПосле,0) ;
ОбластьСтрока.Параметры.ПредоставленоСкидкиБезНДС = ОКР(ОбластьСтрока.Параметры.ПредоставленоСкидки/(строкаТЗ.ПроцентНДС/100+1),2) ; //окр(ПредоставленоСкидки/(СпрТовар.СтавкаНДС.Ставка/100+1),2)
ОбластьСтрока.Параметры.Агент = строкаТЗ.РегистраторТорговыйПредставитель ;
ОбластьСтрока.Параметры.ЗаявкаСтр = строкаТЗ.ДокументНачисления;
ОбластьСтрока.Параметры.НаклСтр = строкаТЗ.РегистраторДокументПродажи ;
Если этаформа.ЭлементыФормы.ПолеВыбора1.Значение <> "Ruchnoy_bonus" Тогда
ОбластьСтрока.Параметры.БонусНаклСтр = строкаТЗ.ДокументПродажиБонусногоЗаказа ;
ИНАЧЕ
ОбластьСтрока.Параметры.БонусНаклСтр = строкаТЗ.ДокументПродажиБонусногоЗаказа ;
КонецЕсли;
ОбластьСтрока.Параметры.ЦенаЗакупки = строкаТЗ.ЦенаЗакупки ;
ОбластьСтрока.Параметры.КоэффициентМеста = строкаТЗ.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент ;
ОбластьСтрока.Параметры.БазоваяЦена = строкаТЗ.БазоваяЦена ; //СпрТовар.БазоваяЦена.получить(НаклСтр.датадок).ЦенаБазовая
ОбластьСтрока.Параметры.СтавкаНДС = строка(ОКР(строкаТЗ.ПроцентНДС))+" %"; //СпрТовар.СтавкаНДС
ТабДок.Вывести(ОбластьСтрока);
//++++++++
//*****************************
ОбластьСтрока.Параметры.Контрагент = "" ;
ОбластьСтрока.Параметры.Адрес = "" ;
ОбластьСтрока.Параметры.Территория = "" ;
ОбластьСтрока.Параметры.Артикул = "" ;
ОбластьСтрока.Параметры.Код = "" ;
ОбластьСтрока.Параметры.Наименование = "" ;
ОбластьСтрока.Параметры.ЦенаДо = "" ;
ОбластьСтрока.Параметры.КолДо = "" ;
ОбластьСтрока.Параметры.СуммаЗаказаДо = "" ;
ОбластьСтрока.Параметры.ОтданоКол = "" ;
ОбластьСтрока.Параметры.ОтданоКГ = "" ;
ОбластьСтрока.Параметры.ОтданоКГНетто = "" ;
ОбластьСтрока.Параметры.ЦенаПосле = "" ;
ОбластьСтрока.Параметры.Отгружено = "" ;
ОбластьСтрока.Параметры.КГПосле = "" ;
ОбластьСтрока.Параметры.СуммаОтгружено = "" ;
ОбластьСтрока.Параметры.ОтгруженоБонуса = "" ;
ОбластьСтрока.Параметры.ОтгруженоБонусаРуб = "" ;
ОбластьСтрока.Параметры.ОтгруженоБонусаКГ = "" ;
ОбластьСтрока.Параметры.ОтгруженоБонусаКГНетто = "" ;
ОбластьСтрока.Параметры.ПредоставленоСкидки = "" ;
ОбластьСтрока.Параметры.ПредоставленоСкидкиБезНДС= "" ;
ОбластьСтрока.Параметры.Агент = "" ;
ОбластьСтрока.Параметры.ЗаявкаСтр = "" ;
ОбластьСтрока.Параметры.НаклСтр = "" ;
ОбластьСтрока.Параметры.БонусНаклСтр = "" ;
ОбластьСтрока.Параметры.ЦенаЗакупки = "" ;
ОбластьСтрока.Параметры.КоэффициентМеста = "" ;
ОбластьСтрока.Параметры.БазоваяЦена = "" ;
ОбластьСтрока.Параметры.СтавкаНДС = "" ;
//****************************
ИначеЕсли (строкаТЗ.ЧисловойНомерСтатусаКредитногоКонтроля <> 1)И(ФлагРасчетВШтуках = Истина) Тогда
ОбластьСтрокаВыделена.Параметры.Контрагент = строкаТЗ.РегистраторКонтрагент ;
ОбластьСтрокаВыделена.Параметры.Адрес = строкаТЗ.АдресДоставки ;
ОбластьСтрокаВыделена.Параметры.Территория = строкаТЗ.Территория ; //ЗаявкаСтр.ЧерезКого.Территория
ОбластьСтрокаВыделена.Параметры.Артикул = строкаТЗ.Номенклатура.Артикул;
ОбластьСтрокаВыделена.Параметры.Код = строкаТЗ.Номенклатура.Код;
ОбластьСтрокаВыделена.Параметры.Наименование = строкаТЗ.Номенклатура;
ОбластьСтрокаВыделена.Параметры.ЦенаДо = строкаТЗ.ИсходнаяЦена;
ОбластьСтрокаВыделена.Параметры.КолДо = строкаТЗ.ИсходноеКоличество ;
ОбластьСтрокаВыделена.Параметры.СуммаЗаказаДо = строкаТЗ.ИсходнаяЦена*строкаТЗ.ИсходноеКоличество ;
ОбластьСтрокаВыделена.Параметры.ОтданоКол = строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество;
ОбластьСтрокаВыделена.Параметры.ОтданоКГ = (строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество)*строкаТЗ.ВесШтуки ;
ОбластьСтрокаВыделена.Параметры.ОтданоКГНетто = (строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество)*строкаТЗ.ВесШтуки ;
ОбластьСтрокаВыделена.Параметры.ЦенаПосле = строкаТЗ.ЦенаПосле;
Если ОбластьСтрока.Параметры.ЦенаПосле <> 0 тогда
ОбластьСтрокаВыделена.Параметры.Отгружено = строкаТЗ.КоличествоПосле;
ОбластьСтрокаВыделена.Параметры.КГПосле = строкаТЗ.КоличествоПосле*строкаТЗ.ВесШтуки ;
КонецЕсли;
ОбластьСтрокаВыделена.Параметры.СуммаОтгружено = строкаТЗ.ЦенаПосле *строкаТЗ.КоличествоПосле ;
Если ОбластьСтрокаВыделена.Параметры.ЦенаПосле = 0 тогда
ОбластьСтрокаВыделена.Параметры.ОтгруженоБонуса = строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество ;
ОбластьСтрокаВыделена.Параметры.ОтгруженоБонусаРуб = (строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество)*строкаТЗ.БазоваяЦена;
ОбластьСтрокаВыделена.Параметры.ОтгруженоБонусаКГ = (строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество)*строкаТЗ.ВесШтуки ;
ОбластьСтрокаВыделена.Параметры.ОтгруженоБонусаКГНетто = (строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество)*строкаТЗ.ВесШтуки ;
КонецЕсли;
ОбластьСтрокаВыделена.Параметры.ПредоставленоСкидки = ?(строкаТЗ.ИсходнаяЦена>0,(строкаТЗ.ИсходнаяЦена-строкаТЗ.ЦенаПосле) * строкаТЗ.КоличествоПосле,0) ;
ОбластьСтрокаВыделена.Параметры.ПредоставленоСкидкиБезНДС = ОКР(ОбластьСтрокаВыделена.Параметры.ПредоставленоСкидки/(строкаТЗ.ПроцентНДС/100+1),2) ; //окр(ПредоставленоСкидки/(СпрТовар.СтавкаНДС.Ставка/100+1),2)
ОбластьСтрокаВыделена.Параметры.Агент = строкаТЗ.РегистраторТорговыйПредставитель ;
ОбластьСтрокаВыделена.Параметры.ЗаявкаСтр = строкаТЗ.ДокументНачисления;
ОбластьСтрокаВыделена.Параметры.НаклСтр = строкаТЗ.РегистраторДокументПродажи ;
Если этаформа.ЭлементыФормы.ПолеВыбора1.Значение <> "Ruchnoy_bonus" Тогда
ОбластьСтрокаВыделена.Параметры.БонусНаклСтр = ?(строка(строкаТЗ.БонуснаяЗаявка)="","",строкаТЗ.ДокументПродажиБонусногоЗаказа) ;
ИНАЧЕ
ОбластьСтрока.Параметры.БонусНаклСтр = строкаТЗ.ДокументПродажиБонусногоЗаказа ;
КонецЕсли;
ОбластьСтрокаВыделена.Параметры.ЦенаЗакупки = строкаТЗ.ЦенаЗакупки ;
ОбластьСтрокаВыделена.Параметры.КоэффициентМеста = строкаТЗ.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент ;
ОбластьСтрокаВыделена.Параметры.БазоваяЦена = строкаТЗ.БазоваяЦена ; //СпрТовар.БазоваяЦена.получить(НаклСтр.датадок).ЦенаБазовая
ОбластьСтрокаВыделена.Параметры.СтавкаНДС = строка(ОКР(строкаТЗ.ПроцентНДС))+" %"; //СпрТовар.СтавкаНДС
ТабДок.Вывести(ОбластьСтрокаВыделена);
//*****************************
ОбластьСтрокаВыделена.Параметры.Контрагент = "" ;
ОбластьСтрокаВыделена.Параметры.Адрес = "" ;
ОбластьСтрокаВыделена.Параметры.Территория = "" ;
ОбластьСтрокаВыделена.Параметры.Артикул = "" ;
ОбластьСтрокаВыделена.Параметры.Код = "" ;
ОбластьСтрокаВыделена.Параметры.Наименование = "" ;
ОбластьСтрокаВыделена.Параметры.ЦенаДо = "" ;
ОбластьСтрокаВыделена.Параметры.КолДо = "" ;
ОбластьСтрокаВыделена.Параметры.СуммаЗаказаДо = "" ;
ОбластьСтрокаВыделена.Параметры.ОтданоКол = "" ;
ОбластьСтрокаВыделена.Параметры.ОтданоКГ = "" ;
ОбластьСтрокаВыделена.Параметры.ОтданоКГНетто = "" ;
ОбластьСтрокаВыделена.Параметры.ЦенаПосле = "" ;
ОбластьСтрокаВыделена.Параметры.Отгружено = "" ;
ОбластьСтрокаВыделена.Параметры.КГПосле = "" ;
ОбластьСтрокаВыделена.Параметры.СуммаОтгружено = "" ;
ОбластьСтрокаВыделена.Параметры.ОтгруженоБонуса = "" ;
ОбластьСтрокаВыделена.Параметры.ОтгруженоБонусаРуб = "" ;
ОбластьСтрокаВыделена.Параметры.ОтгруженоБонусаКГ = "" ;
ОбластьСтрокаВыделена.Параметры.ОтгруженоБонусаКГНетто = "" ;
ОбластьСтрокаВыделена.Параметры.ПредоставленоСкидки = "" ;
ОбластьСтрокаВыделена.Параметры.ПредоставленоСкидкиБезНДС= "" ;
ОбластьСтрокаВыделена.Параметры.Агент = "" ;
ОбластьСтрокаВыделена.Параметры.ЗаявкаСтр = "" ;
ОбластьСтрокаВыделена.Параметры.НаклСтр = "" ;
ОбластьСтрокаВыделена.Параметры.БонусНаклСтр = "" ;
ОбластьСтрокаВыделена.Параметры.ЦенаЗакупки = "" ;
ОбластьСтрокаВыделена.Параметры.КоэффициентМеста = "" ;
ОбластьСтрокаВыделена.Параметры.БазоваяЦена = "" ;
ОбластьСтрокаВыделена.Параметры.СтавкаНДС = "" ;
//****************************
ИначеЕсли (строкаТЗ.ЧисловойНомерСтатусаКредитногоКонтроля = 1)И(ФлагРасчетВместах = Истина) Тогда
ОбластьСтрока.Параметры.Контрагент = строкаТЗ.РегистраторКонтрагент ;
ОбластьСтрока.Параметры.Адрес = строкаТЗ.АдресДоставки ;
ОбластьСтрока.Параметры.Территория = строкаТЗ.Территория ; //ЗаявкаСтр.ЧерезКого.Территория
ОбластьСтрока.Параметры.Артикул = строкаТЗ.Номенклатура.Артикул;
ОбластьСтрока.Параметры.Код = строкаТЗ.Номенклатура.Код;
ОбластьСтрока.Параметры.Наименование = строкаТЗ.Номенклатура;
ОбластьСтрока.Параметры.ЦенаДо = строкаТЗ.ИсходнаяЦена *строкаТЗ.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент; //*
ОбластьСтрока.Параметры.КолДо = ОКР(строкаТЗ.ИсходноеКоличество /строкаТЗ.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент,2) ; //*
ОбластьСтрока.Параметры.СуммаЗаказаДо = строкаТЗ.ИсходнаяЦена*строкаТЗ.ИсходноеКоличество ;
ОбластьСтрока.Параметры.ОтданоКол = (строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество)/строкаТЗ.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент; //*
ОбластьСтрока.Параметры.ОтданоКГ = (строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество)*строкаТЗ.ВесШтуки ;
ОбластьСтрока.Параметры.ОтданоКГНетто = (строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество)*строкаТЗ.ВесШтуки ;
ОбластьСтрока.Параметры.ЦенаПосле = строкаТЗ.ЦенаПосле*строкаТЗ.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент; //*
Если ОбластьСтрока.Параметры.ЦенаПосле <> 0 тогда
ОбластьСтрока.Параметры.Отгружено = ОКР(строкаТЗ.КоличествоПосле/строкаТЗ.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент); //*
ОбластьСтрока.Параметры.КГПосле = строкаТЗ.КоличествоПосле*строкаТЗ.ВесШтуки ;
КонецЕсли;
ОбластьСтрока.Параметры.СуммаОтгружено = строкаТЗ.ЦенаПосле *строкаТЗ.КоличествоПосле ;
Если ОбластьСтрока.Параметры.ЦенаПосле = 0 тогда
ОбластьСтрока.Параметры.ОтгруженоБонуса = (строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество)/строкаТЗ.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент ;
ОбластьСтрока.Параметры.ОтгруженоБонусаРуб = (строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество)*строкаТЗ.БазоваяЦена;
ОбластьСтрока.Параметры.ОтгруженоБонусаКГ = (строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество)*строкаТЗ.ВесШтуки ;
ОбластьСтрока.Параметры.ОтгруженоБонусаКГНетто = (строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество)*строкаТЗ.ВесШтуки ;
КонецЕсли;
ОбластьСтрока.Параметры.ПредоставленоСкидки = ?(строкаТЗ.ИсходнаяЦена>0,(строкаТЗ.ИсходнаяЦена-строкаТЗ.ЦенаПосле) * строкаТЗ.КоличествоПосле,0) ;
ОбластьСтрока.Параметры.ПредоставленоСкидкиБезНДС = ОКР(ОбластьСтрока.Параметры.ПредоставленоСкидки/(строкаТЗ.ПроцентНДС/100+1),2) ; //окр(ПредоставленоСкидки/(СпрТовар.СтавкаНДС.Ставка/100+1),2)
ОбластьСтрока.Параметры.Агент = строкаТЗ.РегистраторТорговыйПредставитель ;
ОбластьСтрока.Параметры.ЗаявкаСтр = строкаТЗ.ДокументНачисления;
ОбластьСтрока.Параметры.НаклСтр = строкаТЗ.РегистраторДокументПродажи ;
Если этаформа.ЭлементыФормы.ПолеВыбора1.Значение <> "Ruchnoy_bonus" Тогда
ОбластьСтрока.Параметры.БонусНаклСтр = ?(строка(строкаТЗ.БонуснаяЗаявка)="","",строкаТЗ.ДокументПродажиБонусногоЗаказа) ;
ИНАЧЕ
ОбластьСтрока.Параметры.БонусНаклСтр = строкаТЗ.ДокументПродажиБонусногоЗаказа ;
КонецЕсли;
ОбластьСтрока.Параметры.ЦенаЗакупки = строкаТЗ.ЦенаЗакупки*строкаТЗ.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент ;
ОбластьСтрока.Параметры.КоэффициентМеста = строкаТЗ.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент ;
ОбластьСтрока.Параметры.БазоваяЦена = строкаТЗ.БазоваяЦена*строкаТЗ.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент ; //СпрТовар.БазоваяЦена.получить(НаклСтр.датадок).ЦенаБазовая
ОбластьСтрока.Параметры.СтавкаНДС = строка(ОКР(строкаТЗ.ПроцентНДС))+" %"; //СпрТовар.СтавкаНДС
ТабДок.Вывести(ОбластьСтрока);
//*****************************
ОбластьСтрока.Параметры.Контрагент = "" ;
ОбластьСтрока.Параметры.Адрес = "" ;
ОбластьСтрока.Параметры.Территория = "" ;
ОбластьСтрока.Параметры.Артикул = "" ;
ОбластьСтрока.Параметры.Код = "" ;
ОбластьСтрока.Параметры.Наименование = "" ;
ОбластьСтрока.Параметры.ЦенаДо = "" ;
ОбластьСтрока.Параметры.КолДо = "" ;
ОбластьСтрока.Параметры.СуммаЗаказаДо = "" ;
ОбластьСтрока.Параметры.ОтданоКол = "" ;
ОбластьСтрока.Параметры.ОтданоКГ = "" ;
ОбластьСтрока.Параметры.ОтданоКГНетто = "" ;
ОбластьСтрока.Параметры.ЦенаПосле = "" ;
ОбластьСтрока.Параметры.Отгружено = "" ;
ОбластьСтрока.Параметры.КГПосле = "" ;
ОбластьСтрока.Параметры.СуммаОтгружено = "" ;
ОбластьСтрока.Параметры.ОтгруженоБонуса = "" ;
ОбластьСтрока.Параметры.ОтгруженоБонусаРуб = "" ;
ОбластьСтрока.Параметры.ОтгруженоБонусаКГ = "" ;
ОбластьСтрока.Параметры.ОтгруженоБонусаКГНетто = "" ;
ОбластьСтрока.Параметры.ПредоставленоСкидки = "" ;
ОбластьСтрока.Параметры.ПредоставленоСкидкиБезНДС= "" ;
ОбластьСтрока.Параметры.Агент = "" ;
ОбластьСтрока.Параметры.ЗаявкаСтр = "" ;
ОбластьСтрока.Параметры.НаклСтр = "" ;
ОбластьСтрока.Параметры.БонусНаклСтр = "" ;
ОбластьСтрока.Параметры.ЦенаЗакупки = "" ;
ОбластьСтрока.Параметры.КоэффициентМеста = "" ;
ОбластьСтрока.Параметры.БазоваяЦена = "" ;
ОбластьСтрока.Параметры.СтавкаНДС = "" ;
//****************************
ИначеЕсли (строкаТЗ.ЧисловойНомерСтатусаКредитногоКонтроля <> 1)И(ФлагРасчетВместах = Истина) Тогда
ОбластьСтрокаВыделена.Параметры.Контрагент = строкаТЗ.РегистраторКонтрагент ;
ОбластьСтрокаВыделена.Параметры.Адрес = строкаТЗ.АдресДоставки ;
ОбластьСтрокаВыделена.Параметры.Территория = строкаТЗ.Территория ; //ЗаявкаСтр.ЧерезКого.Территория
ОбластьСтрокаВыделена.Параметры.Артикул = строкаТЗ.Номенклатура.Артикул;
ОбластьСтрокаВыделена.Параметры.Код = строкаТЗ.Номенклатура.Код;
ОбластьСтрокаВыделена.Параметры.Наименование = строкаТЗ.Номенклатура;
ОбластьСтрокаВыделена.Параметры.ЦенаДо = строкаТЗ.ИсходнаяЦена*строкаТЗ.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент;
ОбластьСтрокаВыделена.Параметры.КолДо = ОКР(строкаТЗ.ИсходноеКоличество/строкаТЗ.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент,2) ;
ОбластьСтрокаВыделена.Параметры.СуммаЗаказаДо = строкаТЗ.ИсходнаяЦена*строкаТЗ.ИсходноеКоличество ;
ОбластьСтрокаВыделена.Параметры.ОтданоКол = (строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество)/строкаТЗ.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент;
ОбластьСтрокаВыделена.Параметры.ОтданоКГ = (строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество)*строкаТЗ.ВесШтуки ;
ОбластьСтрокаВыделена.Параметры.ОтданоКГНетто = (строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество)*строкаТЗ.ВесШтуки ;
ОбластьСтрокаВыделена.Параметры.ЦенаПосле = строкаТЗ.ЦенаПосле*строкаТЗ.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент;
Если ОбластьСтрока.Параметры.ЦенаПосле <> 0 тогда
ОбластьСтрокаВыделена.Параметры.Отгружено = строкаТЗ.КоличествоПосле/строкаТЗ.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент;
ОбластьСтрокаВыделена.Параметры.КГПосле = строкаТЗ.КоличествоПосле*строкаТЗ.ВесШтуки ;
КонецЕсли;
ОбластьСтрокаВыделена.Параметры.СуммаОтгружено = строкаТЗ.ЦенаПосле *строкаТЗ.КоличествоПосле ;
Если ОбластьСтрокаВыделена.Параметры.ЦенаПосле = 0 тогда
ОбластьСтрокаВыделена.Параметры.ОтгруженоБонуса = (строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество)/строкаТЗ.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент ;
ОбластьСтрокаВыделена.Параметры.ОтгруженоБонусаРуб = (строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество)*строкаТЗ.БазоваяЦена;
ОбластьСтрокаВыделена.Параметры.ОтгруженоБонусаКГ = (строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество)*строкаТЗ.ВесШтуки ;
ОбластьСтрокаВыделена.Параметры.ОтгруженоБонусаКГНетто = (строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество)*строкаТЗ.ВесШтуки ;
КонецЕсли;
ОбластьСтрокаВыделена.Параметры.ПредоставленоСкидки = ?(строкаТЗ.ИсходнаяЦена>0,(строкаТЗ.ИсходнаяЦена-строкаТЗ.ЦенаПосле) * строкаТЗ.КоличествоПосле,0) ;
ОбластьСтрокаВыделена.Параметры.ПредоставленоСкидкиБезНДС = ОКР(ОбластьСтрокаВыделена.Параметры.ПредоставленоСкидки/(строкаТЗ.ПроцентНДС/100+1),2) ; //окр(ПредоставленоСкидки/(СпрТовар.СтавкаНДС.Ставка/100+1),2)
ОбластьСтрокаВыделена.Параметры.Агент = строкаТЗ.РегистраторТорговыйПредставитель ;
ОбластьСтрокаВыделена.Параметры.ЗаявкаСтр = строкаТЗ.ДокументНачисления;
ОбластьСтрокаВыделена.Параметры.НаклСтр = строкаТЗ.РегистраторДокументПродажи ;
Если этаформа.ЭлементыФормы.ПолеВыбора1.Значение <> "Ruchnoy_bonus" Тогда
ОбластьСтрокаВыделена.Параметры.БонусНаклСтр = ?(строка(строкаТЗ.БонуснаяЗаявка)="","",строкаТЗ.ДокументПродажиБонусногоЗаказа) ;
ИНАЧЕ
ОбластьСтрока.Параметры.БонусНаклСтр = строкаТЗ.ДокументПродажиБонусногоЗаказа ;
КонецЕсли;
ОбластьСтрокаВыделена.Параметры.ЦенаЗакупки = строкаТЗ.ЦенаЗакупки *строкаТЗ.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент;
ОбластьСтрокаВыделена.Параметры.КоэффициентМеста = строкаТЗ.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент ;
ОбластьСтрокаВыделена.Параметры.БазоваяЦена = строкаТЗ.БазоваяЦена *строкаТЗ.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент; //СпрТовар.БазоваяЦена.получить(НаклСтр.датадок).ЦенаБазовая
ОбластьСтрокаВыделена.Параметры.СтавкаНДС = строка(ОКР(строкаТЗ.ПроцентНДС))+" %"; //СпрТовар.СтавкаНДС
СуммаЗаказа=строкаТЗ.ИсходнаяЦена*строкаТЗ.ИсходноеКоличество;
ОбластьСтрока.Параметры.РОИ = ((СуммаЗаказа-строкаТЗ.ОтгруженоБонусаРуб)/строкаТЗ.ОтгруженоБонусаРуб*100)/10;
ТабДок.Вывести(ОбластьСтрокаВыделена);
//*****************************
ОбластьСтрокаВыделена.Параметры.Контрагент = "" ;
ОбластьСтрокаВыделена.Параметры.Адрес = "" ;
ОбластьСтрокаВыделена.Параметры.Территория = "" ;
ОбластьСтрокаВыделена.Параметры.Артикул = "" ;
ОбластьСтрокаВыделена.Параметры.Код = "" ;
ОбластьСтрокаВыделена.Параметры.Наименование = "" ;
ОбластьСтрокаВыделена.Параметры.ЦенаДо = "" ;
ОбластьСтрокаВыделена.Параметры.КолДо = "" ;
ОбластьСтрокаВыделена.Параметры.СуммаЗаказаДо = "" ;
ОбластьСтрокаВыделена.Параметры.ОтданоКол = "" ;
ОбластьСтрокаВыделена.Параметры.ОтданоКГ = "" ;
ОбластьСтрокаВыделена.Параметры.ОтданоКГНетто = "" ;
ОбластьСтрокаВыделена.Параметры.ЦенаПосле = "" ;
ОбластьСтрокаВыделена.Параметры.Отгружено = "" ;
ОбластьСтрокаВыделена.Параметры.КГПосле = "" ;
ОбластьСтрокаВыделена.Параметры.СуммаОтгружено = "" ;
ОбластьСтрокаВыделена.Параметры.ОтгруженоБонуса = "" ;
ОбластьСтрокаВыделена.Параметры.ОтгруженоБонусаРуб = "" ;
ОбластьСтрокаВыделена.Параметры.ОтгруженоБонусаКГ = "" ;
ОбластьСтрокаВыделена.Параметры.ОтгруженоБонусаКГНетто = "" ;
ОбластьСтрокаВыделена.Параметры.ПредоставленоСкидки = "" ;
ОбластьСтрокаВыделена.Параметры.ПредоставленоСкидкиБезНДС= "" ;
ОбластьСтрокаВыделена.Параметры.Агент = "" ;
ОбластьСтрокаВыделена.Параметры.ЗаявкаСтр = "" ;
ОбластьСтрокаВыделена.Параметры.НаклСтр = "" ;
ОбластьСтрокаВыделена.Параметры.БонусНаклСтр = "" ;
ОбластьСтрокаВыделена.Параметры.ЦенаЗакупки = "" ;
ОбластьСтрокаВыделена.Параметры.КоэффициентМеста = "" ;
ОбластьСтрокаВыделена.Параметры.БазоваяЦена = "" ;
ОбластьСтрокаВыделена.Параметры.СтавкаНДС = "" ;
//****************************
КонецЕсли;
Если ФлагРасчетВШтуках = Истина Тогда
ИтогоБонус = ИтогоБонус+ строкаТЗ.КоличествоПосле - строкаТЗ.ИсходноеКоличество;
ИначеЕсли ФлагРасчетВместах = Истина Тогда
ИтогоБонус = ИтогоБонус+ (строкаТЗ.КоличествоПосле - строкаТЗ.ИсходноеКоличество)/строкаТЗ.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент;
КонецЕсли;
ИтогоРазница = ИтогоРазница+(строкаТЗ.ИсходнаяЦена*строкаТЗ.КоличествоПосле-строкаТЗ.ЦенаПосле*строкаТЗ.КоличествоПосле);
ИтогСуммаБонусВсего = ИтогСуммаБонусВсего +(строкаТЗ.ЦенаПосле * строкаТЗ.КоличествоПосле);
ИтогСуммаОтгруженоВсего = ИтогСуммаОтгруженоВсего + (строкаТЗ.ЦенаПосле *строкаТЗ.КоличествоПослеБезБонуса);
КонецЦикла;
КонецЦикла;
ОбластьСтрокаРОИ.Параметры.ИтогРОИ=тзПоТекущемуДоку.Количество();
ТабДок.Вывести(ОбластьСтрокаРОИ);
КонецЦикла;
ТЗ2 = новый таблицазначений;
ТЗ2 = тз.Скопировать();
ТЗ2.Свернуть("ДокументНачисления","");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
ОбластьПодвал.Параметры.ИттогоЗаявок = ТЗ2.Количество();
ОбластьПодвал.Параметры.ИтогоБонус = ИтогоБонус;
ОбластьПодвал.Параметры.ИтогоРазница = ИтогоРазница;
ОбластьПодвал.Параметры.ИтогСуммаБонусВсего = ИтогСуммаБонусВсего;
ОбластьПодвал.Параметры.ИтогСуммаОтгруженоВсего = ИтогСуммаОтгруженоВсего;
ТабДок.Вывести(ОбластьПодвал);
ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Ложь;
ТабДок.ТолькоПросмотр = Истина;
ТабДок.ОтображатьЗаголовки = Истина;
ТабДок.Показать("Отчет по акции "+этаформа.ЭлементыФормы.ПолеВыбора1.Значение);
Показать
(27)Вот общая структура кода, удалил много строк кода для наглядности.Отладчиком на что обратить внимание, чтобы понять почему дублируются строки?
тзПоДокам=тз.Скопировать();
тзПоДокам.Свернуть("РегистраторДокументПродажи");
Для каждого СтрокаПоДокам из тзПоДокам Цикл
тзПоТекущемуДоку=тз.Скопировать(Новый Структура("РегистраторДокументПродажи",СтрокаПоДокам.РегистраторДокументПродажи));
Для каждого стрПоТекущемуДоку из тзПоТекущемуДоку Цикл
Для каждого строкаТЗ из ТЗ Цикл
Если (строкаТЗ.ЧисловойНомерСтатусаКредитногоКонтроля = 1)И(ФлагРасчетВШтуках = Истина) Тогда
КонецЕсли;
Если ОбластьСтрока.Параметры.ЦенаПосле = 0 тогда
КонецЕсли;
Если этаформа.ЭлементыФормы.ПолеВыбора1.Значение <> "Ruchnoy_bonus" Тогда
ОбластьСтрока.Параметры.БонусНаклСтр = строкаТЗ.ДокументПродажиБонусногоЗаказа ;
ИНАЧЕ
ОбластьСтрока.Параметры.БонусНаклСтр = строкаТЗ.ДокументПродажиБонусногоЗаказа ;
КонецЕсли;
ТабДок.Вывести(ОбластьСтрока);
ИначеЕсли (строкаТЗ.ЧисловойНомерСтатусаКредитногоКонтроля <> 1)И(ФлагРасчетВШтуках = Истина) Тогда
Если ОбластьСтрока.Параметры.ЦенаПосле <> 0 тогда
КонецЕсли;
Если ОбластьСтрокаВыделена.Параметры.ЦенаПосле = 0 тогда
КонецЕсли;
Если этаформа.ЭлементыФормы.ПолеВыбора1.Значение <> "Ruchnoy_bonus" Тогда
ИНАЧЕ
КонецЕсли;
ТабДок.Вывести(ОбластьСтрокаВыделена);
ИначеЕсли (строкаТЗ.ЧисловойНомерСтатусаКредитногоКонтроля = 1)И(ФлагРасчетВместах = Истина) Тогда
ТабДок.Вывести(ОбластьСтрока);
ИначеЕсли (строкаТЗ.ЧисловойНомерСтатусаКредитногоКонтроля <> 1)И(ФлагРасчетВместах = Истина) Тогда
ТабДок.Вывести(ОбластьСтрокаВыделена);
КонецЕсли;
Если ФлагРасчетВШтуках = Истина Тогда
ИтогоБонус = ИтогоБонус+ строкаТЗ.КоличествоПосле - строкаТЗ.ИсходноеКоличество;
ИначеЕсли ФлагРасчетВместах = Истина Тогда
ИтогоБонус = ИтогоБонус+ (строкаТЗ.КоличествоПосле - строкаТЗ.ИсходноеКоличество)/строкаТЗ.Номенклатура.ЕдиницаИзмеренияМест.Коэффициент;
КонецЕсли;
ИтогоРазница = ИтогоРазница+(строкаТЗ.ИсходнаяЦена*строкаТЗ.КоличествоПосле-строкаТЗ.ЦенаПосле*строкаТЗ.КоличествоПосле);
ИтогСуммаБонусВсего = ИтогСуммаБонусВсего +(строкаТЗ.ЦенаПосле * строкаТЗ.КоличествоПосле);
ИтогСуммаОтгруженоВсего = ИтогСуммаОтгруженоВсего + (строкаТЗ.ЦенаПосле *строкаТЗ.КоличествоПослеБезБонуса);
КонецЦикла;
КонецЦикла;
//ОбластьСтрока.Параметры.РОИ=тзПоТекущемуДоку.Количество();
СуммаЗаказаДо = строкаТЗ.ИсходнаяЦена*строкаТЗ.ИсходноеКоличество ;
ОтгруженоБонусаРуб = (строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество)*строкаТЗ.БазоваяЦена;
ПредоставленоСкидки = ?(строкаТЗ.ИсходнаяЦена>0,(строкаТЗ.ИсходнаяЦена-строкаТЗ.ЦенаПосле) * строкаТЗ.КоличествоПосле,0) ;
//ОбластьСтрокаРОИ.Параметры.ИтогРОИ=тзПоТекущемуДоку.Количество();
Если ОтгруженоБонусаРуб<>0 Тогда
ОбластьСтрока.Параметры.РОИ=Формат(((СуммаЗаказаДо-ОтгруженоБонусаРуб)/СуммаЗаказаДо*100)/10,"ЧЦ=10; ЧДЦ=3");
Иначе
ОбластьСтрока.Параметры.РОИ=Формат(((СуммаЗаказаДо-ПредоставленоСкидки)/ПредоставленоСкидки*100),"ЧЦ=10; ЧДЦ=3");
КонецЕсли;
ТабДок.Вывести(ОбластьСтрока);
КонецЦикла;
Показать
(42)
таким должен быть код?
таким должен быть код?
тзПоДокам=тз.Скопировать();
тзПоДокам.Свернуть("РегистраторДокументПродажи,ЧисловойНомерСтатусаКредитногоКонтроля,РегистраторКонтрагент,Номенклатура,АдресДоставки,Территория,ДокументПродажиБонусногоЗаказа,РегистраторТорговыйПредставитель,ДокументНачисления","ИсходнаяЦена,ИсходноеКоличество,КоличествоПосле,ЦенаПосле,БазоваяЦена,ВесШтуки,ПроцентНДС,ЦенаЗакупки,КоличествоПослеБезБонуса");
Для каждого СтрокаПоДокам из тзПоДокам Цикл
тзПоТекущемуДоку=тз.Скопировать(Новый Структура("РегистраторДокументПродажи",СтрокаПоДокам.РегистраторДокументПродажи));
тзПоТекущемуДоку.Свернуть("РегистраторДокументПродажи","ИсходнаяЦена,ИсходноеКоличество,КоличествоПосле,ЦенаПосле,БазоваяЦена");
Для каждого стрПоТекущемуДоку из тзПоТекущемуДоку Цикл
.....
//тут ваш основной цикл
.....
КонецЦикла;
СуммаЗаказаДо = стрПоТекущемуДоку.ИсходнаяЦена*стрПоТекущемуДоку.ИсходноеКоличество ;
ОтгруженоБонусаРуб = (стрПоТекущемуДоку.КоличествоПосле-стрПоТекущемуДоку.ИсходноеКоличество)*стрПоТекущемуДоку.БазоваяЦена;
ПредоставленоСкидки = ?(стрПоТекущемуДоку.ИсходнаяЦена>0,(стрПоТекущемуДоку.ИсходнаяЦена-стрПоТекущемуДоку.ЦенаПосле) * стрПоТекущемуДоку.КоличествоПосле,0) ;
Если ОтгруженоБонусаРуб<>0 Тогда
ОбластьСтрокаРОИ.Параметры.ИтогРОИ=Формат(((СуммаЗаказаДо-ОтгруженоБонусаРуб)/СуммаЗаказаДо*100)/10,"ЧЦ=10; ЧДЦ=3");
Иначе
ОбластьСтрокаРОИ.Параметры.ИтогРОИ=Формат(((СуммаЗаказаДо-ПредоставленоСкидки)/ПредоставленоСкидки*100),"ЧЦ=10; ЧДЦ=3");
КонецЕсли;
ТабДок.Вывести(ОбластьСтрокаРОИ);
КонецЦикла;
Показать
(43)
СуммаЗаказаДо
ОтгруженоБонусаРуб
ПредоставленоСкидки
Вот эти переменные у вас вычисляются по строке документа, но выводятся почему то в другую область, как я понимаю, в область подитога по документам. Тут нужно пересмотреть алгоритм, что такое ИтогРОИ, как он должен вычисляться? по каждой строке или это какой то итог по всем строкам текущего дока?
Если второе, то правильно наверное писать так:
СуммаЗаказаДо = тзПоТекущемуДоку.Итог("ИсходнаяЦена")*тзПоТекущемуДоку.Итог("ИсходноеКоличество");
СуммаЗаказаДо
ОтгруженоБонусаРуб
ПредоставленоСкидки
Вот эти переменные у вас вычисляются по строке документа, но выводятся почему то в другую область, как я понимаю, в область подитога по документам. Тут нужно пересмотреть алгоритм, что такое ИтогРОИ, как он должен вычисляться? по каждой строке или это какой то итог по всем строкам текущего дока?
Если второе, то правильно наверное писать так:
СуммаЗаказаДо = тзПоТекущемуДоку.Итог("ИсходнаяЦена")*тзПоТекущемуДоку.Итог("ИсходноеКоличество");
(44)ИтогРОИ считается по этой формуле:
ROI = ((Сумма заказа, руб. с НДС - Предоставлено Скидки, руб с НДС)/Предоставлено Скидки, руб с НДС*100)/100
И должен считаться по каждой группе документов ,например если "документ1" три , то должен считать по итогу этих документов и выводить одно значение, я не выводить в каждой строке "документ1"
ROI = ((Сумма заказа, руб. с НДС - Предоставлено Скидки, руб с НДС)/Предоставлено Скидки, руб с НДС*100)/100
И должен считаться по каждой группе документов ,например если "документ1" три , то должен считать по итогу этих документов и выводить одно значение, я не выводить в каждой строке "документ1"
(24)
сделал так, выводит одно и тоже число в итоге документов. Они должны быть разными
СуммаЗаказаДо = строкаТЗ.ИсходнаяЦена*строкаТЗ.ИсходноеКоличество ;
ОтгруженоБонусаРуб = (строкаТЗ.КоличествоПосле-строкаТЗ.ИсходноеКоличество)*строкаТЗ.БазоваяЦена;
ПредоставленоСкидки = ?(строкаТЗ.ИсходнаяЦена>0,(строкаТЗ.ИсходнаяЦена-строкаТЗ.ЦенаПосле) * строкаТЗ.КоличествоПосле,0) ;
//ОбластьСтрокаРОИ.Параметры.ИтогРОИ=тзПоТекущемуДоку.Количество();
Если ОтгруженоБонусаРуб<>0 Тогда
ОбластьСтрокаРОИ.Параметры.ИтогРОИ=Формат(((СуммаЗаказаДо-ОтгруженоБонусаРуб)/СуммаЗаказаДо*100)/10,"ЧЦ=10; ЧДЦ=3");
Иначе
ОбластьСтрокаРОИ.Параметры.ИтогРОИ=Формат(((СуммаЗаказаДо-ПредоставленоСкидки)/ПредоставленоСкидки*100),"ЧЦ=10; ЧДЦ=3");
ТабДок.Вывести(ОбластьСтрокаРОИ);
КонецЕсли;
КонецЦикла;
ТЗ2 = новый таблицазначений;
ТЗ2 = тз.Скопировать();
ТЗ2.Свернуть("ДокументНачисления","");
Показатьсделал так, выводит одно и тоже число в итоге документов. Они должны быть разными
(29)не понял
эти строки уже были в коде.В начале какого цикла?большого?
тз2- это не этот тз?:
ТЗ2 = новый таблицазначений;
ТЗ2 = тз.Скопировать();
ТЗ2.Свернуть("ДокументНачисления","");
тз2- это не этот тз?:
ТЗ2 = новый таблицазначений;
ТЗ2 = тз.Скопировать();
ТЗ2.Свернуть("ДокументНачисления","");
(31) вот так я предлагал, сначала делаем таблицу по документам, обходим ее по циклу, внутри этого цикла берем таблицу с отбором по текущему доку, обходим ее и выводим "ОбластьСтрока"
тзПоДокам=тз.Скопировать();
тзПоДокам.Свернуть("РегистраторДокументПродажи");
Для каждого СтрокаПоДокам из тзПоДокам Цикл
тзПоТекущемуДоку=тз.Скопировать(Новый Структура("РегистраторДокументПродажи",СтрокаПоДокам.РегистраторДокументПродажи));
Для каждого стрПоТекущемуДоку из тзПоТекущемуДоку Цикл
.....
//тут ваш основной цикл
ТабДок.Вывести(ОбластьСтрока);
.....
КонецЦикла;
СекцияВыводаИтогаПоДоку.Параметры.ИтогоПоДоку=тзПоТекущемуДоку.Количество();
ТабДок.Вывести(СекцияВыводаИтогаПоДоку);
КонецЦикла;
Показать
я не понимаю, как в макете сделать так:
ДОКУМЕНТ КОЛИЧЕСТВО
документ 1 1
документ 1 5
документ 1 2
документ 1 4
документ 1 7
Итог по документу 1 19
документ 2 1
документ 2 2
документ 2 3
документ 2 4
документ 2 5
Итог по документу 2 15
документ 3 2
документ 3 2
документ 3 2
документ 3 3
Итог по документу 3 9
ДОКУМЕНТ КОЛИЧЕСТВО
документ 1 1
документ 1 5
документ 1 2
документ 1 4
документ 1 7
Итог по документу 1 19
документ 2 1
документ 2 2
документ 2 3
документ 2 4
документ 2 5
Итог по документу 2 15
документ 3 2
документ 3 2
документ 3 2
документ 3 3
Итог по документу 3 9
(9)
Как-то так:
Как-то так:
ПредыдущийДок = Неопределено;
ИтогПоДокументу = 0;
Пока что-то там Цикл
Если ПредыдущийДок <> Неопределено И ПредыдущийДок <> ТвояТекущаяСсылка Тогда
ТвояОбласть.Параметры.ИмяПараметраТвоегоДокумента = "Итог по документу" + ИтогПоДокументу;
ТабДок.Вывести(ТвояОбласть);
ИтогПоДокументу = 0;
КонецЕсли
...
ТвояОбласть.Параметры.ИмяПараметраТвоегоДокумента = ТвояТекущаяСсылка;
ТабДок.Вывести(ТвояОбласть);
...
ПредыдущийДок = ТвояТекущаяСсылка;
ИтогПоДокументу = ИтогПоДокументу+1;
КонецЦикла
Показать
Если ОтгруженоБонусаРуб<>0 Тогда
ОбластьСтрокаРОИ.Параметры.ИтогРОИ=Формат(((СуммаЗаказаДо-ОтгруженоБонусаРуб)/СуммаЗаказаДо*100)/10,"ЧЦ=10; ЧДЦ=3");
ИтогоРОИ=ИтогоРОИ+((СуммаЗаказаДо-ОтгруженоБонусаРуб)/СуммаЗаказаДо*100)/10;
Иначе
ОбластьСтрокаРОИ.Параметры.ИтогРОИ=Формат(((СуммаЗаказаДо-ПредоставленоСкидки)/ПредоставленоСкидки*100),"ЧЦ=10; ЧДЦ=3");
ИтогоРОИ=ИтогоРОИ+((СуммаЗаказаДо-ПредоставленоСкидки)/ПредоставленоСкидки*100);
КонецЕсли;
ОбластьСтрокаРОИ.Параметры.ИтогРОИ=Формат(((СуммаЗаказаДо-ОтгруженоБонусаРуб)/СуммаЗаказаДо*100)/10,"ЧЦ=10; ЧДЦ=3");
ИтогоРОИ=ИтогоРОИ+((СуммаЗаказаДо-ОтгруженоБонусаРуб)/СуммаЗаказаДо*100)/10;
Иначе
ОбластьСтрокаРОИ.Параметры.ИтогРОИ=Формат(((СуммаЗаказаДо-ПредоставленоСкидки)/ПредоставленоСкидки*100),"ЧЦ=10; ЧДЦ=3");
ИтогоРОИ=ИтогоРОИ+((СуммаЗаказаДо-ПредоставленоСкидки)/ПредоставленоСкидки*100);
КонецЕсли;
(61)вообще по идеи ,после группы идентичных документах должна идти строка , где заполнена только колонка ROI,как на скрине.Но так не получается сделать.
Вообще по-хорошему нужно сделать так, как на картинке, но не понимаю , как так сделать. Если так сделать, то и итог будет считать правильно.
Прикладываю саму обработку,может поможет понять в чем косячу)
Вообще по-хорошему нужно сделать так, как на картинке, но не понимаю , как так сделать. Если так сделать, то и итог будет считать правильно.
Прикладываю саму обработку,может поможет понять в чем косячу)
Прикрепленные файлы:
(65) я поменял там где написано //ИЗМЕНЕНО.
тзПоДокам=тз.Скопировать();
//тзПоДокам.Свернуть("РегистраторДокументПродажи,ЧисловойНомерСтатусаКредитногоКонтроля,РегистраторКонтрагент,Номенклатура,АдресДоставки,Территория,ДокументПродажиБонусногоЗаказа,РегистраторТорговыйПредставитель,ДокументНачисления","ИсходнаяЦена,ИсходноеКоличество,КоличествоПосле,ЦенаПосле,БазоваяЦена,ВесШтуки,ПроцентНДС,ЦенаЗакупки,КоличествоПослеБезБонуса");
тзПоДокам.Свернуть("РегистраторДокументПродажи");//ИЗМЕНЕНО
Для каждого СтрокаПоДокам из тзПоДокам Цикл
тзПоТекущемуДоку=тз.Скопировать(Новый Структура("РегистраторДокументПродажи",СтрокаПоДокам.РегистраторДокументПродажи));
//тзПоТекущемуДоку.Свернуть("РегистраторДокументПродажи","ИсходнаяЦена,ИсходноеКоличество,КоличествоПосле,ЦенаПосле,БазоваяЦена");
//ИЗМЕНЕНО
Для каждого стрПоТекущемуДоку из тзПоТекущемуДоку Цикл
//Для каждого строкаТЗ из ТЗ Цикл
Если (СтрокаПоДокам.ЧисловойНомерСтатусаКредитногоКонтроля = 1)И(ФлагРасчетВШтуках = Истина) Тогда
//ОбластьСтрока.Параметры.Контрагент = СтрокаПоДокам.РегистраторКонтрагент ;
ОбластьСтрока.Параметры.Контрагент = стрПоТекущемуДоку.РегистраторКонтрагент ; //ИЗМЕНЕНО
Показать
(66)вы закомментировали эту строку, но я ведь эту строку дальше в коде использую и поэтому выводит ошибки
//тзПоДокам.Свернуть("РегистраторДокументПродажи,ЧисловойНомерСтатусаКредитногоКонтроля,РегистраторКонтрагент,Номенклатура,АдресДоставки,Территория,ДокументПродажиБонусногоЗаказа,РегистраторТорговыйПредставитель,ДокументНачисления","ИсходнаяЦена,ИсходноеКоличество,КоличествоПосле,ЦенаПосле,БазоваяЦена,ВесШтуки,ПроцентНДС,ЦенаЗакупки,КоличествоПослеБезБонуса,БонуснаяЗаявка");
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)