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

Немогу найти нужного события((поможите

Автор AxOn, 15 окт 2010, 15:52

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

Makifka

    //НДС
Табличка = ЭлементыФормы.ТабНоменклатура.ТекущаяСтрока;
НДС = 0;
Сообщить(Табличка.ПроцентНДС);
Если Табличка.ПроцентНДС = Перечисления.СтавкиНДС.НДС10 Тогда
Сообщить("да");
НДС = 10;
Табличка.СуммаНДС = Табличка.Сумма * НДС/100;
Табличка.Всего = Табличка.СуммаНДС + Табличка.Сумма;

А так не проще ли? Я не пойму просто, зачем вы каждый раз заново выбираете текущую строку? Или это данные из разных строк?

progmikon

Конечно, так правильнее, я кстати выше это писал :)
Цитата: Makifka от 16 окт 2010, 13:05
   //НДС
Табличка = ЭлементыФормы.ТабНоменклатура.ТекущаяСтрока;
НДС = 0;
Сообщить(Табличка.ПроцентНДС);
Если Табличка.ПроцентНДС = Перечисления.СтавкиНДС.НДС10 Тогда
Сообщить("да");
НДС = 10;
Табличка.СуммаНДС = Табличка.Сумма * НДС/100;
Табличка.Всего = Табличка.СуммаНДС + Табличка.Сумма;

А так не проще ли? Я не пойму просто, зачем вы каждый раз заново выбираете текущую строку? Или это данные из разных строк?

Makifka

я правильно понимаю, что если ставка НДС в строке 10%, то вы вычисляете сумму НДС в этой строке, как 10% от исходной суммы, а Всего как сумму Исходной суммы  и суммы НДС?

AxOn

да только мне нужно чтобы данные передовались в ячейку в первой процедуре а во второй это всё посчиталось и присвоилось в нужные поля. почти всё получилось только данные не присваиваются

Makifka

попробуйте в качестве параметра в процедуру передавать текущую строку

progmikon

Попробуйте так.

Табличка = ЭлементыФормы.ТабНоменклатура.ТекущиеДанные;//!!!!!
НДС = 0;
Сообщить(Табличка.ПроцентНДС);
Если Табличка.ПроцентНДС = Перечисления.СтавкиНДС.НДС10 Тогда
Сообщить("да");
НДС = 10;
Табличка.СуммаНДС = Табличка.Сумма * НДС/100;
Табличка.Всего = Табличка.СуммаНДС + Табличка.Сумма;


Makifka

нет, лучше использовать функцию с параметром текущей строки, которая возвращает обработанную строку. Поэтому и не присваивается наверно, потому что это разные строки

AxOn

Makifka Как можно примерно написать?

Makifka

Процедура ЛяЛя()
  Табличка = ЭлементыФормы.ТабНоменклатура.ТекущиеДанные;  
  НДС = 0;
  НДС = Процедура1(Табличка);

  Сообщить(НДС);

  Если НДС = 10 Тогда
       Сообщить("да");
   
       Табличка = Процедура2(Табличка,НДС);
  КонецЕсли;
КонецПроцедуры


Функция Процедура1(Табл)
     Если Табл.ПроцентНДС = Перечисления.СтавкиНДС.НДС10 Тогда
         Возврат 10;
     Иначе
         Возврат 0;
КонецФункции

Функция Процедура2(Табл,НДСик)
   Табл.СуммаНДС = Табл.Сумма * НДСик/100;
   Табл.Всего = Табл.СуммаНДС + Табл.Сумма;
   Возврат Табл;
КонецФункции

Имена переменных могут быть изменены))

progmikon

Цитата: Makifka от 16 окт 2010, 13:27
Имена переменных могут быть изменены))

Да и процедур не мешало бы поменять :)

Теги:

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

Рейтинг@Mail.ru

Поиск