Имя: Пароль:
1C
1С v8
Вывод на печать если ничего не знаешь
0 Scorp1985
 
29.07.13
14:24
Добрый день!

Порошу помощи, как начинающий не могу сообразить, как мне изменить форматы вывода суммы из документа на Руб. Коп.

Сейчас вот так (ругается на преобразование к типу Число:

Функция глРубКоп(ПарСумма) Экспорт
    Если Число(ПарСумма)=0 Тогда
        Возврат "руб.      коп."
    КонецЕсли;
    Возврат ""+Цел(ПарСумма)+" руб. "+Формат((ПарСумма-Цел(ПарСумма))* 100,"ЧЦ=2; ЧВН=")+" коп."
КонецФункции


Процедура Печать(ТабДок, Ссылка) Экспорт
    //{{_КОНСТРУКТОР_ПЕЧАТИ(Печать)
    Макет = Документы.ПКО.ПолучитьМакет("ПКО");
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ПКО.Дата,
    |    ПКО.Диспетчер,
    |    ПКО.Контрагент,
    |    ПКО.Номер,
    |    ПКО.Сумма
    |ИЗ
    |    Документ.ПКО КАК ПКО
    |ГДЕ
    |    ПКО.Ссылка В (&Ссылка)";
    Запрос.Параметры.Вставить("Ссылка", Ссылка);
    Выборка = Запрос.Выполнить().Выбрать();
        
    Шапка = Макет.ПолучитьОбласть("Шапка");
    Шапка.Параметры.СуммаРубКоп = глРубКоп(Шапка.Параметры.Сумма);    
    ТабДок.Очистить();

    ВставлятьРазделительСтраниц = Ложь;
    Пока Выборка.Следующий() Цикл
        Если ВставлятьРазделительСтраниц Тогда
            ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
        КонецЕсли;

        Шапка.Параметры.Заполнить(Выборка);
        ТабДок.Вывести(Шапка, Выборка.Уровень());

        ВставлятьРазделительСтраниц = Истина;
    КонецЦикла;
    //}}
КонецПроцедуры
1 Капитан О
 
29.07.13
14:26
даю спраку. в тексте ошибки почти всегда есть всё необходимое для избавления от неё
2 Scorp1985
 
29.07.13
14:28
Да в чём суть ошибки я понимаю. Я не знаю некоторых принципов, например. после выполнения запроса и получения области в Шапка.Параметры.Сумма уже подставляется сумма из документа??
3 shuhard
 
29.07.13
14:28
(0) Стаж: 6 лет 1 месяц 20 дней + как начинающий не могу сообразить = окуеть
4 Scorp1985
 
29.07.13
14:29
Зарегистрирован просто давно, 1с не профилирующая деятельность у меня, давно очень не занимался. а тут приспичило) не пинайте)
5 Trampic
 
29.07.13
14:35
Шапка.Параметры.СуммаРубКоп = глРубКоп(Шапка.Параметры.Сумма);    
поменяй на
Шапка.Параметры.СуммаРубКоп = глРубКоп(ТабДок.Сумма);    
Если ТабДок - это документ по которому ты отбираешь сумму.
6 Scorp1985
 
29.07.13
14:40
(5) ТабДок, это табличный документ в который я вывожу макет, если я правильно понимаю.
7 Scorp1985
 
29.07.13
14:41
Я в общем, следующее осознать не могу. Как значения реквизитов документа попадают в параметры области?
8 1Сергей
 
29.07.13
14:42
(7) вот так:

Шапка.Параметры.Заполнить(Выборка);
9 MSII
 
29.07.13
14:42
(7) Шапка.Параметры.Заполнить - вот так и попадают.
10 Scorp1985
 
29.07.13
14:45
(8) Спасибо, именно это мне и требовалось! =)
Объясните, ещё. пожалуста, для закрепления, т.е. создаются параметры для каждого элемента выборки, если не указано "КАК", то имя совпадает с выбираемым реквизитом?
11 1Сергей
 
29.07.13
14:47
(10) да. Но, если из разных таблиц запрос тянет, то будет ИмяТаблицы+ИмяРеквизита
12 1Сергей
 
29.07.13
14:52
(11) + ну, и, чтобы геморроя не поиметь, лучше всегда алиасы прописывать
13 Scorp1985
 
29.07.13
14:54
Спасибо!
А как заставить функцию-парсер выводить копейки в любом случае двумя цифрами, например "00" ?
14 1Сергей
 
29.07.13
14:55
(13) это в макете надо формат прописать
15 Scorp1985
 
29.07.13
14:55
И можно ли эту функцию засунуть в модуль управляемого приложения, чтобы в разных документах вызывать? надо ли в ней что-то поменять или прям как есть копировать?
16 Scorp1985
 
29.07.13
14:56
(14) Но я же строку туда подставляю, а формирую как раз этой функцией...
17 1Сергей
 
29.07.13
14:56
(14) + ЧДЦ=2
18 Scorp1985
 
29.07.13
14:58
Формат((ПарСумма-Цел(ПарСумма))* 100,"ЧЦ=2; ЧВН=; ЧДЦ=2")

не сработало(
19 1Сергей
 
29.07.13
15:00
(18) только копейки нужны чтоли?
20 Scorp1985
 
29.07.13
15:20
(19) ну да, чтобы было 100 руб. 00 коп.
21 Scorp1985
 
29.07.13
15:25
Спасибо, нашёл: ЧН=00 ещё нужно добавить
22 1Сергей
 
29.07.13
15:26
(21) Кури ЧислоПрописью(
23 1Сергей
 
29.07.13
15:27
хотя, нет. не то
24 1Сергей
 
29.07.13
15:27
смотри как в типовых сделано
25 Scorp1985
 
29.07.13
18:42
ЧислоПрописью() оказалось именно то
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший