новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума
Форум

Создание программы для расчете себестоимости

    • #1
    • 17.04.2014 15:48
    0
    Господа форумчане, пытаюсь написать программу для расчета себестоимости, но пока слаб в языке запросов, да и вообще в возможностях 1С. Подскажите, каким способом можно рассчитать значение. Имеется Справочник Материалы С реквизитом "Цена" и справочник Детали с реквизитами табличной части Материал, Количество, Цена, Сумма. Материал установлен как ссылка на Справочник.Материал. А Цена в контекстном меню, Путь к данным-Объект.Состав.Детали.Материал.Цена. Значение отображается из справочника Материалы, а вот при изменении Количества, Сумма не меняется. Какой нужно создать запрос ? И так ли все я делаю?
    • #2
    • 17.04.2014 19:36
    0
    Константин Сергеевич
    И так ли все я делаю?


    Не так. Почитайте книжки.
    Чтобы менялась сумма при изменении количества, необходимо "поймать" событие изменения количества (цены) и в этом методе рассчитать сумму. Все это делается в модуле формы.
    • #3
    • 17.04.2014 20:58
    0
    Событие "При изменении" поля формы, через текущие данные.
    • #4
    • 18.04.2014 08:18
    0
    Проскура Алексей
    Событие "При изменении" поля формы, через текущие данные.

    В листинге для события "при изменении" я написал:
    СТЧ=Элементы.СоставДетали.ТекущиеДанные;
    СТЧ.Сумма=СТЧ.Количество*СТЧ.Цена
    Но у меня для поля ЦЕНА указан ПутьКДанным Объект.СоставДетали.Материал.Цена
    И соответственно Цена берется из справочника Материалы.Синтаксической ошибки при этом нет. Но расчет не производится,либо производится по старому значению, вбитому в поле Цена, в котором ПутьКДанным Объект.СоставДетали.Цена
    Подскажите, как правильно решить эту задачу. Либо копированием значения в поле Цена, либо в листинге правильно задать путь к значению и экспортировать, либо каким нибудь еще способом)
    • #5
    • 18.04.2014 08:34
    0
    Константин Сергеевич
    я написал

    в отлаадчике (процедуре этой) теперь посмотреть - какие данные есть (в текущей строке) и от них плясать
    • #6
    • 18.04.2014 08:48
    0
    Вобщем суть в том, что я не знаю как написать текст запроса:
    Значение из таблицы со столбца Количество (Справочник Детали) умножить на Цену из Реквизита справочника Материалы и записать Итог в столбец Сумма табличной части (справочник Детали)...
    • #7
    • 18.04.2014 08:57
    0
    Константин Сергеевич
    я не знаю как написать текст запроса:
    Значение из таблицы со столбца Количество (Справочник Детали) умножить на Цену из Реквизита справочника Материалы и записать Итог в столбец Сумма табличной части (справочник Детали)...

    запроса здесь и нет никакого (если дествительно цена в реквизите материала).
    в отладчике в процедуре "при изменении" остановку сделать и посмотреть ней какие есть в текущей строке данные. выбрать из них количество и цену (через реквизит колонки материал, получается) и перемножить их.
    куда поместить - тоже посмотреть в отладчике колонку (название).

    вроде всё.

    насколько я понял, нужно -
    СТЧ.Сумма=СТЧ.Количество*Объект.СоставДетали.Цена.
    хотя здесь строка непричём... для цены
    • #8
    • 18.04.2014 09:09
    0
    Не совсем так...Нужно СТЧ.Сумма=СТЧ.Количество*Объект.СоставДетали.Материал.Цена. Я хочу чтобы при выборе материала для детали не только автоматически отображалась его Цена (У меня это получилось, когда прописал Путь К Данным), но и была возможность умножать на эту Цену. Но у меня не считается ничего) Считается только в случае если цену забивать вручную и оставлять стандартный Путь к Данным для Цены.
    • #9
    • 23.04.2014 17:16
    • Отредактировано: 23.04.2014 17:23:04
    0
    Вы в каких формах это делаете ? Управляемых или обычных ? Какая платформа ? Всё это необходимо описывать при написании вопроса в форум.
    У вас цена подтягивается (появляется) при выборе Материала в поле Цена или нет ?
    Проверьте, стоит ли команда препроцессору &НаКлиенте в процедуре обработки события.
    Если стоит, то данные все на сервере, на форме нет данных, их необходимо получать в серверной процедуде.
    2 - данные формы на клиенте и данные формы на сервере могут отличаться, учитывайте этот момент.
Для участия в обсуждении Вам необходимо авторизоваться либо   зарегистрироваться