7.7 Не могу написать функцию для вычисления значения

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем hakk3r, 3 авг 2010.

  1. TopicStarter Overlay
    hakk3r
    Offline

    hakk3r

    Регистрация:
    3 авг 2010
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    В таблицу вручную вводятся габариты и, по замыслу, должен автоматом подсчитаться объёмный вес и вставиться в свободную ячейку, для дальнейшей с ним работы. Объёмный вес считается согласно следующей формуле: Д*Ш*В/5000
    Посмотреть вложение 4969

    В 1С новичок, поэтому наваял пока вот так и это не работает :)
    Код:
    Функция РасчетОбъемногоВеса()
    Объемный_вес_кг = Длина_см * Ширина_см * Высота_см / 5000;
    Возврат Объемный_вес_кг;
    КонецФункции
    
    Длина_см, Ширина_см, Высота_см и Объемный_вес_кг - это идентификаторы соответствующих полей.
    В свойствах поля Объемный вес во вкладке "дополнительно" значение формулы установил как РасчетОбъемногоВеса

    Вложения:

    • OV.GIF
      OV.GIF
      Размер файла:
      2,4 КБ
      Просмотров:
      18
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Вызов функции нужно добавить в реквизиты формы Длина_см * Ширина_см * Высота_см. Тогда будет вычисляться объем ДО начала редактирования поля. Иначе результат появится только после выхода из него. Или воспользоваться предопределенной функцией ПриНачалеВыбораЗначения
  3. TopicStarter Overlay
    hakk3r
    Offline

    hakk3r

    Регистрация:
    3 авг 2010
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Как таковой формы Длина_см * Ширина_см * Высота_см нет. Это просто нарисованный не связанный ничем набор полей для ввода. Или подразумевается "основная" большая форма, в которой данная таблица находится?.
    Бухгалтерский угодник, проблема в том, что объемный вес не считается даже после выхода из редактируемого поля.
    P.S. Моя функция вообще составлена правильно? Она считает, но не выводит результат в нужное поле или как?
  4. Evrey
    Offline

    Evrey

    Регистрация:
    3 авг 2010
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    Попробуй вот так


    Процедура Сформировать()
    Вес=(Длина*Ширина*Высота)/5000;

    КонецПроцедуры

    Окно с полями ввода, и кнопками Сформировать и закрыть .
    поля : длин, ширина, высота, вес. никаких формул в дополниттельно не пиишешь, просто текст на вкладке "модуль"
  5. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Можете вместо функции использовать процедуру. В ней просто присваивайте реквизиту формы Объем вычисленное значение
  6. TopicStarter Overlay
    hakk3r
    Offline

    hakk3r

    Регистрация:
    3 авг 2010
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    С кнопкой получилось - саму формулу прописал в свойствах кнопки, а в модуле код удалил.
    А без кнопки пока так и не получилось сделать, не могу понять где в реквизитах присвоить значение.
  7. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    Пустое текстовое поле повесь на форме, и в ее формуле пиши. Ну или попробуй на твоем поле в свойствах-дополнительно-формула "Длина_см * Ширина_см * Высота_см / 5000"
  8. TopicStarter Overlay
    hakk3r
    Offline

    hakk3r

    Регистрация:
    3 авг 2010
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Техзадание поменялось, достаточно считать через кнопку :unsure: . Немного "оптимизировал" кнопку, в модуль вернул саму функцию, а в свойствах кнопки прописал РасчетОбъемногоВеса(), именно со скобками все заработало (до этого прописывал без скобок).

    Всем спасибо.

Поделиться этой страницей