Как сделать копейки в 1с

Добавил пользователь Валентин П.
Обновлено: 05.10.2024

Эта статья будет о том, как получить представление числа или суммы прописью, используя стандартную функцию ЧислоПрописью().

Пишу это в качестве шпаргалки, в том числе и для себя, ибо требуется достаточно часто, а запоминать все эти конструкции нет никакого желания (синтаксис помощник, как-то не сильно помогает).

В этой статье я не буду приводить описание функции ЧислоПрописью() и ее параметров — это есть в синтаксис-помощнике.

Число прописью

Начнем с простой записи числа прописью:

Результат правда будет немного не таким, каким хотелось бы — дробная часть будет записана цифрами.

Можно попробовать сделать так:

Но это все равно не то, так как нельзя понять где заканчивается целая часть и начинается дробная.

Для решения этой проблемы можно задействовать третий параметр:

Результат выгляди уже более или менее приемлемо, но такой способ совершенно не подходит, если количество знаков после запятой неизвестно заранее.

Стандартного и универсального решения этой проблемы, к сожалению, не существует (поправьте меня, если я ошибаюсь).

Сумма прописью

Теперь перейдем к представлению сумм прописью (по суммой подразумевается пара — число+валюта). Здесь все гораздо лучше — знаков после запятой практически всегда два.

Сумма в российских рублях на разных языках:

Сообщить(ЧислоПрописью(1234.56, "Л=ru_RU;ДП=Истина", "рубль,рубля,рублей,м,копейка,копейки,копеек,ж,2"));

Сообщить(ЧислоПрописью(1234.56, "Л=uk_UA;ДП=Истина", "карбованець,карбованцi,карбованцiв,м,копiйка,копiйки,копiйок,м,2"));

Сообщить(ЧислоПрописью(1234.56, "Л=lv_LV;ДП=Истина", "rublis,rubli,rublu,v,kapeika,kapeiki,kapeiku,s,2"));

Сумма в долларах США на разных языках:

Сообщить(ЧислоПрописью(1234.56, "Л=ru_RU;ДП=Истина", "доллар,доллара,долларов,м,цент,цента,центов,м,2"));

Сообщить(ЧислоПрописью(1234.56, "Л=uk_UA;ДП=Истина", "долар,долара,доларiв,м,цент,цента,центiв,м,2"));

Сообщить(ЧислоПрописью(1234.56, "Л=lv_LV;ДП=Истина", "dolars,dolari,dolaru,v,cent,centi,centu,v,2"));

Сумма в евро на разных языках:

Сообщить(ЧислоПрописью(1234.56, "Л=ru_RU;ДП=Истина", "евро,евро,евро,м,евроцент,евроцента,евроцентов,м,2"));

Сообщить(ЧислоПрописью(1234.56, "Л=uk_UA;ДП=Истина", "євро,євро,євро,м,євроцент,євроцента,євроцентів,м,2"));

Сумма в украинских гривнах на разных языках:

Сообщить(ЧислоПрописью(1234.56, "Л=ru_RU;ДП=Истина", "гривна,гривны,гривен,ж,копейка,копейки,копеек,ж,2"));

Сообщить(ЧислоПрописью(1234.56, "Л=uk_UA;ДП=Истина", "гривня,гривнi,гривень,ж,копiйка,копiйки,копiйок,ж,2"));

Сообщить(ЧислоПрописью(1234.56, "Л=lv_LV;ДП=Истина", "grivna,grivni,grivnu,s,kapeika,kapeiki,kapeiku,s,2"));

Сумма в латвийских латах на разных языках:

Сообщить(ЧислоПрописью(1234.56, "Л=ru_RU;ДП=Истина", "лат,лата,латов,м,сантим,сантима,сантимов,м,2"));

Сообщить(ЧислоПрописью(1234.56, "Л=uk_UA;ДП=Истина", "лат,лата,латiв,м,сантим,сантима,сантимiв,м,2"));

Сообщить(ЧислоПрописью(1234.56, "Л=lv_LV;ДП=Истина", "lats,lati,latu,v,santims,santimi,santimu,v,2"));

Сумма в румынских леях на разных языках:

Сумма в болгарских львах на разных языках:

Сообщить(ЧислоПрописью(1234.56, "Л=ru_RU;ДП=Истина", "лев,лева,левов,м,стотинка,стотинки,стотинок,ж,2"));

Сообщить(ЧислоПрописью(1234.56, "Л=uk_UA;ДП=Истина", "лев,лева,левів,м,стотинка,стотинки,стотинок,ж,2"));

Сообщить(ЧислоПрописью(1234.56, "Л=lv_LV;ДП=Истина", "leva,levas,levas,s,stotinka,stotinki,stotinki,s,2"));

