Получение цены для склада и номенклатуры на встроенном языке

1. 21.02.21 17:39 Сейчас в теме
Добрый вечер, помогите дописать код

&НаСервере
Функция НаценкаДляСклада(Идентификатор)    
    Наценка = Константы.НаценкаПоУмолчанию.Получить();
    
    //ниже надо дописать логику получения цены для склада и номенклатуры 
    СтрокаТоваров = Объект.Товары.НайтиПоИдентификатору(Идентификатор);
    если ЗначениеЗаполнено(СтрокаТоваров.Номенклатура)и ЗначениеЗаполнено(Объект.Склад) тогда
        Номенклатура =  СтрокаТоваров.Номенклатура;
        Склад = Объект.Склад;
        //....
        //Наценка = ...;
    Конецесли;
    
    //а пока процедура возвращает только константу    
    Возврат Наценка;
КонецФункции
Показать
Найденные решения
13. Aitbay 22.02.21 09:26 Сейчас в теме
немного неправильно сделана структура хранения данных
по хорошему нужно переделать
создать рег сведений с измерениями номенклатура, ТипСклада
и реквизитом цена, если цены нужно хранить по периодам то рег сведений должен быть периодическим
из справочника перенести данный в рег сведений обработкой
удалить ТЧ

на форме уже обращаемся к регистру и получаем наценку,
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. Aitbay 21.02.21 18:02 Сейчас в теме
наценка где хранится? в регистре? в справочнике складов?
может всетаки регистр сведений ЦеныНоменклатуры? и там склад, номенклатура, Цена?
3. user1542877 21.02.21 18:03 Сейчас в теме
(2) в справочнике складов
4. Aitbay 21.02.21 18:05 Сейчас в теме
в какой момент формируется наценка?
при добавлении строки в ТЧ?
склад в шапке документа 1 или в ТЧ разные склады?
5. user1542877 21.02.21 18:10 Сейчас в теме
(4) ошибка. Наценка хранится в справочнике номенклатуры с табличной частью склад, наценка
7. user1542877 21.02.21 18:12 Сейчас в теме
(4)
&НаКлиенте
Процедура ТоварыЦенаПриИзменении(Элемент)
	 //В этом случа нам надо посчитать сумм но и в зависмости от слада получить наценку, поэтому работаем с ТекущаяСтрока
    Идентификатор = Элементы.Товары.ТекущаяСтрока;
    Если Идентификатор = Неопределено Тогда
        Возврат; //исключаем ошибки в случае отсутствия данных
    КонецЕсли;
    СтрокаТоваров = Объект.Товары.НайтиПоИдентификатору(Идентификатор);
    Если СтрокаТоваров = Неопределено Тогда
        Возврат;  //исключаем ошибки в случае отсутствия данных
    КонецЕсли;
    СтрокаТоваров.Сумма=Окр(СтрокаТоваров.Количество*СтрокаТоваров.Цена,2);
    Если СкладРозничный() Тогда 
        СтрокаТоваров.ЦенаВРознице=Окр(СтрокаТоваров.Цена+СтрокаТоваров.Цена*НаценкаДляСклада(Идентификатор)/100);    
    КонецЕсли;    
КонецПроцедуры

&НаСервере
Функция НаценкаДляСклада(Идентификатор)    
    Наценка = Константы.НаценкаПоУмолчанию.Получить();
    СтрокаТоваров = Объект.Товары.НайтиПоИдентификатору(Идентификатор);
    Если ЗначениеЗаполнено(СтрокаТоваров.Номенклатура) и ЗначениеЗаполнено(Объект.Склад) Тогда
        Номенклатура =  СтрокаТоваров.Номенклатура;
        Склад = Объект.Склад;
        //....
        //Наценка = ...;
    Конецесли;   
    Возврат Наценка;
КонецФункции
Показать
6. user1542877 21.02.21 18:11 Сейчас в теме
есть склад розничный и оптовый
8. Aitbay 21.02.21 18:22 Сейчас в теме
склад получается либо розничный либо оптовый? и более никакой?
10. user1542877 21.02.21 18:25 Сейчас в теме
9. Aitbay 21.02.21 18:23 Сейчас в теме
т.е.
у номенклатуры в ТЧ 2 строки
1. оптовый наценка = 5
2. розничный наценка = 10
так получается?
11. user1542877 21.02.21 18:31 Сейчас в теме
12. user1542877 21.02.21 18:51 Сейчас в теме
13. Aitbay 22.02.21 09:26 Сейчас в теме
немного неправильно сделана структура хранения данных
по хорошему нужно переделать
создать рег сведений с измерениями номенклатура, ТипСклада
и реквизитом цена, если цены нужно хранить по периодам то рег сведений должен быть периодическим
из справочника перенести данный в рег сведений обработкой
удалить ТЧ

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