Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 16:54

Процент наценки на каждую номенклатуру в отдельности

Автор EritikWoW, 04 июн 2013, 03:57

0 Пользователей и 1 гость просматривают эту тему.

EritikWoW

1С:Предприятие 8.2 (8.2.15.319)
"Бухгалтерия для Украины", редакция 1.2.

Доброго времени суток...
Помогите пожалуйста решить такую проблемку
Нужно сделать процент наценки для каждой номенклатуры в отдельности операясь на тип цен в договоре контрагента.... (их будет 5)
Сделал в номенклатуре реквезит Наценка в форме разбил пока что на 2 вида (НаценкаРП и НаценкаОП)
Изображение
Дальше в форме РТУ сделал 3 новых столбца
"Наценка" - Это сам процент наценки (Береться из номенклатуры на основании "Тип цен" из договора текущего контрагента)
"СуммаНаценки" - Сумма наценки на 1 единицу товара (Вычесляться по формуле)
Новый реквезит "Цена" - Цена продажи (Вычесляеться по формуле)
Старый реквезит "Цена" переименовал в "ЦенаБезНаценки"
Сделал так дабы не коробить печатную форму....

Формула вычесления:

ЭлементыФормы.Товары.ТекущиеДанные.СуммаНаценки = (ЭлементыФормы.Товары.ТекущиеДанные.ЦенаБезНаценки * ЭлементыФормы.Товары.ТекущиеДанные.Наценка)/100;
ЭлементыФормы.Товары.ТекущиеДанные.Цена = ЭлементыФормы.Товары.ТекущиеДанные.ЦенаБезНаценки + ЭлементыФормы.Товары.ТекущиеДанные.СуммаНаценки;
ЭлементыФормы.Товары.ТекущиеДанные.СуммаБезСкидки = ЭлементыФормы.Товары.ТекущиеДанные.Цена * ЭлементыФормы.Товары.ТекущиеДанные.Количество;
ЭлементыФормы.Товары.ТекущиеДанные.Сумма = ЭлементыФормы.Товары.ТекущиеДанные.СуммаБезСкидки - ЭлементыФормы.Товары.ТекущиеДанные.СуммаСкидки;



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


Если ЭлементыФормы.Контрагент.Значение.ОсновнойДоговорКонтрагента.ТипЦен.Наименование = "Основная цена закупки"
Тогда Наценка = ЭлементыФормы.Товары.Колонки.Номенклатура.ЭлементУправления.Значение.НаценкаОП;
ИначеЕсли ЭлементыФормы.Контрагент.Значение.ОсновнойДоговорКонтрагента.ТипЦен.Наименование = "Основная цена продажи"
Тогда Наценка = ЭлементыФормы.Товары.Колонки.Номенклатура.ЭлементУправления.Значение.НаценкаРП;
КонецЕсли;


Когда работает данный код то:
1. Если у номенлатура не выстален в наценке хотя бы "0" то выбивает ошибку..
2. Не хочет менят вид наценки на основе договора... тоесть всегда выбирает только 1 вид и не меняет его если я меняю "Тип цен" в договоре контрагента...
3. Не пересчитывает форму...

Yura063

а почему не хранить наценку в регистре сведений?
Добавлено: 04 июн 2013, 09:20


Цитата: EritikWoW от 04 июн 2013, 03:57ТипЦен.Наименование = "Основная цена закупки"

Попробуйте в условии использовать код, а не наименование!
Помогли, отблагодари!

EritikWoW

ЦитироватьПопробуйте в условии использовать код, а не наименование!

А в чем логика.. ? поменять шило на мыло ? =) Я по точке останова посмотрел все вытягивается просто не меняется в самом документе...

Цитироватьа почему не хранить наценку в регистре сведений?

А разница ? Поясните если не сложно в чем будет заключаться разница если я сделаю так... ?

Dethmontt

Вот это портянки? :xfbnsdfb:
Добавлено: 04 июн 2013, 09:50


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

EritikWoW

Цитата: Dethmontt от 04 июн 2013, 09:49
Вот это портянки? :xfbnsdfb:
Добавлено: 04 июн 2013, 09:50


Давайте скратим написанное, а то не читается что то...

С при великим удовольствием если подскажете как ! =))):ooifh:

Dethmontt

Если вы все это пишите в модуле формы, то. Было бы более читаемо если сделать так
1.
ТекСтрока = ЭлементыФормы.Товары.ТекущиеДанные;
ТекСтрока.СуммаНаценки = (ТекСтрока.ЦенаБезНаценки * ТекСтрока.Наценка)/100;

2.
ЭлементыФормы.Контрагент.Значение.ОсновнойДоговорКонтрагента.ТипЦен.Наименование
Заменить на это
Контрагент.ОсновнойДоговорКонтрагента.ТипЦен.Наименование

И вот это что такое?
ЭлементыФормы.Товары.Колонки.Номенклатура.ЭлементУправления.Значение.НаценкаОП;
Добавлено: 04 июн 2013, 09:56


Проверьте в отладчике чуму равно
ЭлементыФормы.Контрагент.Значение
и
Контрагент
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Dethmontt

Цитата: EritikWoW от 04 июн 2013, 03:571. Если у номенлатура не выстален в наценке хотя бы "0" то выбивает ошибку..
Я надеюсь ошибку угадывать не придется?
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

EritikWoW

ЦитироватьИ вот это что такое?
ЭлементыФормы.Товары.Колонки.Номенклатура.ЭлементУправления.Значение.НаценкаОП;

Это ссылка на процент наценки... То есть "НаценкаОП" это одно из полей ввода на скриншоте...
Добавлено: 04 июн 2013, 10:08


ЦитироватьЯ надеюсь ошибку угадывать не придется?

{Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента.Форма(1651)}: Преобразование значения к типу Число не может быть выполнено
   ЭлементыФормы.Товары.ТекущиеДанные.СуммаНаценки = (ЭлементыФормы.Товары.ТекущиеДанные.ЦенаБезНаценки * ЭлементыФормы.Товары.ТекущиеДанные.Наценка)/100; 

Dethmontt

Еще раз - напишите нормально.......

ТекСтрока = ЭлементыФормы.Товары.ТекущиеДанные;
Если ТекСтрока=Неопределено Тогда
   Возврат; //Считать нечего, активной строки нет!
КонецЕсли;

ТекСтрока.СуммаНаценки = (ТекСтрока.ЦенаБезНаценки * ТекСтрока.Наценка)/100;

Добавлено: 04 июн 2013, 10:12


С варКрафта на 1С? :xfbnsdfb:
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

EritikWoW

ЦитироватьС варКрафта на 1С? :xfbnsdfb:

У всех у нас есть свои увлечения... =)

Добавлено: 04 июн 2013, 10:43


Походу все щас обкатаю и напишу о результатах ! =))


Добавлено: 04 июн 2013, 10:54


Цитата: Dethmontt от 04 июн 2013, 10:11
Еще раз - напишите нормально.......

ТекСтрока = ЭлементыФормы.Товары.ТекущиеДанные;
Если ТекСтрока=Неопределено Тогда
   Возврат; //Считать нечего, активной строки нет!
КонецЕсли;

ТекСтрока.СуммаНаценки = (ТекСтрока.ЦенаБезНаценки * ТекСтрока.Наценка)/100;

Добавлено: 04 июн 2013, 10:12


С варКрафта на 1С? :xfbnsdfb:

Не прокатило так что пришлось немного переделать... =)
Если ТекСтрока.Наценка = ""
Тогда ТекСтрока.Наценка = "0"
КонецЕсли;

Добавлено: 04 июн 2013, 10:57


Ток теперь бы еще сделать так что при смене типа цен и при изменении номенклатуры все это обновлялось =)
Добавлено: 04 июн 2013, 12:54


Я щас ток малость не могу понять:
Вот здесь
   
Если Контрагент.ОсновнойДоговорКонтрагента.ТипЦен.Наименование = "Основная цена закупки"

что бы не только "ОсновнойДоговорКонтрагента" использовался что нужно вставить ?

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск