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

Автор Тема: Автоматический расчет суммы, на форме документа.  (Прочитано 14597 раз)

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

Оффлайн AIBOLIT47

  • *
  • Сообщений: 9
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-05-05
  • Сайт: 
  • Профессия: Ученик 1С
Всем привет.
Я студент, поэтому по знаниям не судите строго, к тому же с 1С:Предприятием 8.2 знаком всего 3 месяца. За все это время знакомства успел сделать конфигурацию "Ремонт оборудования" :zebzdr: и то по инструкционной карте :^454^:
Исходя из этого шаблона и знаний собственного любопытства :xfbnsdfb: сейчас разрабатываю конфигурацию связанная с тематикой ломбарда (курсовое проектирование),  и застрял при попытки создания автоматизации на Форме Документа, а именно автоматический расчет суммы на самой форме.
Пример заполнения формы документа см. - 1.jpg и 2.jpg
Суть такова, этот документ "Акт Залогового билета" заполняется на основе записи Справочника "Товары". Мне необходимо, чтобы "Сумма выкупа залога" автоматически высчитывалась по формуле после выбора "Тарифной ставки" (При выборе Тарифной ставки в поле "Процент" сразу заносится число).

Формула:
СуммаВыкупаЗалога = (Процент/100 * ОцененнаяСтоимость) + ОцененнаяСтоимость

Я знаю как привязать эту формулу, если работать через Табличную часть, но мне нужно что бы эта формула работала на самой форме документа.
Поиски за ответом привили к такому коду, но в нем явно есть косяки, в чем не могу понять.

&НаКлиенте
Процедура РасчетСуммыВыкупа()
Объект.СуммаВыкупаЗалога = (Объект.Процент * Объект.ОцененнаяСтоимость) + Объект.ОцененнаяСтоимость;
КонецПроцедуры

&НаКлиенте
Процедура ПроцентПриИзменении(Элемент)
РасчетСуммыВыкупа();
КонецПроцедуры

&НаКлиенте
Процедура ОцененнаяСтоимостьПриИзменении(Элемент)
РасчетСуммыВыкупа();
КонецПроцедуры

Как я понимаю, чтобы формула срабатывала ей необходимы текущие данные, а как это указать и где прописать, я не понимаю. Подскажите как сделать чтобы данная формула заработала на этой форме. Заранее спасибо.

Извините за косяки при оформлении, впервые на этом форуме и еще не разобрался здесь что к чему.


Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
ну все правильно написано (если закрыть глаза на то, что на 100 не делите).
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн AIBOLIT47

  • *
  • Сообщений: 9
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-05-05
  • Сайт: 
  • Профессия: Ученик 1С
ну все правильно написано (если закрыть глаза на то, что на 100 не делите).

Спасибо за новость про правильный код, но по поле вывода "Сумма выкупа залога" все равно не выдает ответ. Может я событие не правильное выбрал, но какие тогда?
По сути в поля "Оцененная стоимость" и "Процент" я ни чего не ввожу, они заполняются автоматически. "Оцененная стоимость" вбивается, когда форма документа открывается на основе одного товара из списка в справочнике (От туда он берет значение "Оцененная стоимость"). А процент как я уже написал заносится в зависимости от выбранной тарифной ставки.
Может у кого нибудь есть еще варианты или кто-то сталкивался уже с подобной ситуацией?
Добавлено: 06 Май 2014, 07:09


Спасибо за новость про правильный код, но по поле вывода "Сумма выкупа залога" все равно не выдает ответ. Может я событие не правильное выбрал, но какие тогда?
По сути в поля "Оцененная стоимость" и "Процент" я ни чего не ввожу, они заполняются автоматически. "Оцененная стоимость" вбивается, когда форма документа открывается на основе одного товара из списка в справочнике (От туда он берет значение "Оцененная стоимость"). А процент как я уже написал заносится в зависимости от выбранной тарифной ставки.
Может у кого нибудь есть еще варианты или кто-то сталкивался уже с подобной ситуацией?

Сейчас создал другой документ, опробовал код еще раз, все работает. Создал я три реквизита "Процент", "ТарифнаяСтавка" и "СуммаВыкупаЗалога" и тип события "при изменении" поставил, код все сработало.
Сейчас в свой код к объектам, указал путь к данным, вот что получилось:

&НаКлиенте
Процедура РасчетСуммыВыкупа()
Объект.СуммаВыкупаЗалога = (Объект.ТарифнаяСтавка.Процент * Объект.Товар.ОцененнаяСтоимость) + Объект.Товар.ОцененнаяСтоимость;
КонецПроцедуры

&НаКлиенте
Процедура ПроцентПриИзменении(Элемент)
РасчетСуммыВыкупа();
КонецПроцедуры

&НаКлиенте
Процедура ОцененнаяСтоимостьПриИзменении(Элемент)
РасчетСуммыВыкупа();
КонецПроцедуры

Последний раз редактировалось: AIBOLIT47; 06 Май 2014, 07:09. Причина: Объединение сообщений

Оффлайн aleon

  • *
  • Сообщений: 6
  • РЕПУТАЦИЯ: 1
  • КПД: 17%
  • Регистрация: 2013-03-13
  • Сайт: 
  • Профессия: Ученик 1С
