Перейти к содержимому


Заполнение элементов формы


Сообщений в теме: 12

#1 romanMS

    Прохожий


  • 28 сообщений

Отправлено 17 февраля 2012 - 12:50

Добрый день.

Подскажите каким образом можно выполнить следующее:
В конфигурации (разрабатывается для предприятия для внутренних документов) создан документ "Авансовый отчет". Имеются реквизиты: СуммаВПодотчете (заполняется вручную), Итоги (заполняется автоматически присваивая значение СоставОтчета.ИтогиСумма), Перерасход (должен высчитываться) и ВозвратВКассу (должен расчитываться). Суть в чем, при заполнении документа "Авансовый отчет" заполняется реквизит "суммаВПодотчете" (сумма которая была получена подотчетным лицом), далее заполняется табличная часть (то есть описывается сам расход средств), после чего сумма полученная в табличной части подставляется в реквизит "Итоги". Нужно, чтобы далее два реквизита расчитывались автоматически (Перерасход и ВовзратВКассу), то есть, если сумма потраченных средств меньше, то соответственно разница отображается в реквизите "ВозвратВКассу" и аналогично если сумма потраченных средств больше полученных, то "ВозвратВКассу" остается пустым или 0,00, а Перерасход заполняется этой разницей.

#2 nbIpKuH_BaH9I

    Одинесина


  • 527 сообщений

Отправлено 18 февраля 2012 - 07:57

И в чем проблема? Кидайте сюда ваш код, поможем. Вам там простейшие операции сложения/вычитания надо сделать.
Изображение
Помог мой ответ, нажми Изображение.

#3 romanMS

    Прохожий


  • 28 сообщений

Отправлено 19 февраля 2012 - 11:07

Просмотр сообщенияnbIpKuH_BaH9I (18 февраля 2012 - 07:57) писал:

И в чем проблема? Кидайте сюда ваш код, поможем. Вам там простейшие операции сложения/вычитания надо сделать.

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

Красным обведены именно те элементы формы, которые меня интересуют.
Сумма в подотчете заполняется вручную (эта сумма полученных средств) СуммаИтог заполняется посредством получения суммы ИТОГО в табличной части.
Далее Перерасхорд или ВозвраВКассу должны расчитываться и самостоятельно подставляться в эти поля без ручного ввода.

Я пробовал самостоятельно написать следующий код в модуле формы:

// РАСЧИТАТЬ ПЕРЕРАСХОД ИЛИ ВОЗВРАТ В КАССУ В ЗАВИСИМОСТИ
// ОТ ПОЛУЧЕННОЙ СУММЫ
Процедура РасчитатьПерерасход (Элемент)

Если Объект.СуммаВПодотчете >= Объект.СоставОтчета.ИтогСумма Тогда
  Объект.Перерасход = Объект.СуммаВПодотчете - Объект.СоставОтчета.ИтогСумма
Иначе  Объект.Перерасход = 0
 
КонецЕсли;
КонецПроцедуры // РасчитатьПерерасход
Процедура РасчитатьВозврат (Элемент)

Если Объект.СуммаВПодотчете < Объект.СоставОтчета.ИтогСумма Тогда
  Объект.ВозвратВКассу = Объект.СуммаВПодотчете - Объект.СоставОтчета.ИтогоСумма
Иначе Объект.ВозвратВКассу = 0
 
КонецЕсли;

КонецПроцедуры // РасчитатьВозврат

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

Спасибо.

#4 mialord

    "Свадебный генерал"


  • 3 537 сообщений

Отправлено 19 февраля 2012 - 12:50

Если правильно понял вопрос, то Вы не можете в элемент формы, который не является реквизитом передать значение, тогда так
Элементы.ВозвратВКассу.Значение = Результат;


#5 romanMS

    Прохожий


  • 28 сообщений

Отправлено 19 февраля 2012 - 13:08

Просмотр сообщенияmialord (19 февраля 2012 - 12:50) писал:

Если правильно понял вопрос, то Вы не можете в элемент формы, который не является реквизитом передать значение, тогда так
Элементы.ВозвратВКассу.Значение = Результат;

Два элемента "ВозвратВКассу" и "Перерасход" являются реквизитами формы с типом значения "Число", просто ранее заполнялись вручную... но хотелось бы автоматически расчитывались и заполнялись.

#6 mialord

    "Свадебный генерал"


  • 3 537 сообщений

Отправлено 19 февраля 2012 - 17:02

Ну так я Вам написал как к ним обратиться, только при открытии формы нужно будет заново расчитывать и записывать, т.к. поскольку это не реквизит, значит информация не хранится

#7 romanMS

    Прохожий


  • 28 сообщений

Отправлено 21 февраля 2012 - 16:32

Просмотр сообщенияmialord (19 февраля 2012 - 17:02) писал:

Ну так я Вам написал как к ним обратиться, только при открытии формы нужно будет заново расчитывать и записывать, т.к. поскольку это не реквизит, значит информация не хранится

Нет, не работает предложенный вариант, не происходит ничего.

#8 Tiger86

    Ветеран


  • 1 076 сообщений

Отправлено 21 февраля 2012 - 17:13

рассчитываемые переменные - это реквизиты или только элементы формы?
хотите сказать спасибо? жмите Изображение

#9 alexburn

    Suum cuique


  • 4 688 сообщений

Отправлено 21 февраля 2012 - 19:58

А можете ответить в чем разница между Реквизитами формы и Реквизитами объекта ?
Героем можешь ты не быть,
Но человеком быть обязан!

Изображение
Если вам помог мой ответ, просьба сказать спасибо вот такой Изображение кнопкой рядом с сообщением.

#10 romanMS

    Прохожий


  • 28 сообщений

Отправлено 22 февраля 2012 - 10:42

Просмотр сообщенияTiger86 (21 февраля 2012 - 17:13) писал:

рассчитываемые переменные - это реквизиты или только элементы формы?

Расчитываемые переменные изначально были реквизитами документа, так как ранее в форме они заполнялись вручную, теперь нужно сделать чтобы автоматически расчитывались и заполнялись

#11 alexburn

    Suum cuique


  • 4 688 сообщений

Отправлено 22 февраля 2012 - 10:46

И в чем проблема? В обработке ПриСозданииНаСервере() пишете код, который будет заполнять и расчитывать ваши значения.
Героем можешь ты не быть,
Но человеком быть обязан!

Изображение
Если вам помог мой ответ, просьба сказать спасибо вот такой Изображение кнопкой рядом с сообщением.

#12 romanMS

    Прохожий


  • 28 сообщений

Отправлено 22 февраля 2012 - 11:58

Просмотр сообщенияalexburn (22 февраля 2012 - 10:46) писал:

И в чем проблема? В обработке ПриСозданииНаСервере() пишете код, который будет заполнять и расчитывать ваши значения.

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

#13 alexburn

    Suum cuique


  • 4 688 сообщений

Отправлено 22 февраля 2012 - 12:03

Можно вот так:
ЗначениеДолга = ПолучитьДолгКонтрагента(Объект.Контрагент, КонецДня(ТекущаяДата()));
ДолгКонтрагента = ЗначениеДолга;
Где ДолгКонтрагента - у меня реквизит формы. Этот код выполняется в модуле формы, в процедуре ПриСозданииНаСервере()
Героем можешь ты не быть,
Но человеком быть обязан!

Изображение
Если вам помог мой ответ, просьба сказать спасибо вот такой Изображение кнопкой рядом с сообщением.





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных