Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Помогите пожалуйста написать формулу цены в 1с 8.3! 2 страниц V   1 2 >          
Штас Подменю пользователя
сообщение 06.02.20, 16:39
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 10
Спасибо сказали: 0 раз
Рейтинг: 0

помогите написать формулу наценки товара от его цены, конфигурация Элементарная торговля, в 7ке вроде было так ?([ЦенаПоступления]>=100 и [ЦенаПоступления]=200 и [ЦенаПоступления]=300 и [ЦенаПоступления]<400,[ЦенаПоступления]*1.3,
[ЦенаПоступления]*1.2)))
так я понял что так было, синтаксиса не знаю ни того ни этого.
в 8.3 пробую пробую, читал смотрел ничего не понял и не нашел!
заранее спасибо!

Vofka Подменю пользователя
сообщение 06.02.20, 17:18
Сообщение #2

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

Штас, было бы не плохо указать конфигурацию.

fly Подменю пользователя
сообщение 06.02.20, 18:26
Сообщение #3

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 234
Спасибо сказали: 51 раз
Рейтинг: 48

Vofka @ Сегодня, 17:18 * ,
По ходу эта
Конфигурация "Элементарная торговля"

[необходимо зарегистрироваться для просмотра ссылки]

Сообщение отредактировал fly - 06.02.20, 18:27

Штас Подменю пользователя
сообщение 07.02.20, 8:08
Сообщение #4

Общительный
**
Группа: Пользователи
Сообщений: 10
Спасибо сказали: 0 раз
Рейтинг: 0

Добрый день! да это Элементарная торговля

volodya1122 Подменю пользователя
сообщение 07.02.20, 10:02
Сообщение #5

Оратор
Иконка группы
Группа: Местный
Сообщений: 336
Из: Тернопіль
Спасибо сказали: 133 раз
Рейтинг: 135.7

Штас @ Вчера, 16:39 * ,

Кто написал вам эту формулу? В ней наценка 30% никогда небудет. Там в условии написано что цена поступления одновременно должна быть и 200 и 300. А этио никак невозможно.
Переведу Вам эту формулу на человеческий язык. Если Цена поступления будет от 100 до 400 и кроме того одновременно еще она будет и 200 и 300 то наценка 30%, иначе наценка 20%. У вас в любом случае по этой формуле всегда будет наценка 20%

Сообщение отредактировал volodya1122 - 07.02.20, 10:06

Штас Подменю пользователя
сообщение 07.02.20, 12:48
Сообщение #6

Общительный
**
Группа: Пользователи
Сообщений: 10
Спасибо сказали: 0 раз
Рейтинг: 0

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

Штас Подменю пользователя
сообщение 07.02.20, 15:51
Сообщение #7

Общительный
**
Группа: Пользователи
Сообщений: 10
Спасибо сказали: 0 раз
Рейтинг: 0

нашел рабочую формулу
?(Цена <10 ,
?((Цена*1.4 / 1) = Цел(Цена*1.4 / 1), Цена*1.4, 1 * (Цел(Цена*1.4 / 1) + 1)),
?(Цена <50 ,
?((Цена*1.4 / 5) = Цел(Цена*1.4 / 5), Цена*1.4, 5 * (Цел(Цена*1.4 / 5) + 1)),
?( Цена <140 ,
?((Цена*1.4 / 10) = Цел(Цена*1.4 / 10), Цена*1.4, 10 * (Цел(Цена*1.4 / 10) + 1)),
?((Цена *1.4/ 50) = Цел(Цена*1.4 / 50), Цена*1.4, 50 * (Цел(Цена*1.4 / 50) + 1))
)))
возникли новые вопросы!!!
как она работает не могу понять
можно ли написать её более просто
подскажите пожалуйста

fly Подменю пользователя
сообщение 07.02.20, 16:11
Сообщение #8

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 234
Спасибо сказали: 51 раз
Рейтинг: 48

Штас @ Сегодня, 15:51 * ,

Работает примерно так:
если Цена <10 тогда
если (Цена*1.4 / 1) = Целое число от (Цена*1.4 / 1) тогда Цена*1.4 иначе 1 * (Целое число от (Цена*1.4 / 1) + 1)
если цена Цена <50 и т.д.

какая именно вам нужна формула, она так и не написана вами - вашими словами.

Сообщение отредактировал fly - 07.02.20, 16:15