Не очень понял, ты меняешь тарифную ставку а событие указываешь при изменении процента. Я бы попробовал событие обработка выбора тарифной ставки. обработал, установил процент, пересчитал сумму. Чтобы все по человечески работало.

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Расчет суммы у Вас стоит в событиях ПриИзменении полей Процент и ОцененнаяСтоимость.
Оно срабатывает если непосредственно в этих полях изменить значения.
А вот если заполнение этих полей происходит "извне", то событие естественно не сработает.
Нужно именно в тех местах где происходит изменение вышеназванных полей (например как я понимаю в ПриОткрытии()) вызывать метод РасчетСуммыВыкупа();

Объект.СуммаВыкупаЗалога = (Объект.ТарифнаяСтавка.Процент * Объект.Товар.ОцененнаяСтоимость) + Объект.Товар.ОцененнаяСтоимость;
В этом месте система ругнется (во всяком случае должна ;) ). Реквизиты через точку (".Процент" и ".ОцененнаяСтоимость") нужно получать только на сервере.
Да и не нужно этого делать - все данные у вас есть на форме (если конечно уточнить путь к данным полей Процент и ОцененнаяСтоимость).
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн 2Casp

  • Руслан
  • *
  • Сообщений: 12
  • РЕПУТАЦИЯ: 1
  • КПД: 8%
  • Регистрация: 2012-03-11
  • Сайт: 
  • Профессия: Ученик 1С
Суть такова, этот документ "Акт Залогового билета" заполняется на основе записи Справочника "Товары". Мне необходимо, чтобы "Сумма выкупа залога" автоматически высчитывалась по формуле после выбора "Тарифной ставки" (При выборе Тарифной ставки в поле "Процент" сразу заносится число).
Добрый день!
Если я правильно понял, Вы не можете получить данные из базы данных на клиенте.
&НаКлиенте
Процедура РасчетСуммыВыкупа()
   Объект.СуммаВыкупаЗалога = (Объект.ТарифнаяСтавка.Процент * Объект.Товар.ОцененнаяСтоимость) + Объект.Товар.ОцененнаяСтоимость;
КонецПроцедуры
Тут часть необходимо выполнить на сервере

Оффлайн AIBOLIT47

  • *
  • Сообщений: 9
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-05-05
  • Сайт: 
  • Профессия: Ученик 1С
Ура получилось!!!:ooifh: Спасибо всем кто откликнулся и протянул руку помощи.

Да кстати о коде, вот код, если у кого то возникла такая же ситуация:

&НаСервере
Процедура РасчетСуммыВыкупа()
   Объект.СуммаВыкупаЗалога = (Объект.ТарифнаяСтавка.Процент/100 * Объект.Товар.ОцененнаяСтоимость) + Объект.Товар.ОцененнаяСтоимость;
КонецПроцедуры


&НаКлиенте
Процедура ТарифнаяСтавкаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
РасчетСуммыВыкупа();
КонецПроцедуры

&НаКлиенте
Процедура ТарифнаяСтавкаПриИзменении(Элемент)
РасчетСуммыВыкупа();
КонецПроцедуры

&НаКлиенте
Процедура ТоварПриИзменении(Элемент)
РасчетСуммыВыкупа();
КонецПроцедуры

&НаКлиенте
Процедура ТоварНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
РасчетСуммыВыкупа();
КонецПроцедуры

Событие "При Изменении" должно быть обязательно, так как без него формула срабатывает не сразу, то есть выбираем из списка значение, а система высчитывает формулу по предыдущему значению. И события в данном случае должны быть указанны не на "переменные" а на их справочнике, это как я понял. Спасибо всем за помощь!

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Не совсем правильно. Данные для расчетов должны быть на форме. А у вас для их получения приходится обращаться на сервер.
Это не есть гуд.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Зачем Вам событие НачалоВыбора()?? События ПриИзменении() вполне достаточно.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн AIBOLIT47

  • *
  • Сообщений: 9
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-05-05
  • Сайт: 
  • Профессия: Ученик 1С
Зачем Вам событие НачалоВыбора()?? События ПриИзменении() вполне достаточно.

И вправду, спасибо. Сейчас убрал не нужный код и все вполне отлично работает. Учту в следующий раз.


Теги:
 

Не открывает форму сохраненного документа, открывает форму нового.

Автор EHOTРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 4475
Последний ответ 13 Апр 2012, 23:26
от Vit1501
Автоматическое заполнение табличной части документа из табличной части другого

Автор WillРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 6
Просмотров: 15935
Последний ответ 16 Авг 2012, 12:07
от Will
Заполнение поля табличной части документа из табличной части справочника.

Автор Kurt_WagnerРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 4199
Последний ответ 06 Апр 2015, 20:08
от Kurt_Wagner
Заполнение табличной части документа реквизитами табличной части справочника

Автор kaf_infoРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 630
Последний ответ 10 Май 2017, 20:44
от ilnur75
Добавление сведений в графу "основание" документа "ТОРГ-12"

Автор Ярослав1984Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 4
Просмотров: 7746
Последний ответ 20 Авг 2013, 18:45
от Ярослав1984

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
177 Сообщений
ilyay ilyay
69 Сообщений
oleg-x
48 Сообщений
AIFrame
45 Сообщений
alex0402
44 Сообщений
andron81_81
38 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
Golickoff Golickoff
31 Сообщений
BuhRust
30 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal