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

Строка в ВПФ итоговая строка, сумма прописью

Автор ali50, 19 ноя 2012, 14:05

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

ali50

один вопрос видимо глупый что за код Вам нужен в смысле где он находится?

Gunner

:D программный код, в модуле, который у вас на первом скриншоте

ali50

И Вы знаете я только заметил у меня на печать выходит только последняя строка товара из всех
Добавлено: 19 ноя 2012, 16:43


скажите пожалуйста Вы получили скриншот?

Gunner

Я просил скопированный код, а не скриншот (так можно редактировать, а не писать вручную с нуля), ну ладно, тогда опишу как надо сделать.
1) После строчки ЗаполнитьЗначенияСвойств... выведите секцию ТабДок.Вывести(СекцияСтрока)
2) удалите вашу строчку ТабДок.Вывести(СекцияСтрока)
Теперь будут выводиться все строки таблицы
3) До строчки Для каждого..  получите количество строк табл.части Количество = СсылкаНаОбъект.Товары.Количество();
4) До вывода СекцияСуммаПрописью заполните параметр ИтоговаяСтрока. СекцияСуммаПрописью.Параметры.ИтоговаяСтрока = "

ali50

Вот скапированый код а вот что получилось когда я сделал все как Вы написали
Добавлено: 19 ноя 2012, 17:22



Функция Печать() Экспорт
   
   ТабДок = Новый ТабличныйДокумент;
   
   Макет = ПолучитьМакет("ТестовыйМакет");
   
   СекцияЗаголовок = Макет.ПолучитьОбласть("Заголовок");
   СекцияПоставщик = Макет.ПолучитьОбласть("Поставщик");
   СекцияПокупатель = Макет.ПолучитьОбласть("Покупатель");
   СекцияАдресДоставки = Макет.ПолучитьОбласть("АдресДоставки");   
   СекцияШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
   СекцияСтрока = Макет.ПолучитьОбласть("Строка");
   СекцияИтого = Макет.ПолучитьОбласть("Итого");
   СекцияИтогоНДС = Макет.ПолучитьОбласть("ИтогоНДС");
   
   СекцияСуммаПрописью = Макет.ПолучитьОбласть("СуммаПрописью");
   СекцияПодписи = Макет.ПолучитьОбласть("Подписи");
   
   СекцияЗаголовок.Параметры.НомерДок = СсылкаНаОбъект.Номер;
    СекцияЗаголовок.Параметры.ДатаДок = СсылкаНаОбъект.Дата;
   
   СекцияПоставщик.Параметры.ПредставлениеПоставщика = СсылкаНаОбъект.Организация;
   СекцияПокупатель.Параметры.ПредставлениеПолучателя = СсылкаНаОбъект.Контрагент;
   СекцияАдресДоставки.Параметры.АдресДоставки = СсылкаНаОбъект.АдресДоставки;
   СекцияКоличество = СсылкаНаОбъект.Товары.Количество();
   
   Для каждого СтрокаТаблицы Из СсылкаНаОбъект.Товары Цикл
   
   ЗаполнитьЗначенияСвойств(СекцияСтрока.Параметры,СтрокаТаблицы);
    ТабДок.Вывести(СекцияСтрока);
   
КонецЦикла;
   
   
   
   СекцияИтого.Параметры.Всего = СсылкаНаОбъект.СуммаДокумента;
      

      
    ТабДок.Вывести(СекцияЗаголовок);                                    
   ТабДок.Вывести(СекцияПоставщик);
   ТабДок.Вывести(СекцияПокупатель);
   ТабДок.Вывести(СекцияАдресДоставки);
   ТабДок.Вывести(СекцияШапкаТаблицы);
   //ТабДок.Вывести(СекцияСтрока);
   ТабДок.Вывести(СекцияИтого);
   ТабДок.Вывести(СекцияИтогоНДС);
   ТабДок.Вывести(СекцияСуммаПрописью);
   ТабДок.Вывести(СекцияПодписи);
   
   Возврат ТабДок;
   
КонецФункции

Пардон забыл вставить скопированный код   

   
Добавлено: 19 ноя 2012, 18:26


как хорошо что Вы вернулись не могу понять 4 пункт Ваших указаний вот что я сделал

Функция Печать() Экспорт
   
   ТабДок = Новый ТабличныйДокумент;
   
   Макет = ПолучитьМакет("ТестовыйМакет");
   
   СекцияЗаголовок = Макет.ПолучитьОбласть("Заголовок");
   СекцияПоставщик = Макет.ПолучитьОбласть("Поставщик");
   СекцияПокупатель = Макет.ПолучитьОбласть("Покупатель");
   СекцияАдресДоставки = Макет.ПолучитьОбласть("АдресДоставки");   
   СекцияШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
   СекцияСтрока = Макет.ПолучитьОбласть("Строка");
   СекцияИтого = Макет.ПолучитьОбласть("Итого");
   //СекцияИтогоНДС = Макет.ПолучитьОбласть("ИтогоНДС");
   
   
   //СекцияСуммаПрописью.Параметры.ИтоговаСтрока = Макет.ПолучитьОбласть("ИтоговаяСтрока");
   СекцияСуммаПрописью.Параметры.ИтоговаяСтрока = СсылкаНаОбъект.ИтоговаяСтрока;
   
   
   
   
   СекцияСуммаПрописью = Макет.ПолучитьОбласть("СуммаПрописью");
   СекцияПодписи = Макет.ПолучитьОбласть("Подписи");
   
   СекцияЗаголовок.Параметры.НомерДок = СсылкаНаОбъект.Номер;
    СекцияЗаголовок.Параметры.ДатаДок = СсылкаНаОбъект.Дата;
   
   СекцияПоставщик.Параметры.ПредставлениеПоставщика = СсылкаНаОбъект.Организация;
   СекцияПокупатель.Параметры.ПредставлениеПолучателя = СсылкаНаОбъект.Контрагент;
   СекцияАдресДоставки.Параметры.АдресДоставки = СсылкаНаОбъект.АдресДоставки;
   
   ТабДок.Вывести(СекцияЗаголовок);                                    
   ТабДок.Вывести(СекцияПоставщик);
   ТабДок.Вывести(СекцияПокупатель);
   ТабДок.Вывести(СекцияАдресДоставки);
   ТабДок.Вывести(СекцияШапкаТаблицы);
   
   Количество = СсылкаНаОбъект.Товары.Количество();
   
