Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Сумма прописью полностью
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
f12
Здравствуйте. Подскажите, где подправить или изменить, что-бы в платежном поручении выводилась на постоянной основе сумма прописью полностью, а не сокращенно?
Благодарю!
5_kopeek
Что имеется ввиду под сокращением: вместо "грн." надо "гривні"? Или о другом речь идет?
f12
Цитата(5_kopeek @ 05.06.11, 22:21) необходимо зарегистрироваться для просмотра ссылки
Что имеется ввиду под сокращением: вместо "грн." надо "гривні"? Или о другом речь идет?


Да, именно так.
Выводит грн. коп. - а надо гривень (гривні), копійок (копійка)
5_kopeek
Приведите процедуру глобального модуля к такому виду:
// ===============================
// Возвращает сумму прописью
// для платежных документов.
Функция глСуммаПрописьюДляПлатежныхДокументов(Сумма) Экспорт
    Гривны    = Цел(Сумма);
    Копейки   = (Сумма - Гривны) * 100;
    ГривныСтр = Формат(Гривны, "ЧПД");
    //Если Гривны <> 0 Тогда
    //    Поз = Найти(ГривныСтр, " грив");
    //    ГривныСтр = Лев(ГривныСтр, Поз) + "грн."
    //КонецЕсли;
    //Возврат ГривныСтр + " " + Формат(Копейки,"Ч(0)2") + " коп.";
    ПоследняяЦифра=Прав(Строка(Копейки),1);
    Если (ПоследняяЦифра=0)или((ПоследняяЦифра>=5)и(ПоследняяЦифра<=9)) Тогда
        ТекстКопейки=" копійок";
    ИначеЕсли ПоследняяЦифра=1 Тогда
        ТекстКопейки=" копійка";
    ИначеЕсли ((ПоследняяЦифра>=2)и(ПоследняяЦифра<=4))  Тогда
        ТекстКопейки=" копійки";
    КонецЕсли; // Прав(Строка(Копейки),1)=0
    Возврат ГривныСтр + " " + Формат(Копейки,"Ч(0)2") + ТекстКопейки;
КонецФункции
f12
Насколько я понял, то этот блок необходимо вставить в гл.модуль плат.поручение. Но вот куда именно?
5_kopeek
А я решила, раз отблагодарили, то уже проверили smile.gif
Конфигуратор => Конфигурация => Открыть конфигурацию => Действия => Глобальный модуль.
Именно там находится указанная функция, ее необходимо заменить на тот вариант, что я предложила. Не проверяла, надеюсь, ошибок нет, но в случае чего -- пишите, поправлю.
f12
Спасибо, нашел, сделал...но когда решил проверить - распечатать платежку - выдало вот это...
err Если (ПоследняяЦифра=0)или((ПоследняяЦифра>=5)и(ПоследняяЦифра<=9)) Тогда
{Глобальный модуль(540)}: Операции сравнения на больше-меньше допустимы только над значениями совпадающих базовых типов (число, строка, дата)
-=VJ=-
Цитата(f12 @ 05.06.11, 22:53) необходимо зарегистрироваться для просмотра ссылки
Спасибо, нашел, сделал...но когда решил проверить - распечатать платежку - выдало вот это...


ПоследняяЦифра=Число(Прав(Строка(Копейки),1));
f12
Цитата(-=VJ=- @ 06.06.11, 0:20) необходимо зарегистрироваться для просмотра ссылки
ПоследняяЦифра=Число(Прав(Строка(Копейки),1));


Спасибо, получилось!!!
alex040269
Цитата(5_kopeek @ 05.06.11, 22:42) необходимо зарегистрироваться для просмотра ссылки
Приведите процедуру глобального модуля к такому виду:
// ===============================
// Возвращает сумму прописью
// для платежных документов.
Функция глСуммаПрописьюДляПлатежныхДокументов(Сумма) Экспорт
    Гривны    = Цел(Сумма);
    Копейки   = (Сумма - Гривны) * 100;
    ГривныСтр = Формат(Гривны, "ЧПД");
    //Если Гривны <> 0 Тогда
    //    Поз = Найти(ГривныСтр, " грив");
    //    ГривныСтр = Лев(ГривныСтр, Поз) + "грн."
    //КонецЕсли;
    //Возврат ГривныСтр + " " + Формат(Копейки,"Ч(0)2") + " коп.";
    ПоследняяЦифра=Прав(Строка(Копейки),1);
    Если (ПоследняяЦифра=0)или((ПоследняяЦифра>=5)и(ПоследняяЦифра<=9)) Тогда
        ТекстКопейки=" копійок";
    ИначеЕсли ПоследняяЦифра=1 Тогда
        ТекстКопейки=" копійка";
    ИначеЕсли ((ПоследняяЦифра>=2)и(ПоследняяЦифра<=4))  Тогда
        ТекстКопейки=" копійки";
    КонецЕсли; // Прав(Строка(Копейки),1)=0
    Возврат ГривныСтр + " " + Формат(Копейки,"Ч(0)2") + ТекстКопейки;
КонецФункции


Не проверял, НО похоже, что функция вернет 11 копейка.
попробуйте такой вариант:

// ===============================
// Возвращает сумму прописью
// для платежных документов.
Функция глСуммаПрописьюДляПлатежныхДокументов(Сумма) Экспорт
    Гривны    = Цел(Сумма);
    Копейки   = (Сумма - Гривны) * 100;
    Возврат Формат(Гривны, "ЧПД");
КонецФункции


Если не поможет, то нужно корректировать файлы *.spl в каталоге информационной базы...



Цитата(alex040269 @ 15.06.11, 22:46) необходимо зарегистрироваться для просмотра ссылки
Не проверял, НО похоже, что функция вернет 11 копейка.
попробуйте такой вариант:

// ===============================
// Возвращает сумму прописью
// для платежных документов.
Функция глСуммаПрописьюДляПлатежныхДокументов(Сумма) Экспорт
    //Гривны    = Цел(Сумма);
    //Копейки   = (Сумма - Гривны) * 100;
    Возврат Формат(Сумма, "ЧПД");
КонецФункции


Если не поможет, то нужно корректировать файлы *.spl в каталоге информационной базы...
5_kopeek
Цитата(alex040269 @ 15.06.11, 21:48) необходимо зарегистрироваться для просмотра ссылки
Не проверял, НО похоже, что функция вернет 11 копейка.

Вы правы, надо подкорректировать процедуру smile.gif Вместо этого:
    Если (ПоследняяЦифра=0)или((ПоследняяЦифра>=5)и(ПоследняяЦифра<=9)) Тогда

написать это:
    Если (ПоследняяЦифра=0)или((ПоследняяЦифра>=5)и(ПоследняяЦифра<=9))или((Копейки>=11)и(Копейки<=14)) Тогда

Или, как Вы почти верно подсказали, так:
Функция глСуммаПрописьюДляПлатежныхДокументов(Сумма) Экспорт
    Возврат Формат(Сумма, "ЧПДС");
КонецФункции

Изобретение велосипеда иногда тоже во благо wink.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.