Заполнение элементов формы
Автор romanMS, 17 фев 2012 12:50
Сообщений в теме: 12
#1
Отправлено 17 февраля 2012 - 12:50
Добрый день.
Подскажите каким образом можно выполнить следующее:
В конфигурации (разрабатывается для предприятия для внутренних документов) создан документ "Авансовый отчет". Имеются реквизиты: СуммаВПодотчете (заполняется вручную), Итоги (заполняется автоматически присваивая значение СоставОтчета.ИтогиСумма), Перерасход (должен высчитываться) и ВозвратВКассу (должен расчитываться). Суть в чем, при заполнении документа "Авансовый отчет" заполняется реквизит "суммаВПодотчете" (сумма которая была получена подотчетным лицом), далее заполняется табличная часть (то есть описывается сам расход средств), после чего сумма полученная в табличной части подставляется в реквизит "Итоги". Нужно, чтобы далее два реквизита расчитывались автоматически (Перерасход и ВовзратВКассу), то есть, если сумма потраченных средств меньше, то соответственно разница отображается в реквизите "ВозвратВКассу" и аналогично если сумма потраченных средств больше полученных, то "ВозвратВКассу" остается пустым или 0,00, а Перерасход заполняется этой разницей.
Подскажите каким образом можно выполнить следующее:
В конфигурации (разрабатывается для предприятия для внутренних документов) создан документ "Авансовый отчет". Имеются реквизиты: СуммаВПодотчете (заполняется вручную), Итоги (заполняется автоматически присваивая значение СоставОтчета.ИтогиСумма), Перерасход (должен высчитываться) и ВозвратВКассу (должен расчитываться). Суть в чем, при заполнении документа "Авансовый отчет" заполняется реквизит "суммаВПодотчете" (сумма которая была получена подотчетным лицом), далее заполняется табличная часть (то есть описывается сам расход средств), после чего сумма полученная в табличной части подставляется в реквизит "Итоги". Нужно, чтобы далее два реквизита расчитывались автоматически (Перерасход и ВовзратВКассу), то есть, если сумма потраченных средств меньше, то соответственно разница отображается в реквизите "ВозвратВКассу" и аналогично если сумма потраченных средств больше полученных, то "ВозвратВКассу" остается пустым или 0,00, а Перерасход заполняется этой разницей.
#3
Отправлено 19 февраля 2012 - 11:07
nbIpKuH_BaH9I (18 февраля 2012 - 07:57) писал:
И в чем проблема? Кидайте сюда ваш код, поможем. Вам там простейшие операции сложения/вычитания надо сделать.
Да, я понимаю что там вроде ничего сложного, больше как раз интересует чтобы автоматически значение подставлялось.
Я вложил изображение с формой которая заполняется.

Красным обведены именно те элементы формы, которые меня интересуют.
Сумма в подотчете заполняется вручную (эта сумма полученных средств) СуммаИтог заполняется посредством получения суммы ИТОГО в табличной части.
Далее Перерасхорд или ВозвраВКассу должны расчитываться и самостоятельно подставляться в эти поля без ручного ввода.
Я пробовал самостоятельно написать следующий код в модуле формы:
// РАСЧИТАТЬ ПЕРЕРАСХОД ИЛИ ВОЗВРАТ В КАССУ В ЗАВИСИМОСТИ // ОТ ПОЛУЧЕННОЙ СУММЫ Процедура РасчитатьПерерасход (Элемент) Если Объект.СуммаВПодотчете >= Объект.СоставОтчета.ИтогСумма Тогда Объект.Перерасход = Объект.СуммаВПодотчете - Объект.СоставОтчета.ИтогСумма Иначе Объект.Перерасход = 0 КонецЕсли; КонецПроцедуры // РасчитатьПерерасход Процедура РасчитатьВозврат (Элемент) Если Объект.СуммаВПодотчете < Объект.СоставОтчета.ИтогСумма Тогда Объект.ВозвратВКассу = Объект.СуммаВПодотчете - Объект.СоставОтчета.ИтогоСумма Иначе Объект.ВозвратВКассу = 0 КонецЕсли; КонецПроцедуры // РасчитатьВозврат
Могу ошибаться, поправьте меня по возможности, но в самом коде нигде не указал что полученный результат подставляется в соответствующие элементы формы, так как не знаю как написать это в коде.
Спасибо.
#4
Отправлено 19 февраля 2012 - 12:50
Если правильно понял вопрос, то Вы не можете в элемент формы, который не является реквизитом передать значение, тогда так
Элементы.ВозвратВКассу.Значение = Результат;
Бываю редко. Аврал предположительно закончится в мае.
Молодым программистам на заметку
Как задать вопрос по СКД?
Как узнать версию платформы и конфигурации?
Описание файлов поставки обновлений конфигурации (1С: Предприятие 8)
Молодым программистам на заметку
Как задать вопрос по СКД?
Как узнать версию платформы и конфигурации?
Описание файлов поставки обновлений конфигурации (1С: Предприятие 8)
#5
Отправлено 19 февраля 2012 - 13:08
mialord (19 февраля 2012 - 12:50) писал:
Если правильно понял вопрос, то Вы не можете в элемент формы, который не является реквизитом передать значение, тогда так
Элементы.ВозвратВКассу.Значение = Результат;
Два элемента "ВозвратВКассу" и "Перерасход" являются реквизитами формы с типом значения "Число", просто ранее заполнялись вручную... но хотелось бы автоматически расчитывались и заполнялись.
#6
Отправлено 19 февраля 2012 - 17:02
Ну так я Вам написал как к ним обратиться, только при открытии формы нужно будет заново расчитывать и записывать, т.к. поскольку это не реквизит, значит информация не хранится
Бываю редко. Аврал предположительно закончится в мае.
Молодым программистам на заметку
Как задать вопрос по СКД?
Как узнать версию платформы и конфигурации?
Описание файлов поставки обновлений конфигурации (1С: Предприятие 8)
Молодым программистам на заметку
Как задать вопрос по СКД?
Как узнать версию платформы и конфигурации?
Описание файлов поставки обновлений конфигурации (1С: Предприятие 8)
#7
Отправлено 21 февраля 2012 - 16:32
mialord (19 февраля 2012 - 17:02) писал:
Ну так я Вам написал как к ним обратиться, только при открытии формы нужно будет заново расчитывать и записывать, т.к. поскольку это не реквизит, значит информация не хранится
Нет, не работает предложенный вариант, не происходит ничего.
#8
Отправлено 21 февраля 2012 - 17:13
рассчитываемые переменные - это реквизиты или только элементы формы?
хотите сказать спасибо? жмите
#10
Отправлено 22 февраля 2012 - 10:42
Tiger86 (21 февраля 2012 - 17:13) писал:
рассчитываемые переменные - это реквизиты или только элементы формы?
Расчитываемые переменные изначально были реквизитами документа, так как ранее в форме они заполнялись вручную, теперь нужно сделать чтобы автоматически расчитывались и заполнялись
#13
Отправлено 22 февраля 2012 - 12:03
Можно вот так:
ЗначениеДолга = ПолучитьДолгКонтрагента(Объект.Контрагент, КонецДня(ТекущаяДата())); ДолгКонтрагента = ЗначениеДолга;Где ДолгКонтрагента - у меня реквизит формы. Этот код выполняется в модуле формы, в процедуре ПриСозданииНаСервере()
Героем можешь ты не быть,
Но человеком быть обязан!

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

Если вам помог мой ответ, просьба сказать спасибо вот такой
кнопкой рядом с сообщением.
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных










