Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Организовать расчет ставки НДС
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
Астахов
я стажер делаю задания и застрял вот на таком :
Нужно зделать в накладных что бы расчитовался НДС
Создал справочник "Виды НДС" (и переодический регистр сведений для хранения ставки НДС в %) ,потом в накладных(приходная и расходная) добавил поля ЦенаБезНДС,НДС,ЦенаСНДС, вот мне нужно зделать что бы цена с ндс розчитывалась сама при выборе НДС (безНДС,ставка 0%,ставка7%,ставка20%)
пробовал вот такой код
&НаКлиенте
Процедура ТабличнаяЧасть1НДСПриИзменении(Элемент)
    стр=Элементы.ТабличнаяЧасть1.ТекущиеДанные;
    стр.ЦенаСНДС=стр.НДС*стр.Цена+стр.цена;
КонецПроцедуры

Прошу помощи!
Астахов
Ребят попробывал вот етот код и выбивает ошибку "поле объекту БезНДС не виявленно"
помогите
&НаКлиенте
Процедура ТабличнаяЧасть1НДСПриИзменении(Элемент)
    стр=Элементы.ТабличнаяЧасть1.ТекущиеДанные;
    стр.ЦенаСНДС=ПолучитьЦенаСНДС(объект.Дата,объект.БезНДС,объект.ставка0,объект.ставка20,объект.ставка7);
КонецПроцедуры

&НаСервере
Функция ПолучитьЦенаСНДС (Дата,БезНДС,ставка0,ставка20,ставка7);
        Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ПриходнаяНакладнаяТабличнаяЧасть1.Цена,
        |    ПриходнаяНакладнаяТабличнаяЧасть1.НДС,
        |    ПриходнаяНакладнаяТабличнаяЧасть1.ЦенаСНДС,
        |    НДССрезПоследних.Период,
        |    НДССрезПоследних.БезНДС,
        |    НДССрезПоследних.ставка0,
        |    НДССрезПоследних.ставка7,
        |    НДССрезПоследних.ставка20,
        |    НДССрезПоследних.безНДСС,
        |    НДССрезПоследних.ставк0,
        |    НДССрезПоследних.ставк7,
        |    НДССрезПоследних.ставк20
        |ИЗ
        |    РегистрСведений.НДС.СрезПоследних(
        |            &Дата,
        |            БезНДС = &БезНДС
        |                И ставка0 = &ставка0
        |                И ставка20 = &ставка20
        |                И ставка7 = &ставка7) КАК НДССрезПоследних,
        |    Документ.ПриходнаяНакладная.ТабличнаяЧасть1 КАК ПриходнаяНакладнаяТабличнаяЧасть1";
    
    Запрос.УстановитьПараметр("БезНДС", БезНДС);
    Запрос.УстановитьПараметр("Дата", Дата);
    Запрос.УстановитьПараметр("ставка0", ставка0);
    Запрос.УстановитьПараметр("ставка20", ставка20);
    Запрос.УстановитьПараметр("ставка7", ставка7);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Если ВыборкаДетальныеЗаписи.Следующий() Тогда
        ЦенаСНДС =ВыборкаДетальныеЗаписи.Цена*(ВыборкаДетальныеЗаписи.НДС*0.1)+ВыборкаДетальныеЗаписи.Цена;
          Возврат ЦенаСНДС;
    КонецЕсли;
    
    
КонецФункции


зделал!вот правельный код
&НаКлиенте
Процедура ТабличнаяЧасть1НДСПриИзменении(Элемент)
    стр=Элементы.ТабличнаяЧасть1.ТекущиеДанные;
    стр.ЦенаСНДС=стр.Цена*(ПолучитьЦенаСНДС(объект.Дата,стр.НДС)*0.01)+стр.Цена;
    стр.Сумма = стр.ЦенаСНДС * стр.количество;
КонецПроцедуры

&НаСервере
Функция ПолучитьЦенаСНДС (Дата, ВидНДС);
        Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    НДССрезПоследних.Ставка
        |ИЗ
        |    РегистрСведений.НДС.СрезПоследних(&Дата, ВидНДС = &ВидНДС) КАК НДССрезПоследних";
    Запрос.УстановитьПараметр("Дата",Дата);
    Запрос.УстановитьПараметр("ВидНДС",ВидНДС);
        
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Если ВыборкаДетальныеЗаписи.Следующий() Тогда
          Возврат ВыборкаДетальныеЗаписи.Ставка;
    КонецЕсли;
    
    
КонецФункции
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.