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

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

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

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


Теги:
 


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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
184 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
51 Сообщений
alex0402
49 Сообщений
andron81_81
40 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
34 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
29 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal