Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
16 Ноя 2018, 18:32
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Помогите новичку! Пересчет сумм при изменение ставки НДС  (Прочитано 4537 раз)

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

Оффлайн аня

  • *
  • Сообщений: 12
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-05-28
  • Сайт: 
Добрый день!
Я новичок!
Создаю документ поступление тмц.
На количество и цену сделала процедуру
Процедура ПриИзмененииКоличествоЦены()   
 СуммаБезНДС=Количество*Цена; 
 Итого=Количество*Цена;   
   Если СтавкаНДС=Перечисление.СтавкиНДС.НДС10 тогда
      ПрНДС=10;   
   ИначеЕсли СтавкаНДС=Перечисление. СтавкиНДС.НДС18 тогда
       ПрНДС=18; 
 ИначеЕсли СтавкаНДС=Перечисление. СтавкиНДС.БезНДС тогда
       ПрНДС=0;
КонецЕсли;
   СуммаНДС=СуммаБезНДС* ПрНДС/100;
   Итого=СуммаБезНДС+СуммаНДС;
КонецПроцедуры 

еще сделала
Процедура ПриИзмененииСуммыИтого()

   Если СтавкаНДС=Перечисление.СтавкиНДС.НДС10 тогда
      ПрНДС=10;   
   ИначеЕсли СтавкаНДС=Перечисление. СтавкиНДС.НДС18 тогда
      ПрНДС=18; 
   ИначеЕсли СтавкаНДС=Перечисление. СтавкиНДС.БезНДС тогда
      ПрНДС=0;
   КонецЕсли;   
   
   Цена=Итого/Количество;
   СуммаНДС=Итого*ПрНДС/(ПрНДС+100);
КонецПроцедуры   


но не могу сделать что бы при изменение ставки НДС 10, 18,0  пересчитывалось сумма ндс и итоговая??
подскажите кто знает.
на колонку ставка НДС написала процедуру
Процедура ПриИзмененииСтавкиНДС()   


Оффлайн DenPlus

  • ***
  • Сообщений: 106
  • РЕПУТАЦИЯ: 64
  • КПД: 60%
  • Регистрация: 2010-10-27
  • Компания: www.cosmocat.ru
Процедура ПриИзменениСтавкиНДС()
   Если СтавкаНДС=Перечисление.СтавкиНДС.НДС10 тогда
      ПрНДС=10;    
   ИначеЕсли СтавкаНДС=Перечисление. СтавкиНДС.НДС18 тогда
      ПрНДС=18;  
   ИначеЕсли СтавкаНДС=Перечисление. СтавкиНДС.БезНДС тогда
      ПрНДС=0;
   КонецЕсли;  

   СуммаНДС=СуммаБезНДС* ПрНДС/100;
   Итого=СуммаБезНДС+СуммаНДС;
КонецЕсли;
/////////////////////////////////////////////////////////////////////
Но лучше сразу все делать более правильно.

На все колонки табличной части сразу вешайте:


глПересчетТаблЧасти(Контекст,Форма.ТекущаяКолонка())

В глобальном модуле:

//******************************************************************************
// глПересчетТаблЧасти(Конт,ИмяРеквизита)
//
// Параметры:                
//    Конт                   - контекст документа,
//   ИмяРеквизита           - идентификатор текущей колонки табличной части,
//          
// Возвращаемое значение:
//  Нет
//
// Описание:
//   Производится пересчет зависимых реквизитов при редактировании реквизита
//  табличной части в документах, имеющих сумму и налоги в табличной части,
//  однако не во всех.
//
Процедура глПересчетТаблЧасти(Конт,ИмяРеквизита) Экспорт  

        Если ИмяРеквизита = "Номенклатура" Тогда
              // например если вызовете из документа "Реализация...", то можете заполнить Конт.Цена....
        ИначеЕсли ИмяРеквизита = "Количество" Тогда
      Конт.СуммаБезНДС = Конт.Цена*Конт.Количество;
                          ..........
                          ..........
        ИначеЕсли ИмяРеквизита = "СтавкаНДС" Тогда
      Если Конт.СтавкаНДС = Перечисление.СтавкиНДС.НДС10 тОГДА
         СтавкаНДС = 10;
                                      ....................
                                      ....................
      ИначеЕсли Конт.СтавкаНДС = Перечисление.СтавкиНДС.ндс18 Тогда
         СтавкаНДС = 18;
         Конт.СуммаНДС = Конт.СуммаБезНДС*СтавкаНДС/100;
         кОНТ.Всего = Конт.СуммаБезНДС+Конт.СуммаНДС;
      КонецЕсли;
        КонецеСЛИ;// И ТАК ДАЛЕЕ
КонецПроцедуры // глПересчет



Последний раз редактировалось: DenPlus; 13 Дек 2010, 22:29

Оффлайн prog1c7.7

  • Модератор
  • *****
  • Сообщений: 785
  • РЕПУТАЦИЯ: 260
  • КПД: 33%
  • ну - да , ну - да...
  • Регистрация: 2010-10-20
  • Сайт: 
  • Профессия: Программист 1С
//или для начала (если понимания нет пока) делаете всего одну процедуру на форме:
Процедура ПриИзмененииКоличествоЦены()  
    Если СтавкаНДС=Перечисление.СтавкиНДС.НДС10 тогда
       ПрНДС=10;    
    ИначеЕсли СтавкаНДС=Перечисление. СтавкиНДС.НДС18 тогда
       ПрНДС=18;  
    ИначеЕсли СтавкаНДС=Перечисление. СтавкиНДС.БезНДС тогда
       ПрНДС=0;
    КонецЕсли;   
   СуммаБезНДС = Количество*Цена;
   СуммаНДС    = Количество*Цена*ПрНДС/100;
   Итого       = Количество*Цена*(1+ПрНДС/100);
КонецПроцедуры  
//  и вешаете ее просто на  колонки ЦЕНА, КОЛИЧЕСТВО,СТАВКИНДС
//  далее при изменении реквизитов она вам сама все посчитает
// но DenPlus  там сверху :befhbt: глобальней и правильнее говорит <_<


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

oleg-x
69 Сообщений
AIFrame AIFrame
59 Сообщений
wise wise
56 Сообщений
alex0402
46 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
46 Сообщений
alexandr_ll
46 Сообщений
BuhRust
30 Сообщений
LexaK
26 Сообщений
andron81_81
24 Сообщений
byte777
21 Сообщений

* Кто онлайн

  • Точка Гостей: 278
  • Точка Скрытых: 0
  • Точка Пользователей: 4
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal