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

Автоматический расчет суммы, на форме документа.

Автор AIBOLIT47, 05 мая 2014, 19:58

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

Константин5825

Я наверно что то совсем не понимаю.

Создал реквизит Наличными -предопределяемый.

Код поправил:
&НаСервере
Процедура РасчетПрибыли()
Если Объект.ФормаОплатыПеревозчика = Справочники.Наличными Тогда
Объект.Прибыль = Объект.СтавкаЗаказчику - Объект.СтавкаПеревозчику;
КонецЕсли
КонецПроцедуры

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

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

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


Вопрос 1. Надо было дублировать условие если и на клиенте?
&НаКлиенте
Если Объект.ФормаОплатыПеревозчика = Справочники.Наличными Тогда
Объект.Прибыль = Объект.СтавкаЗаказчику - Объект.СтавкаПеревозчику;
КонецЕсли


При попытке расчета пишет:
{Документ.ЗаявкаНаПеревозку.Форма.ФормаДокумента1.Форма(3)}: Поле объекта не обнаружено (Наличными)
   Если Объект.ФормаОплатыПеревозчика = Справочники.Наличными Тогда

Я совсем не знаю 1с) если можно подробно поясните мою ошибку) Спасибо огромное за терпение и понимание!_)))

Norfolk

Цитата: Константин5825 от 06 мар 2017, 22:16
Я наверно что то совсем не понимаю.

Создал реквизит Наличными -предопределяемый.

Код поправил:
&НаСервере
Процедура РасчетПрибыли()
Если Объект.ФормаОплатыПеревозчика = Справочники.Наличными Тогда
Объект.Прибыль = Объект.СтавкаЗаказчику - Объект.СтавкаПеревозчику;
КонецЕсли
КонецПроцедуры

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

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

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


Вопрос 1. Надо было дублировать условие если и на клиенте?
&НаКлиенте
Если Объект.ФормаОплатыПеревозчика = Справочники.Наличными Тогда
Объект.Прибыль = Объект.СтавкаЗаказчику - Объект.СтавкаПеревозчику;
КонецЕсли


При попытке расчета пишет:
{Документ.ЗаявкаНаПеревозку.Форма.ФормаДокумента1.Форма(3)}: Поле объекта не обнаружено (Наличными)
   Если Объект.ФормаОплатыПеревозчика = Справочники.Наличными Тогда

Я совсем не знаю 1с) если можно подробно поясните мою ошибку) Спасибо огромное за терпение и понимание!_)))
Так если вы совсем не знаете 1С, может стоит начать с учебников например Радченко? После выполнения заданий у вас таких вопросов точно не будет.
По теме: у вас реквизит не может быть предопределенным. Предопределенным может быть только значение реквизита.
Вам товарищ выше посоветовал сделать такую конструкцию:
Если Объект.ФормаОплатыПеревозчика = Справочники.ФормыОплаты.Наличными Тогда
Вы должны в конфигураторе создать значение "Наличиными" для реквизита "ФормаОплаты" предопределенным. Иначе код не отработает. Если значение реквизита у вас заведено в справочнике "руками" - оно не является предопределенным и тогда вам нужно обратиться к данному значению примерно по такой конструкции, как я писал выше:
Если Объект.ФормаОплатыПеревозчика = Справочники.ФормыОплаты.НайтиПоКоду("ВашКод") Тогда

Константин5825

Цитата: Norfolk от 07 мар 2017, 04:41
Цитата: Константин5825 от 06 мар 2017, 22:16
Я наверно что то совсем не понимаю.

Создал реквизит Наличными -предопределяемый.

Код поправил:
&НаСервере
Процедура РасчетПрибыли()
Если Объект.ФормаОплатыПеревозчика = Справочники.Наличными Тогда
Объект.Прибыль = Объект.СтавкаЗаказчику - Объект.СтавкаПеревозчику;
КонецЕсли
КонецПроцедуры

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

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

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


Вопрос 1. Надо было дублировать условие если и на клиенте?
&НаКлиенте
Если Объект.ФормаОплатыПеревозчика = Справочники.Наличными Тогда
Объект.Прибыль = Объект.СтавкаЗаказчику - Объект.СтавкаПеревозчику;
КонецЕсли


При попытке расчета пишет:
{Документ.ЗаявкаНаПеревозку.Форма.ФормаДокумента1.Форма(3)}: Поле объекта не обнаружено (Наличными)
   Если Объект.ФормаОплатыПеревозчика = Справочники.Наличными Тогда

Я совсем не знаю 1с) если можно подробно поясните мою ошибку) Спасибо огромное за терпение и понимание!_)))
Так если вы совсем не знаете 1С, может стоит начать с учебников например Радченко? После выполнения заданий у вас таких вопросов точно не будет.
По теме: у вас реквизит не может быть предопределенным. Предопределенным может быть только значение реквизита.
Вам товарищ выше посоветовал сделать такую конструкцию:
Если Объект.ФормаОплатыПеревозчика = Справочники.ФормыОплаты.Наличными Тогда
Вы должны в конфигураторе создать значение "Наличиными" для реквизита "ФормаОплаты" предопределенным. Иначе код не отработает. Если значение реквизита у вас заведено в справочнике "руками" - оно не является предопределенным и тогда вам нужно обратиться к данному значению примерно по такой конструкции, как я писал выше:
Если Объект.ФормаОплатыПеревозчика = Справочники.ФормыОплаты.НайтиПоКоду("ВашКод") Тогда




Прошу прощения, я наверно не правильно выразился.
Значение наличными я создал через конфигуратор, и оно является предопределенным.

Добавлено: 07 мар 2017, 08:10



Добавлено: 07 мар 2017, 09:37


Вопрос снят! Всем спасибо!!!! Огромнейшее!!!
В коде ошибка была!
Вот как получилось в рабочем варианте:
&НаСервере
Процедура РасчетПрибыли()
Если Объект.ФормаОплатыПеревозчика = Справочники.ФормыОплаты.Наличными Тогда
Объект.Прибыль = Объект.СтавкаЗаказчику - Объект.СтавкаПеревозчику;
КонецЕсли
КонецПроцедуры

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

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

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

Теги:

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

Рейтинг@Mail.ru

Поиск