Для каждого СтрокаТаблицы Из СсылкаНаОбъект.Товары Цикл
   
   ЗаполнитьЗначенияСвойств(СекцияСтрока.Параметры,СтрокаТаблицы);
    ТабДок.Вывести(СекцияСтрока);
   
КонецЦикла;
   
   СекцияИтого.Параметры.Всего = СсылкаНаОбъект.СуммаДокумента;
      
    ТабДок.Вывести(СекцияИтого);
   //ТабДок.Вывести(СекцияИтогоНДС);
   ТабДок.Вывести(СекцияСуммаПрописью);
   ТабДок.Вывести(СекцияПодписи);
   
   Возврат ТабДок;
   
КонецФункции

   

   
Добавлено: 19 ноя 2012, 18:29


у меня все получилось кроме 3и4 пункта
Добавлено: 19 ноя 2012, 18:41


Gunner объясните пожалуйста что я сделал не так в 3 и 4 пунктах

Gunner

Вот так
Функция Печать() Экспорт
   
   ТабДок = Новый ТабличныйДокумент;
   
   Макет = ПолучитьМакет("ТестовыйМакет");
   
   СекцияЗаголовок = Макет.ПолучитьОбласть("Заголовок");
   СекцияПоставщик = Макет.ПолучитьОбласть("Поставщик");
   СекцияПокупатель = Макет.ПолучитьОбласть("Покупатель");
   СекцияАдресДоставки = Макет.ПолучитьОбласть("АдресДоставки");   
   СекцияШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
   СекцияСтрока = Макет.ПолучитьОбласть("Строка");
   СекцияИтого = Макет.ПолучитьОбласть("Итого");
   СекцияИтогоНДС = Макет.ПолучитьОбласть("ИтогоНДС");
   СекцияСуммаПрописью = Макет.ПолучитьОбласть("СуммаПрописью");
   СекцияПодписи = Макет.ПолучитьОбласть("Подписи");
   
    //Заголовок
   СекцияЗаголовок.Параметры.НомерДок = СсылкаНаОбъект.Номер;
   СекцияЗаголовок.Параметры.ДатаДок = СсылкаНаОбъект.Дата;
   ТабДок.Вывести(СекцияЗаголовок);   
   //Поставщик
   СекцияПоставщик.Параметры.ПредставлениеПоставщика = СсылкаНаОбъект.Организация;
   ТабДок.Вывести(СекцияПоставщик);
   //Покупатель
   СекцияПокупатель.Параметры.ПредставлениеПолучателя = СсылкаНаОбъект.Контрагент;
   ТабДок.Вывести(СекцияПокупатель);
   //АдресДоставки
   СекцияАдресДоставки.Параметры.АдресДоставки = СсылкаНаОбъект.АдресДоставки;
   ТабДок.Вывести(СекцияАдресДоставки);
   //Шапка
   ТабДок.Вывести(СекцияШапкаТаблицы);
   //Строка
   Для каждого СтрокаТаблицы Из СсылкаНаОбъект.Товары Цикл
       ЗаполнитьЗначенияСвойств(СекцияСтрока.Параметры,СтрокаТаблицы);
       ТабДок.Вывести(СекцияСтрока);
   КонецЦикла;
   //Итого
   СекцияИтого.Параметры.Всего = СсылкаНаОбъект.СуммаДокумента;
   ТабДок.Вывести(СекцияИтого);
   //ИтогоНДС
   ТабДок.Вывести(СекцияИтогоНДС);
   //СуммаПрописью
   Количество = Функция(); //здесь вызываете функцию, в которой высчитывается количество различных наименований в табл.части документа
   СекцияСуммаПрописью.Параметры.ИтоговаяСтрока = "Всего наименований "+Количество+" на сумму "+СсылкаНаОбъект.СуммаДокумента+" руб.";
   СекцияСуммаПрописью.Параметры.ИтогоСуммаПрописью = ЧислоПрописью(СсылкаНаОбъект.СуммаДокумента,"...что-то там..."); //используйте функцию ЧислоПрописью(), см. Синтаксис-помощник 
   ТабДок.Вывести(СекцияСуммаПрописью);
   //Подписи
   ТабДок.Вывести(СекцияПодписи);
   
   Возврат ТабДок;
   
КонецФункции

ali50

а можно то что Вы прислали ни чего не меняя скопировать в программу будет работать?

Gunner

Будет, но только надо закомментирвоать 3 строчки, где рассчитываются параметры секции сумма прописью, там надо доработать. Пока будет только без суммы прпоисью

ali50

а как ее доработать? подскажите пожалуйста

Gunner

Я итак подсказал, дал "дочку" так сказать :)

Теги:

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

Рейтинг@Mail.ru

Поиск