Казахский язык и валюту я пропустил из-за сложностей с отображением символов.

На этом все, надеюсь данная статья вам помогла.

Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

(оценок: 13, средняя оценка: 4,38 из 5)

Сразу скажу что я не гуру 1С программист, опыт у меня не совсем большой но все же он есть. Я достаточно часто пишу статьи в которых стараюсь поделиться полезными советами или дать более полный ответ на какой либо вопрос касаемый 1С разработки. Я когда то сам был новичком и пытался найти ответы на свои вопросы на различных форумах. Где как правило сидят опытные программисты и они дают советы с высоты своего опыта. Которые в свою очередь новичкам мало чем помогают. Сегодня хочу разобрать тему округления чисел. Поговорим об округление целой и дробной части.

Если вы только начинаете свой путь 1С программиста то рекомендую прочитать следующие статьи.

Программное округление целой и дробной части числа

И так программно можно округлить любое число как до целых так и до десятых , сотых. Делается это с помощью функции Окр, синтаксис такой.

Окр — сама функция

Число — соответственно число которое хотим округлить

0 — разрядность, число знаков после запятой

0 — Режим округления 0 в меньшую сторону 1 в большую, его можно не указывать по умолчанию всегда 0

Скажем если взять число = 12,123 то после применения Окр(Число , 0, 0); число будет 12.

Надеюсь объяснил понятно если нет то можете открыть Синтаксис-помощник.

1C Округление

Третья и четвертая кнопка округляет дробную часть, т.е копейки, возьмем тоже число 10,12. Если нажмем третью кнопку результатом будет число 10,20, а если нажмем четвертую то 10,10.

Программное округление целой и дробной части числа 1С

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

В результате все суммы будут округлены до сотых причем в меньшую сторону. Надеюсь все объяснил достаточно подробно но если остались вопросы обязательно спрашивайте!

Такая же фигня, стала исправлять предыдущие ведомости на копии базы, смотрю, а там округляет до рублей и исправлять не дает. Что за фигня.

"Чем сильнее зверь, тем он спокойнее. " или так : чем спокойней зверь, тем он сильнее.

MarinaAnna, а что такое "исправлять предыдущие ведомости на копии базы"?
Перепровела прошлые периоды и там выплата по факту была с коп, а исправилась на полные рубли?

Такая же фигня, стала исправлять предыдущие ведомости на копии базы, смотрю, а там округляет до рублей и исправлять не дает. Что за фигня.

а что такое "исправлять предыдущие ведомости на копии базы"?
Перепровела прошлые периоды и там выплата по факту была с коп, а исправилась на полные рубли?

"Чем сильнее зверь, тем он спокойнее. " или так : чем спокойней зверь, тем он сильнее.

Посмотрела. Ведомость на экране выдает без копеек, открываю печатную форму в 1С-ке , там прописано с копейками, соответствнно и РКО подцепляется и в РКО прописывает сумму с копейками, но это так неудобно, когда ты н-р составла ведомость , в ней видишь что к выплате 1000 руб, а в печатной форме например 1000 руб 80 коп. Печатную же форму не всегда сразу распечатывают и не всегда открывают сразу, а в кассе например денег есть только 1000 или их нет, их решили займом положить туда, а в результате 80 коп повисают, ну в общем доп геморр, теперь для того чтобы знать хватает ли денег в кассе, нужно сначала ведомость открыть печатную форму и увидеть сколько там в результате нужно денег, а это я посмотрела по ведомости , там где у меня в ведомости 1 чел, а если в ведомости 100 чел и у каждого с копейками к выплате ? в общем бред какой-то. 1-Сники намудрили чего-то . И раньше в ведомстях не было колонки НДФЛ, а с каким-то обновлением она появилась, у меня в другой фирме 1С 8.3 базовая релиз 64.54, там до последней версии не обновляла, потому что нужно платформу обновлять, поэтому там до последней не стала обновлять, и там все все с копейками в ведомости и без колонки НДФЛ , а в этой обновлена и платформа и релиз 65.80, и вот там такая фигня.

"Чем сильнее зверь, тем он спокойнее. " или так : чем спокойней зверь, тем он сильнее.

Aisha12 --> Aisha12


Здравствуйте! Вопрос такой: 1С:7.7 в документе Перемещение ОС в печатную форму не выводятся копейки от суммы, я прописывала в модуле Стоимость =
БалансоваяСтоимость-ИзносНаКонецМесяца; БалансоваяСтоимость и ИзносНаКонецМесяца это столбцы в диалоге, как вывести копейки? Если просто вывести в
печатную форму шаблон [БалансоваяСтоимость-ИзносНаКонецМесяца], тогда сумма выводится с копейками, как положено, но мне надо именно в модуле прописать.

