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

Вывод номерации по циклу

Автор manticor, 15 авг 2011, 10:41

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

manticor

Доброго времени суток. В конфигурации управление торговлей на платформе 8.1
формирую отчет->продажи->анализ продаж->продажи
Отбор делаю по контрагенту - по номенклатуре. Нужно чтобы номенклатура выводилсь с номерацией.
скрин
В каком месте можно вывести даннй номератор?



Процедура СформироватьОтчет(ТабличныйДокумент) Экспорт

// Перед формирование отчета можно установить необходимые параметры универсального отчета.
УниверсальныйОтчет.СформироватьОтчет(ТабличныйДокумент);
    Результат=УниверсальныйОтчет.ПостроительОтчета.Результат.Выбрать();
СтрАКБ="";
АКБ_Договор=0;
АКБ_Контрагент=0;
Группировки=УниверсальныйОтчет.ПостроительОтчета.ИзмеренияСтроки;
Для каждого СтрГруппировки Из Группировки Цикл
Если СтрГруппировки.Имя="Контрагент" Тогда
АКБ_Контрагент=0;
Пока Результат.СледующийПоЗначениюПоля("Контрагент") Цикл
Если ЗначениеЗаполнено(Результат.Контрагент) Тогда
АКБ_Контрагент=АКБ_Контрагент+1;
КонецЕсли;
КонецЦикла;
СтрАКБ=СтрАКБ+"
|АКБ по Контрагентам = "+АКБ_Контрагент;
ИначеЕсли СтрГруппировки.Имя="ДоговорКонтрагента" Тогда
АКБ_Договор=0;
Результат.Сбросить();
Пока Результат.СледующийПоЗначениюПоля("ДоговорКонтрагента") Цикл
Если ЗначениеЗаполнено(Результат.ДоговорКонтрагента) Тогда
АКБ_Договор=АКБ_Договор+1;
КонецЕсли;
КонецЦикла;
СтрАКБ=СтрАКБ+"
|АКБ по Торг.Точкам = "+АКБ_Договор; 
ИначеЕсли СтрГруппировки.Имя="Номенклатура" Тогда
Если АКБ_Договор>0 Тогда
Кол_Общее=0;
Результат.Сбросить();
Пока Результат.СледующийПоЗначениюПоля("ДоговорКонтрагента") Цикл
Кол_ПоДоговору=0;
Пока Результат.СледующийПоЗначениюПоля("Номенклатура") Цикл
Если ЗначениеЗаполнено(Результат.Номенклатура) Тогда //заполняется
Кол_ПоДоговору=Кол_ПоДоговору+1; //по хожу счетчик
КонецЕсли;
КонецЦикла;
Кол_Общее=Кол_Общее+Кол_ПоДоговору;
КонецЦикла;
Если Кол_Общее>0 Тогда
СтрАКБ=СтрАКБ+"         
|Ср. кол-во видов номенклатуры по Торг.Точкам= "+Окр(Кол_Общее/АКБ_Договор,2); 
КонецЕсли;
КонецЕсли
КонецЕсли;
КонецЦикла;

Если Не ПустаяСтрока(СтрАКБ) Тогда
СтрАКБ=Сред(СтрАКБ,2);
//ОбластьИтоги = ТабличныйДокумент.ПолучитьОбласть("ОбщиеИтоги");
ОбластьЗаголовок=ТабличныйДокумент.Область(ТабличныйДокумент.ВысотаТаблицы,2,ТабличныйДокумент.ВысотаТаблицы,2);
ОбластьЗаголовок.Заполнение = ТипЗаполненияОбластиТабличногоДокумента.Текст;
ОбластьЗаголовок.Текст = СтрАКБ;
//ТабличныйДокумент.Вывести(ОбластьЗаголовок);
КонецЕсли;
КонецПроцедуры // СформироватьОтчет()

Думаю, что за количество и следовательно за номерация может ответить Кол_ПоДоговору. Как вывести эту номерацию?

manticor

Так читабельнее)
Процедура СформироватьОтчет(ТабличныйДокумент) Экспорт
   
   // Перед формирование отчета можно установить необходимые параметры универсального отчета.
   
   УниверсальныйОтчет.СформироватьОтчет(ТабличныйДокумент);
    Результат=УниверсальныйОтчет.ПостроительОтчета.Результат.Выбрать();
   СтрАКБ="";
   АКБ_Договор=0;
   АКБ_Контрагент=0;
   Группировки=УниверсальныйОтчет.ПостроительОтчета.ИзмеренияСтроки;
   
   Для каждого СтрГруппировки Из Группировки Цикл
      Если СтрГруппировки.Имя="Контрагент" Тогда
         АКБ_Контрагент=0;
         Пока Результат.СледующийПоЗначениюПоля("Контрагент") Цикл
            Если ЗначениеЗаполнено(Результат.Контрагент) Тогда
               АКБ_Контрагент=АКБ_Контрагент+1;   
            КонецЕсли;
         КонецЦикла;
         СтрАКБ=СтрАКБ+"
         |АКБ по Контрагентам = "+АКБ_Контрагент;
      ИначеЕсли СтрГруппировки.Имя="ДоговорКонтрагента" Тогда
         АКБ_Договор=0;
         Результат.Сбросить();
         Пока Результат.СледующийПоЗначениюПоля("ДоговорКонтрагента") Цикл
            Если ЗначениеЗаполнено(Результат.ДоговорКонтрагента) Тогда
               АКБ_Договор=АКБ_Договор+1;   
            КонецЕсли;
         КонецЦикла;
         СтрАКБ=СтрАКБ+"
         |АКБ по Торг.Точкам = "+АКБ_Договор; 
      ИначеЕсли СтрГруппировки.Имя="Номенклатура" Тогда
         Если АКБ_Договор>0 Тогда
            Кол_Общее=0;
            Результат.Сбросить();
            Пока Результат.СледующийПоЗначениюПоля("ДоговорКонтрагента") Цикл
               Кол_ПоДоговору=0;
               Пока Результат.СледующийПоЗначениюПоля("Номенклатура") Цикл
                  Если ЗначениеЗаполнено(Результат.Номенклатура) Тогда //заполняется
                     Кол_ПоДоговору=Кол_ПоДоговору+1;   //по хожу счетчик
                  КонецЕсли;
               КонецЦикла;
               Сообщить("что то",Кол_ПоДоговору);
            
               
               
               Кол_Общее=Кол_Общее+Кол_ПоДоговору;
            КонецЦикла;
            Если Кол_Общее>0 Тогда
               СтрАКБ=СтрАКБ+"         
               |Ср. кол-во видов номенклатуры по Торг.Точкам= "+Окр(Кол_Общее/АКБ_Договор,2); 
            КонецЕсли;
         КонецЕсли
      КонецЕсли;
   КонецЦикла;
   
   Если Не ПустаяСтрока(СтрАКБ) Тогда
      СтрАКБ=Сред(СтрАКБ,2);
      
      //ОбластьИтоги = ТабличныйДокумент.ПолучитьОбласть("ОбщиеИтоги");
      ОбластьЗаголовок=ТабличныйДокумент.Область(ТабличныйДокумент.ВысотаТаблицы,2,ТабличныйДокумент.ВысотаТаблицы,2);
      ОбластьЗаголовок.Заполнение = ТипЗаполненияОбластиТабличногоДокумента.Текст;
      ОбластьЗаголовок.Текст = СтрАКБ;
      //ТабличныйДокумент.Вывести(ОбластьЗаголовок);
   КонецЕсли;

КонецПроцедуры // СформироватьОтчет()

Теги:

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

Рейтинг@Mail.ru

Поиск