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

Печатная форма!!!

Автор eXpert, 01 мар 2014, 02:32

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

eXpert


Здравствуйте! Подскажите пожалуйста, как сделать чтобы в печатной форме товар с одинаковым названием и с кодом выводился один под одним т.к. один со скидкой, а второй без(По требованию скидка дается на количество) , а  остальной товар строкой продолжал присоединяться с права?

Перем тзитого;
//********************************************
Процедура ЗаполнитьТаблицуВсего(ТзДок)
ТзДок.ВыбратьСтроки();
Пока ТзДок.ПолучитьСтроку()=1 цикл
тзитого.НоваяСтрока();
тзитого.Товар = Тздок.Товар;
тзитого.Количество =Тздок.Количество;
тзитого.КоличествоФикс=ТзДок.КоличествоФикс;
тзитого.КоличествоЛьгота=ТзДок.количествоЛьгота;
тзитого.Сумма = ТзДок.Сумма;
тзитого.Наценка = ТзДок.наценка ;
тзитого.РазницаПоФикс = ТзДок.РазницаПоФикс;
тзитого.РазницаЛьгота = ТзДок.РазницаЛьгота;
тзитого.НДС = Тздок.ндс;
тзитого.СуммаВсего = тздок.СуммаВсего;
тзитого.СуммаПоФикс = ТзДок.СуммаФикс;
тзитого.СуммаПоЛьготе= ТзДок.СуммаПоЛьготе ;
КонецЦикла;
КонецПроцедуры // ЗаполнитьТаблицуВсего(ТзДокумента)

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

|ААА= Документ.НакладнаяРозничная.ААА;
// |Цена = Документ.Накладная.Цена;
|ВсегоПоДокументу= Документ.НакладнаяРозничная.СуммаВсего;
// |УчетнаяЦена = Документ.Накладная.УчетнаяЦена;
// |СтавкаНДС = Документ.Накладная.СтавкаНДС;
// |СтавкаНДСспр = Документ.Накладная.СтавкаНДСспр;
// |НДС = Документ.Накладная.НДС;
// |СуммаСНДС = Документ.Накладная.СуммаСНДС;
// |НДСдоб = Документ.Накладная.НДСдоб;
// |Комитент = Документ.Накладная.Комитент;
// |Условие((Покупатель=ВыбКонтрагент) И (ВидОтгрузки<3) И (Количество<>0));
//  |Условие(ААА = Перечисление.ТипыНоменклатуры.Товар);
|Группировка РознНакл;
|Группировка СтрокаДокумента;
|Группировка Товар;
|Функция Всего = Сумма (ВсегоПоДокументу);

|"//}}ЗАПРОС
;   
// Если ошибка в запросе, то выход из процедуры
Если Город=1 Тогда
ТекстЗапроса=ТекстЗапроса+"
|Условие(Город=1);"
КонецЕсли;
Если Район=1 Тогда
ТекстЗапроса=ТекстЗапроса+"
|Условие(Район=1);"
КонецЕсли;
Если Организации=1 Тогда
ТекстЗапроса=ТекстЗапроса+"
|Условие(Организация=1);"
КонецЕсли;

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

// ИтогоПоФикс=0;

    КоличествоТоваров=СоздатьОбъект("ТаблицаЗначений");
Запрос.Выгрузить(КоличествоТоваров,"Товар");
// КоличествоТоваров.Свернуть("Товар","Товар");//сейчас в количество товаров все товары по розничным накладным
КоличествоТоваров.ВыбратьСтроки();
Табл.ВывестиСекцию("Секция_4|ШапкаВертикаль");
Пока КоличествоТоваров.ПолучитьСтроку()=1 Цикл
Если ПустоеЗначение(КоличествоТоваров.Товар)=1 Тогда
Продолжить;
КонецЕсли;
Товар=КоличествоТоваров.Товар;
Табл.ПрисоединитьСекцию("Секция_4|Секция_Товары");
КонецЦикла;
    Табл.ПрисоединитьСекцию("Секция_4|Итого");
//__________________________________________
ТЗИтого=СоздатьОбъект("ТаблицаЗначений");
ТЗИтого.НоваяКолонка("Товар");
ТЗИтого.НоваяКолонка("Количество");
тзитого.НоваяКолонка("КоличествоФикс");
тзитого.НоваяКолонка("КоличествоЛьгота");
ТЗИтого.НоваяКолонка("Сумма");
ТЗИтого.НоваяКолонка("СуммаПоФикс");
тзитого.НоваяКолонка("СуммаПоЛьготе");
ТЗИтого.НоваяКолонка("Наценка");
тзитого.НоваяКолонка("РазницаПоФикс");
тзитого.НоваяКолонка("РазницаЛьгота");
ТЗИтого.НоваяКолонка("НДС");
ТЗИтого.НоваяКолонка("СуммаВсего");
//__________________________________________
Пока Запрос.Группировка(1) = 1 Цикл
Накладная=Запрос.РознНакл;
ПечВариантОтгр = ?(Накладная.ЧастнЛицо=1,"Ч/лицо","Б/нал.");
Расшифровка=Запрос.РознНакл;
Табл.ВывестиСекцию("Строка1|ШапкаВертикаль");