Штас Подменю пользователя
сообщение 07.02.20, 16:22
Сообщение #9

Общительный
**
Группа: Пользователи
Сообщений: 10
Спасибо сказали: 0 раз
Рейтинг: 0

простите
вот
от 1-5 200%
от 5-10 150%
от 10-50 100%
от 50-100 70%
от 100-300 50%
от 300-600 40%
от 600-2000 30%
от 2000- 20000 25%


можете мне помочь такое написать?


от 1-5 200%
от 6-10 150%
от 11-50 100%
от 51-100 70%
от 101-300 50%
от 301-600 40%
от 601-2000 30%
от 2001- 20000 25%
так наверное правильнее написать

volodya1122 Подменю пользователя
сообщение 07.02.20, 17:25
Сообщение #10

Оратор
Иконка группы
Группа: Местный
Сообщений: 336
Из: Тернопіль
Спасибо сказали: 133 раз
Рейтинг: 135.7

Цитата(Штас @ 07.02.20, 16:22) *
от 1-5 200%
от 6-10 150%
от 11-50 100%
от 51-100 70%
от 101-300 50%
от 301-600 40%
от 601-2000 30%
от 2001- 20000 25%

Если  ЦенаПоступления <= 5 Тогда
ЦенаПродаж=ЦенаПоступления*2;
ИначеЕсли  ЦенаПоступления <= 10 Тогда
ЦенаПродаж=ЦенаПоступления*1.5;
ИначеЕсли  ЦенаПоступления <= 50 Тогда
ЦенаПродаж=ЦенаПоступления*1;
ИначеЕсли  ЦенаПоступления <= 100 Тогда
ЦенаПродаж=ЦенаПоступления*0.7;
ИначеЕсли  ЦенаПоступления <= 300 Тогда
ЦенаПродаж=ЦенаПоступления*0.5;
.....................
Иначе  // для очень больших цен
ЦенаПродаж= ЦенаПоступления;
КонецЕсли;


Сообщение отредактировал volodya1122 - 07.02.20, 17:33

fly Подменю пользователя
сообщение 07.02.20, 18:18
Сообщение #11

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 234
Спасибо сказали: 51 раз
Рейтинг: 48

volodya1122 @ Сегодня, 17:25 * ,

речь шла о наценке

Цитата(volodya1122 @ 07.02.20, 17:25) *
от 1-5 200%
от 6-10 150%
от 11-50 100%
от 51-100 70%
от 101-300 50%
от 301-600 40%
от 601-2000 30%
от 2001- 20000 25%


получается что примерно так:
Если  ЦенаПоступления <= 5 Тогда
ЦенаПродаж=ЦенаПоступления+ЦенаПоступления*2;
ИначеЕсли  ЦенаПоступления <= 10 Тогда
ЦенаПродаж=ЦенаПоступления+ЦенаПоступления*1.5;
ИначеЕсли  ЦенаПоступления <= 50 Тогда
ЦенаПродаж=ЦенаПоступления+ЦенаПоступления*1;
ИначеЕсли  ЦенаПоступления <= 100 Тогда
ЦенаПродаж=ЦенаПоступления+ЦенаПоступления*0.7;
ИначеЕсли  ЦенаПоступления <= 300 Тогда
ЦенаПродаж=ЦенаПоступления+ЦенаПоступления*0.5;
.....................
Иначе  // для очень больших цен
ЦенаПродаж= ЦенаПоступления+ЦенаПоступления*0.25;
КонецЕсли;



ну или все оборачивать в
?(Цена<=5, Цена+Цена*2, ?(Цена<=10, Цена+Цена*1,5, ?(Цена<=50, Цена+Цена*1, .......)))


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

Сообщение отредактировал fly - 07.02.20, 18:31

Штас Подменю пользователя
сообщение 08.02.20, 9:44
Сообщение #12

Общительный
**
Группа: Пользователи
Сообщений: 10
Спасибо сказали: 0 раз
Рейтинг: 0

добрый день
благодарю Вас за ответ и помощь!!
смысл и синтаксис понял, работает только 2й вариант через ? через если не работает, буду побывать теперь сам!


?(Цена<=5, Цена+Цена*2, ?(Цена<=10, Цена+Цена*1,5)) работает
?(Цена<=5, Цена+Цена*2, ?(Цена<=10, Цена+Цена*1,5, ?(Цена<=50, Цена+Цена*1))) пишу так не работает, что не так то?

