Девальвация в Беларуси. Новое округление розничных цен или как взять на работу программиста

27.10.11

Задачи пользователя - Адаптация типовых решений

Эта статья рассчитана на тех, кто работает с "белорусской" розницей и только начинает свой путь в качестве программиста в 1с. Но будет полезна и специалистам более высокого класса. Особенно если вы хотите нанять 1с программиста на работу. В любом случае я не претендую на исключительную полезность этой статьи, но хотелось бы поделиться простым решением тривиальной задачи.

Как известно, в Беларуси  произошла девальвация рубля. В связи с этим Нацбанк решило вывести из обращения мелкие купюры достоинством 10 рублей и 20 рублей. Поэтому пару дней назад  вышло новое постановление Минторга об округлении розничных цен

Розничная цена (тариф) округляется за принятую единицу измерения (штуку, десяток, метр, килограмм, литр и т.п.). Так, значения в сумме до Br25 отбрасываются, от Br25 включительно до Br75 округляются до Br50, от Br75 рублей включительно и выше округляются до Br100.

 

Таким образом возникла задача: "Срочно сделать округление розничных цен по новым правилам в прейскурантах на товары"

 Ранее было округление до 10 рублей, что решается так 

ОркЦена = ОКР(РозничнаяЦена,-1)

 

Но здесь задача немного усложнилось:

  •  Если последние две цифры в цене меньше 25 рублей (т.е. 24 и менее), то округляем до 0 рублей  (ОКР(РозничнаяЦена,-2))
  •  Если последние две цифры в цене 25 рублей и более, то округляем до 50 рублей
  •  Если последние две цифры в цене меньше 75 рублей, то округляем до 50 рублей
  •  Если последние две цифры в цене 75 рублей и более, то округляем до 100 рублей

 

Можно решать задачу в лоб:

Получить две последние цифры розничной Цены. Проверить по условиям и прибавить опять результат к  Цене

 

 


 

Но есть вариант проще.

Достаточно переформулировать задачу и она решается в две строки (ну или даже в одну Laughing).

 

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

Цену нужно поделить на 50, затем округлить, а затем умножить на 50.

Вот такая простая формула.

 Функцию можно  создать в глобальном модуле

Функция ОкруглениеРозничнойЦены(РозничнаяЦена) Экспорт
ОкрЦена = Окр(РозничнаяЦена/50);
Возврат ОкрЦена*50;
КонецФункции

 

Или ещё проще:

Функция ОкруглениеРозничнойЦены(РозничнаяЦена) Экспорт
Возврат Окр(РозничнаяЦена/50)*50;
КонецФункции

 

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

Но такая простенькая задача, возможно, пригодится, тем кто нанимает 1с программистов на работу. Задайте такой вопрос на собеседовании, и вы уже сможете отделить начинающих программистов от специалистов более высокого уровня.

 

 

 

Вступайте в нашу телеграмм-группу Инфостарт

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Адаптация типовых решений 1С:Предприятие 8 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

32330 руб.

29.06.2023    12205    35    15    

42

Банковские операции Адаптация типовых решений Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

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

9760 руб.

17.06.2025    3532    9    0    

8

Печатные формы Адаптация типовых решений Бухгалтер Пользователь 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Расширение позволяет вывести в табличном документе факсимиле печати и подписей и/или вывести произвольную картинку из прикреплённых файлов организации для 1С УТ 11.5, КА 2.5, ERP 2.5, УНФ 3, Розница 3. Вывод факсимиле возможен в табличные документы УПД, УКД, Счёт-фактура, ТОРГ-12 и другие. Возможно настроить вывод для любых типовых макетов (Акт сверки, М-15, ТТН), для этого потребуется отредактировать макет и разместить на нём картинки с соответствующими именами, при выводе на печать в размещённые картинки будут выводиться факсимиле из прикреплённых рисунков. Редактирование осуществляется через типовой механизм в пользовательском интерфейсе.

6000 руб.

07.02.2023    13081    117    23    

73

Адаптация типовых решений 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Расширение для вывода информации об остатках и ценах номенклатуры в форме списка и выбора номенклатуры. (УТ 11, КА 2, ERP). Позволяет получать информацию о ценах, остатках и доступности в разрезе складов и характеристик номенклатуры, информацию по документам резерва.

7930 руб.

16.10.2025    1311    2    0    

2

Адаптация типовых решений 1С 8.3 1С:Бухгалтерия 3.0 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Беларусь Россия Платные (руб)

Расширение "Дополнительные документы" предназначено для создания дополнительных документов различного назначения, как форм для внесения данных так и печатных форм в расширяемой конфигурации пользовательскими средствами, без работы в конфигураторе и внесения изменений в структуру данных. Тестировалось для "1С:БП", "1С:УНФ","1С:КА"

21859 руб.

29.12.2025    1351    1    8    

2
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. wer_alex 28.10.11 13:50 Сейчас в теме
У меня это решилось изменением константы Кратность = Константа.КратностьОкругления;
ЦенаР = Окр(П_ЦенаР / Кратность, 0,1)*Кратность; Алгоритм тото же
2. rumik007 01.11.11 16:34 Сейчас в теме
а может лучше в типе цены указать округлять к 50 по арифметическим правилам ))).
3. igor_1c 18 28.11.11 18:06 Сейчас в теме
rumik007 пишет:

а может лучше в типе цены указать округлять к 50 по арифметическим правилам ))).

ну это если они есть и используются в конфигурации
4. headMade 144 15.07.12 21:56 Сейчас в теме
спс, сення пригодилось
5. Darida 24.09.12 12:07 Сейчас в теме
спс - взяла сегодня на заметку)
Для отправки сообщения требуется регистрация/авторизация