//____________________________________
ТзДокумента=СоздатьОбъект("ТаблицаЗначений");
Накладная.ВыгрузитьТабличнуюЧасть(ТзДокумента);
// ТзДокумента.Свернуть("Цена,ФиксЦена,Товар","Количество,КоличествоФикс,КоличествоЛьгота,НДС,Сумма,Наценка,РазницаПоФикс,РазницаЛьгота,СуммаВсего,СуммаФикс,СуммаПоЛьготе");//,ПроцНаценки");

ЗаполнитьТаблицуВсего(ТзДокумента);
КоличествоТоваров.ВыбратьСтроки();
Пока КоличествоТоваров.ПолучитьСтроку() = 1 Цикл   
Если ПустоеЗначение(КоличествоТоваров.Товар)=1 Тогда
Продолжить;
КонецЕсли;
Стр=0;Колонка=0;
Найден=ТзДокумента.НайтиЗначение(КоличествоТоваров.Товар,Стр,Колонка);
Если (Найден = 1)  Тогда
ТзДокумента.ПолучитьСтрокуПоНомеру(Стр);
ПечКолво=ТзДокумента.ПолучитьЗначение(Стр,"Количество"); //1
ПечКолвоФикс = ТзДокумента.ПолучитьЗначение(стр,"КоличествоФикс");//2
ПечКолвоЛьгота = ТзДокумента.ПолучитьЗначение(Стр,"КоличествоЛьгота");//3
Если ОптИзСпр = 1 Тогда
ПечЦена = ТзДокумента.Товар.ПервыйИмпортер;
Иначе
ПечЦена = ТзДокумента.ПолучитьЗначение(Стр,"Цена");      //4
КонецЕсли;
ПечОптСумма = ТзДокумента.получитьЗначение(Стр,"Сумма"); //5
ПечФиксЦена = ТзДокумента.ПолучитьЗначение(Стр,"ФиксЦена");//6
ПечСумма = ТзДокумента.ПолучитьЗначение(Стр,"Сумма");      //7
            ПечСуммаФикс = ТзДокумента.ПолучитьЗначение(Стр,"СуммаФикс");//8
ПечСуммаЛьгота = ТзДокумента.ПолучитьЗначение(Стр,"СуммаПоЛьготе");//9
// ПечПроцНац = ТзДокумента.ПолучитьЗначение(Стр,"ПроцНаценки");//10
ПечНаценка = ТзДокумента.ПолучитьЗначение(Стр,"Наценка");    //11
ПечНаценкаФикс = ТзДокумента.ПолучитьЗначение(стр,"РазницаПоФикс");//12
ПечНаценкаЛьгота = ТзДокумента.ПолучитьЗначение(стр,"РазницаЛьгота");//13
ПечСуммаВсего = ТзДокумента.ПолучитьЗначение(Стр,"СуммаВсего");//14
ПечНДС = ТзДокумента.ПолучитьЗначение(Стр,"НДС"); //15
           

    Табл.ПрисоединитьСекцию("Строка1|Секция_Товары");


// Табл.ПрисоединитьСекцию("Строка1|Секция_Товары");
      Иначе
ПечКолво="--";ПечФиксЦена = "--";ПечСумма = "--";ПечПроцНац = "--";ПечСуммаВсего ="--";ПечЦена = "--";ПечНДС = "--";
ПечНаценка= "--";
ПечОптСумма ="--";
ПечСуммаФикс = "--";
ПечСуммаЛьгота = "--";
ПечКолвоЛьгота = "--";ПечКолвоФикс="--";ПечНаценкаФикс="--";ПечНаценкаЛьгота="--";
Табл.ПрисоединитьСекцию("Строка1|Секция_Товары");

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

Табл.ПрисоединитьСекцию("СтрокаИтого|Секция_Товары");
КонецЕсли;
КонецЦикла; 
Табл.ПрисоединитьСекцию("СтрокаИтого|Итого");
//__________________________________________________________________________
Табл.Опции(0,0,5);
Табл.ТолькоПросмотр(1);
Табл.Показать();

КонецПроцедуры
//*******************************************************
Процедура приоткрытии()
Если ПустоеЗначение(НачДата)=1 Тогда
НачДата=НачМесяца(РабочаяДата());
КонДата=КонМесяца(НачДата);
КонецЕсли;
КонецПроцедуры // приоткрытии



Кошки рулят

ничего не понятно. Кто на ком стоял, что такое один под одним, что это за стрелки не рисунке?

Теги:

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

Рейтинг@Mail.ru

Поиск