Домовик --> Домовик


у вас запятая в форматной строке - первое что бросается в глаза. должно по идее "Ч015.2"

Aisha12 --> Aisha12


у вас запятая в форматной строке - первое что бросается в глаза. должно по идее "Ч015.2"


запятая это как разделитель вместо него можно - поставить, мне сначала главное, чтоб Стоимость правильно выводила, Стоимость= БалансоваяСтоимость-ИзносНаКонецМесяца, что не так в этой формуле и почему он выводит как-будто бы округленное число? Никаких функций Окр() и Цел() я не прописывала. Конфигурация написана с нуля.

Домовик --> Домовик


Aisha12 --> Aisha12


Домовик --> Домовик


удивительно, что с запятой идет.
проверяйте далее.

Aisha12 --> Aisha12


Все исходит отсюда. До этого в печатных формах не было колонок Сумма и Цена, то есть просто балансовая стоимость и сумма износа указывалась, а сейчас сумма и цена. И сверяясь с Бухгалтерией 8.2 пришла к выводу, что сумма перемещения и есть БалансоваяСтоимость отнять Износ, может изначально все не правильно?

vadim007 --> vadim007


Здравствуйте! Вопрос такой: 1С:7.7 в документе Перемещение ОС в печатную форму не выводятся копейки от суммы, я прописывала в модуле Стоимость =

Aisha12 --> Aisha12


Нет, конфигурация написанная с нуля, писала не я, но сейчас поставить печатную форму пытаюсь

vadim007 --> vadim007


Aisha12 --> Aisha12


Поняла в чем ошибка!! Не знаю где но кажется для Стоимости уже стоит значение,
Поставила другое имя

Домовик --> Домовик


Стоим - переменная, которую вы придумали, по умолчанию она безразмерная, и принимает тип и размерность значения, кот вы ей присваиваете.

Но Стоим - не реквизит документа, поэтому Итог() конечно же не может применяться.

Стоимость - реквизит табличной части вашего документа, Итог() можно применять, но, скорее всего, а точнее это должны проверить Вы, этому реквизиту задана точность 0.

Используйте Сообщить() на каждом этапе, где возникают сомнения.

Aisha12 --> Aisha12


Стоим - переменная, которую вы придумали, по умолчанию она безразмерная, и принимает тип и размерность значения, кот вы ей присваиваете.

Но Стоим - не реквизит документа, поэтому Итог() конечно же не может применяться.

Стоимость - реквизит табличной части вашего документа, Итог() можно применять, но, скорее всего, а точнее это должны проверить Вы, этому реквизиту задана точность 0.

Используйте Сообщить() на каждом этапе, где возникают сомнения.

Спасибо, кажется, начала соображать. То есть, Итог - это есть реквизит? Я его не задавала. Оказывается есть реквизит Стоимость, просто он не используется, но получается ему присваивается значение 0, хотя я не нашла в каком именно месте присваивается. Мне сейчас сделать реквизит Стоим, чтобы просчитывался Итог?

Домовик --> Домовик


Заходите в конфигуратор находите документ ПеремещениеОС, находите реквизиты Табличной части, среди них Стоимость, смотрите свойства реквизита и какая установлена точность.
если ноль, то уточните у бухгалтера, можно ли задать точность 2.

пока ничего не меняйте в конфигураторе, а обойдитесь только изменением кода:

Aisha12 --> Aisha12


Итог() - метод, кот. применяется к реквизиту документа Стоимость:

Заходите в конфигуратор находите документ ПеремещениеОС, находите реквизиты Табличной части, среди них Стоимость, смотрите свойства реквизита и какая установлена точность.
если ноль, то уточните у бухгалтера, можно ли задать точность 2.

пока ничего не меняйте в конфигураторе, а обойдитесь только изменением кода:

АА!! Вы гений!! Как я до этого не додумаалась?? Это же мелочь такая!! Вот как после этого головой не разбиваться?? Если изменить код Всего=Всего+Стоим; то ничего не выводит, только пустую строку. А если поставить точность для реквизита Стоимость, то выводит копейки!! Спасибо огромное.

При создании документа "Выплата заработной платы" нужно нажать кнопку "Рассчитать" там будет пункт "Округлить сумму к выплате". Дальше вылезет окошко с вариантами округления, выберете подходящее и все суммы округлятся

Но ведь округлить просили начисления и удержания, а не выплату

А это разве вообще законно округлять сами начисления. Сколько положено столько и должно быть начисленно:-) А вот выдавать с копейками неудобно. И обычно бухгалтерия округляет сумму к выдаче, при этом остается долг за предприятием в виде этих копеек. И в программе в настройках указывается Округление ВЫПЛАТ по умолчанию.

Читайте также: