[РЕШЕНО] Число прописью

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

  1. TopicStarter Overlay
    Александр 1906
    Offline

    Александр 1906 Опытный в 1С

    Регистрация:
    25 июн 2015
    Сообщения:
    351
    Симпатии:
    3
    Баллы:
    29
    Добрый день! подскажите есть функция ЧислоПрописью которая мне выводит к примеру Пять тысяч шестьсот рублей 00 копеек, скажите как можно что бы разбить эту запись на Пять тысяч шестьсот рублей и 00 копеек, так что бы эти записи я мог вывести в разных строчках макета?
  2. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    Доброго,
    поскольку результат - строка, далее можно использовать
    "СтрРазделить(<Строка>, <Разделитель>, <ВключатьПустые>)" при условии, что разработку ведете на платформе 8.3.6 и выше

    Далее смотрите справку в программе
    alexburn нравится это.
  3. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.781
    Симпатии:
    509
    Баллы:
    204
    Немного переписать функцию. Вернее разложить число так, как вы хотите и потом уже пихать в массив и возвращать
  4. TopicStarter Overlay
    Александр 1906
    Offline

    Александр 1906 Опытный в 1С

    Регистрация:
    25 июн 2015
    Сообщения:
    351
    Симпатии:
    3
    Баллы:
    29
    а какой разделитель можно использовать в моем случае, ведь нет ни точек ни запятых? и возвращает массив то есть array[0] это до разделителя и array[1] после?
  5. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    Пробел - " "
  6. TopicStarter Overlay
    Александр 1906
    Offline

    Александр 1906 Опытный в 1С

    Регистрация:
    25 июн 2015
    Сообщения:
    351
    Симпатии:
    3
    Баллы:
    29
    насколько я понимаю если я укажу пробел тогда у меня все разобьется на отдельные слова, и как я могу копейки отделить от рублей если количество слов будет каждый раз разное
  7. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.781
    Симпатии:
    509
    Баллы:
    204
    Вот для этого я и говорил чтобы "пилить" число на состаляющие :)
  8. TopicStarter Overlay
    Александр 1906
    Offline

    Александр 1906 Опытный в 1С

    Регистрация:
    25 июн 2015
    Сообщения:
    351
    Симпатии:
    3
    Баллы:
    29
    есть ли в 1с возможность вывести у числа с точкой вывести только дробную часть наример 1856.63 вывести только 63? может быть проще у меня получится сделать
  9. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    алгоритм простой, вначале прописью целое число, затем прописью копейки
    всего то два раза вызвать "процедурины"
    --- Объединение сообщений, 1 авг 2016 ---
    см. в синтаксис помощнике "Цел, Окр, Формат"
    --- Объединение сообщений, 1 авг 2016 ---
    Внимательно прочитать справку по "ЧислоПрописью"
    Последнее редактирование: 1 авг 2016
  10. TopicStarter Overlay
    Александр 1906
    Offline

    Александр 1906 Опытный в 1С

    Регистрация:
    25 июн 2015
    Сообщения:
    351
    Симпатии:
    3
    Баллы:
    29
    я не силен в 1с но вы говорите сначала целое число прописью его я так понимаю это можно сделать если в функции числопрописью установить значение без копеек, а как отдельно копейки вывести та? их мне можно и не прописью
  11. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.781
    Симпатии:
    509
    Баллы:
    204
    От дробного отнимаете целое - вот вам и копейки.
  12. TopicStarter Overlay
    Александр 1906
    Offline

    Александр 1906 Опытный в 1С

    Регистрация:
    25 июн 2015
    Сообщения:
    351
    Симпатии:
    3
    Баллы:
    29
    может я не догоняю но у меня при такой записи выводит с копейками
    Код:
    форматстрока= "НД = ложь;";
            целое=Цел(Сумма);
            Возврат ЧислоПрописью(целое,форматстрока ,Валюта.ПараметрыПрописиНаРусском);
    
  13. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    <ПараметрыПредметаИсчисления> (необязательный)

    Тип: Строка.
    Представляет собой строковое значение, определяющее параметры предмета исчисления. Параметры предмета исчисления перечисляются через запятую. Формат строки зависит от кода локализации.
    Для русского и белорусского языков (ru_RU, be_BY):
    "рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 2", где:
    "рубль, рубля, рублей, м" – предмет исчисления:
    • рубль – единственное число именительный падеж;
    • рубля – единственное число родительный падеж;
    • рублей – множественное число родительный падеж;
    • м – мужской род (ж – женский род, с - средний род);
    • "копейка, копейки, копеек, ж" – дробная часть, аналогично предмету исчисления (может отсутствовать);
    • "2" – количество разрядов дробной части (может отсутствовать, по умолчанию равно 2).
    --- Объединение сообщений, 1 авг 2016 ---
    Выдранный пример :
    Код:
        // Дополнительный отпуск, дней
        ДополнительныйОтпускЗаВредныеУсловияДнейЦифрами  = ?(ЕстьДанныеПоДокументу, ?(СокрЛП(СтрокаДанныхДокументов.ЗаВредностьКоличествоДней) = "", 0, СтрокаДанныхДокументов.ЗаВредностьКоличествоДней), 0);
        ДополнительныйОтпускЗаВредныеУсловияДнейПрописью = ЧислоПрописью(ДополнительныйОтпускЗаВредныеУсловияДнейЦифрами, "Л=ru_RU;ДП=Ложь", ",,,,,,,,0");
    
    Последнее редактирование: 1 авг 2016
  14. Leprecus
    Offline

    Leprecus Опытный в 1С

    Регистрация:
    12 окт 2015
    Сообщения:
    80
    Симпатии:
    0
    Баллы:
    26
    Код:
    ЧислоПроп = ЧислоПрописью(Число);
    Индекс = Найти(ЧислоПроп , " коп");
    РублиПрописью = Лев(ЧислоПроп,Индекс-4);
    КопейкиПрописью =Сред(ЧислоПроп,Индекс-2,2);
    Изврат от меня)))
  15. TopicStarter Overlay
    Александр 1906
    Offline

    Александр 1906 Опытный в 1С

    Регистрация:
    25 июн 2015
    Сообщения:
    351
    Симпатии:
    3
    Баллы:
    29
    я сейчас взорвусь вот число 21826-35 мне выводит Двадцать одна тысяча восемьсот двадцать шесть 00, как эти нули блин убрать, что настроить не могу понять
  16. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.572
    Симпатии:
    717
    Баллы:
    204
    Внимательно, вдумчиво прочитайте синтаксис-помощьник и поэкспериментируйте.
    Последнее редактирование: 1 авг 2016
  17. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.781
    Симпатии:
    509
    Баллы:
    204
    Флаг нужно выставлять, по умолчанию выводятся копейки.
  18. TopicStarter Overlay
    Александр 1906
    Offline

    Александр 1906 Опытный в 1С

    Регистрация:
    25 июн 2015
    Сообщения:
    351
    Симпатии:
    3
    Баллы:
    29
    только что и делаю что иксперементирую, мне уже не смешно где в параметре ФорматнаяСтрока функции ЧислоПрописью указывается что не выводить дробную часть?
    --- Объединение сообщений, 1 авг 2016 ---
    форматстрока= "НД = ложь;НП=ложь;ДП=истина";
    вот что я пробовал
    --- Объединение сообщений, 1 авг 2016 ---
    сами копейки уже не выводятся , выводится дробная часть как ноль или 00 взависимости от настройки, число целое без дробной части что я делаю ни так?
    Последнее редактирование: 1 авг 2016
  19. TopicStarter Overlay
    Александр 1906
    Offline

    Александр 1906 Опытный в 1С

    Регистрация:
    25 июн 2015
    Сообщения:
    351
    Симпатии:
    3
    Баллы:
    29
    сделал вот так:
    Код:
     ЧислоПроп = ЧислоПрописью(цел(Общее.пСуммаДокумента));
        Индекс = Найти(ЧислоПроп , " 00");
        РублиПрописью = Лев(ЧислоПроп,Индекс);
        Ордер2.Параметры.пСуммаПрописью1 =  РублиПрописью;
    ,
    все заработало, объясните как Лев работает, просто стирает заданное значение?
  20. TopicStarter Overlay
    Александр 1906
    Offline

    Александр 1906 Опытный в 1С

    Регистрация:
    25 июн 2015
    Сообщения:
    351
    Симпатии:
    3
    Баллы:
    29
    Всем спасибо во всем разобрался)))
    alexburn нравится это.

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