Ошибка в формуле: {ОбщийМодуль.ОбщееНаСервере.Модуль(5784)}: Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(1,58)}: Ожидается символ ')'

вообще ничего не получается((((((!!

Штас Подменю пользователя
сообщение 08.02.20, 12:15
Сообщение #13

Общительный
**
Группа: Пользователи
Сообщений: 10
Спасибо сказали: 0 раз
Рейтинг: 0

получилось, понял! Спасибо Вам!
можете ещё подсказать а как в формуле указать диапазон, например ?(Цена от 1 до 10, Цена....
как такое написать языком таким?

sava1 Подменю пользователя
сообщение 08.02.20, 13:28
Сообщение #14

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2684
Из: Проскуров
Спасибо сказали: 678 раз
Рейтинг: 656.7

?(Цена<=5 И Цена>25 , 10, 12)

Штас Подменю пользователя
сообщение 10.02.20, 9:06
Сообщение #15

Общительный
**
Группа: Пользователи
Сообщений: 10
Спасибо сказали: 0 раз
Рейтинг: 0

Добрый день!
спасибо за ответ!!
подскажите если знаете, а можно как то просто округлять цену после расчетов наценки например 143 округлить до 145 а 148 до 150, то есть в большую сторону и в пределах 5грн., чтоб цены были 10, 15, 55, 60. как это можно реализовать и желательно не сильно сложно, боюсь сложно могу не понять) СПАСИБО БОЛЬШОЕ ЗАРАНЕЕ!

volodya1122 Подменю пользователя
сообщение 10.02.20, 10:17
Сообщение #16

Оратор
Иконка группы
Группа: Местный
Сообщений: 336
Из: Тернопіль
Спасибо сказали: 133 раз
Рейтинг: 135.7

Штас @ Сегодня, 9:06 * ,
ОкругленнаяЦена=5*Окр((Цена+2.49)/5,0,РежимОкругления.Окр15как20)

Вам нужно округлить до чисел кратным 5. Поэтому делим число на 5, Округляем до нулевого разряда и округленное умножаем на 5.

Исправил, так как нужно в любом случае округлять вверх то добавляем до цены 2,49

Сообщение отредактировал volodya1122 - 10.02.20, 10:44

Штас Подменю пользователя
сообщение 10.02.20, 13:25
Сообщение #17

Общительный
**
Группа: Пользователи
Сообщений: 10
Спасибо сказали: 0 раз
Рейтинг: 0

да уж, почти понял но в таком формате в конфигурации Элементарная торговля не работает , думаю что нужно писать как писали ?цена .... или что то я опять не првильно пишу
вот ошибка
Ошибка в формуле: {ОбщийМодуль.ОбщееНаСервере.Модуль(5784)}: Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(1,9)}: Переменная не определена (ОкругленнаяЦена)

я изучаю 1с всего несколько месяце, извините, но я поэтому могу что то говорить, формулировать или спрашивать не совсем правильно или даже глупо.

volodya1122 Подменю пользователя
сообщение 11.02.20, 9:45
Сообщение #18

Оратор
Иконка группы
Группа: Местный
Сообщений: 336
Из: Тернопіль
Спасибо сказали: 133 раз
Рейтинг: 135.7

Откройте личные сообщения (вверху страницы)

fly Подменю пользователя
сообщение 11.02.20, 10:13
Сообщение #19

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 234
Спасибо сказали: 51 раз
Рейтинг: 48

Цитата(Штас @ 10.02.20, 13:25) *
Переменная не определена (ОкругленнаяЦена)


в данном случае в коде ссылается на ОкругленнаяЦена, а она нигде до этого не определена/не объявлена (или определена, только если выполнены условия, а условия не выполнились).

по факту надо смотреть код программы, чтоб сказать однозначно.

Штас Подменю пользователя
сообщение 12.02.20, 15:15
Сообщение #20

Общительный
**
Группа: Пользователи
Сообщений: 10
Спасибо сказали: 0 раз
Рейтинг: 0

спасибо Вам за ответы, написал сам и даже работает, скорее всего не очень красиво и правильно но:

?(Цена<=15, (окр(((((цена+цена/100*150))+2.49)/5))*5), (?(Ц

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


2 страниц V   1 2 >
Ответить Новая тема
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 29.03.24, 17:08
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!