8.х Итог в печатной форме

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем nbIpKuH_BaH9I, 11 янв 2010.

  1. TopicStarter Overlay
    nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.980
    Симпатии:
    397
    Баллы:
    104
    Доброго времени суток. Есть документ с табличной частью. В поле ввода таб части есть поле сумма оплаты. Как сделать так чтобы при выводе на печать (Макет-конструктор печати) автоматом рассчитывалась сумма всех полей табличной части (СуммаОплаты) и еще чтобы рассчитывались 15 процентов от общей суммы. Вот еще скрин для полноты.
  2. Itsys
    Offline

    Itsys Опытный в 1С

    Регистрация:
    3 янв 2010
    Сообщения:
    1.394
    Симпатии:
    0
    Баллы:
    26
    ТабличнаяЧасть.Итог("СуммаОплаты")... А дальше хоть дели, хоть так выводи
  3. TopicStarter Overlay
    nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.980
    Симпатии:
    397
    Баллы:
    104
    Я через конструктор печати сделал в ФормеДокумента кнопку печать. А в модуле формы прописал вот этот цикл:

    Для Каждого ТекущаяСтрока Из Подробности Цикл
    ТаблицаОбщейСуммыДокумента = Подробности.Выгрузить();
    ВсегоПоКолонкеСуммаОплаты = Подробности.Итог("СуммаОплаты");
    КонецЦикла;

    Подробности-Это так таюличная часть называется у меня. Ошибок никаких нет. Но только в форме ничего не появилось. Может подвал надо организовать, или еще что-нибудь?
  4. Itsys
    Offline

    Itsys Опытный в 1С

    Регистрация:
    3 янв 2010
    Сообщения:
    1.394
    Симпатии:
    0
    Баллы:
    26
    Приведите полный текст процедуры печати.

    ЗЫ Оформляйте код программы с помощью тега
    Код:
     Подробно ознакомиться с тэгами и их использованием можно в редакторе текста. В редакторе сообщения можно выделить необходимый участок текста и нажать кнопку "#" для автоматического добавления тега [CODE]
  5. TopicStarter Overlay
    nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.980
    Симпатии:
    397
    Баллы:
    104
    С этим я уже разобрался. Щас другая проблема появилась. В печатной форме все высвечивается так как надо мне. Только не знаю как вывести еще одну строчку в форме, которая бы подсчитывала количество строк табличной части. Как это можно сделать?
  6. tirk
    Offline

    tirk Опытный в 1С

    Регистрация:
    1 сен 2008
    Сообщения:
    1.142
    Симпатии:
    0
    Баллы:
    26
    Код:
     ОбластьНовая = Макет.ПолучитьОбласть("Новая"); // Рисуете в макете
    ОбластьНОвая.Параметры.ОбщееКоличество = ВашаТаблица.Количество();
    
    ТабДок.Вывесит("ОбластьНовая");
    
  7. gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    думаю, автор не правильно выразился и ему надо нумеровать строки :)

    Код:
    НумерацияСтрок = 1;
    ОбластьНовая = Макет.ПолучитьОбласть("Новая");
    Для Каждого ТекущаяСтрока Из Подробности Цикл
    ОбластьНОвая.Параметры.НомерСтроки = НумерацияСтрок;
    НумерацияСтрок = НумерацияСтрок + 1;
    КонецЦикла;
    
    pyrkin_vanya почему не СКД?))
  8. tirk
    Offline

    tirk Опытный в 1С

    Регистрация:
    1 сен 2008
    Сообщения:
    1.142
    Симпатии:
    0
    Баллы:
    26
    Ну тогда нитак
    А в той области в какой выводиться товар или что там у него....

    И можно ОбластьНОвая.Параметры.НомерСтроки = Подробности.Индекс(ТекущаяСтрока)+1;
    А СКД - если по макету вопросы то по СКД.....
  9. TopicStarter Overlay
    nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.980
    Симпатии:
    397
    Баллы:
    104
    Мне надо чтобы все это было только на печатной форме. Строки мне не надо нумеровать. На картинке видно как все выглядит. Так вот после слов общая сумма и итого сумма. Надо чтобы была надпись : "Количество выездов" к примеру. И это количество состовляло количество строк табличной части. В данном случае 4.
  10. x_under
    Offline

    x_under Модераторы Команда форума Модератор

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    При обходе в цикле заведи нумератор строк. Или используй функцию Количество() для твоей табличной части.
  11. tirk
    Offline

    tirk Опытный в 1С

    Регистрация:
    1 сен 2008
    Сообщения:
    1.142
    Симпатии:
    0
    Баллы:
    26
    Параметр = Таблица.Количество();
  12. TopicStarter Overlay
    nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.980
    Симпатии:
    397
    Баллы:
    104
    Код:
    Процедура Печать(Элемент)
    //{{_КОНСТРУКТОР_ПЕЧАТИ_ЭЛЕМЕНТ(Печать)
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
    ТабДок = Новый ТабличныйДокумент;
    Макет = Документы.ВыездыККлиентам.ПолучитьМакет("Печать");
    // Заголовок
    Область = Макет.ПолучитьОбласть("Заголовок");
    ТабДок.Вывести(Область);
    // Шапка
    Шапка = Макет.ПолучитьОбласть("Шапка");
    Шапка.Параметры.Заполнить(ЭтотОбъект);
    ТабДок.Вывести(Шапка);
    // Подробности
    Область = Макет.ПолучитьОбласть("ПодробностиШапка");
    ТабДок.Вывести(Область);
    ОбластьПодробности = Макет.ПолучитьОбласть("Подробности");
    Для Каждого ТекСтрокаПодробности Из Подробности Цикл
    Область.Параметры.Количество();
    ОбластьПодробности.Параметры.Заполнить(ТекСтрокаПодробности);
    ТабДок.Вывести(ОбластьПодробности);
    КонецЦикла;
    Область = Макет.ПолучитьОбласть("Всего");
    Область.Параметры.ОбщаяСумма = Подробности.Итог("СуммаОплаты");
    ТабДок.Вывести(Область);
    
    Область = Макет.ПолучитьОбласть("Итого");
    Область.Параметры.ИтогоСумма = Подробности.Итог("СуммаОплаты")*0.15 + Подробности.Итог("СуммаОплаты");
    ТабДок.Вывести(Область);
    //Для Каждого ТекущаяСтрока Из Подробности Цикл
    //    Область = Макет.ПолучитьОбласть("КолВыездов");
    //    Область.Параметры.ВсегоВыездов = Подробности.Итог("НомерСтроки");
    //    ТабДок.Вывести(Область);
    //КонецЦикла;
    
    ТабДок.ОтображатьСетку = Ложь;
    ТабДок.Защита = Ложь;
    ТабДок.ТолькоПросмотр = Ложь;
    ТабДок.ОтображатьЗаголовки = Ложь;
    ТабДок.Показать();
    //}}_КОНСТРУКТОР_ПЕЧАТИ_ЭЛЕМЕНТ
    КонецПроцедуры
    
    
    
    Вот весь мой код. Я это прописываю в этом куске.
    Код:
    Для Каждого ТекСтрокаПодробности Из Подробности Цикл
    Параметр = Подробности.Количество();
    ОбластьПодробности.Параметры.Заполнить(ТекСтрокаПодробности);
    ТабДок.Вывести(ОбластьПодробности);
    КонецЦикла;
    
    
    
    А какой код надо написать, чтобы вывести это в печатную форму?
  13. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Код:
    Область = Макет.ПолучитьОбласть("Итого");
    Область.Параметры.ИтогоСумма = Подробности.Итог("СуммаОплаты")*0.15 + Подробности.Итог("СуммаОплаты");
    ТабДок.Вывести(Область);
    //Для Каждого ТекущаяСтрока Из Подробности Цикл
    //    Область = Макет.ПолучитьОбласть("КолВыездов");
    //    Область.Параметры.ВсегоВыездов = Подробности.Итог("НомерСтроки");
    //    ТабДок.Вывести(Область);
    //КонецЦикла;
    Область = Макет.ПолучитьОбласть("КолВыездов");
    Область.Параметры.ВсегоВыездов = Подробности.Количество(); // Возвращает количество записей в табличной части
    ТабДок.Вывести(Область);
    
    
  14. TopicStarter Overlay
    nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.980
    Симпатии:
    397
    Баллы:
    104
    Кошмар. Вот я ступил. Спасибо mialord.
  15. tirk
    Offline

    tirk Опытный в 1С

    Регистрация:
    1 сен 2008
    Сообщения:
    1.142
    Симпатии:
    0
    Баллы:
    26
    И не говори )) Но все мы когда-то начинали) и не такие еще ошибки были))
  16. TopicStarter Overlay
    nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.980
    Симпатии:
    397
    Баллы:
    104
    Я делал все тоже самое, только перед словом количество еще слово Итог ставил :unsure:. И удивлялся, почему так много фактических параметров.

Поделиться этой страницей