Форма И Документы

Тема в разделе "1C и всё что с ней связано", создана пользователем ovak, 2 фев 2012.

  1. ovak

    ovak Гость

    Учусь по книге 1С: Предприятие 8.2 Радченко и Хрусталева. Создавая документ "Приходная Накладная" (стр. 127) столкнулся с проблемой. Создал элементы формы материлы, количество, цена, сумма. Затем прописал модуль для формы:
    Листинг 4.2
    Код ( (Unknown Language)):
    &НаКлиенте
    Процедура РассчитатьСумму(СтрокаТабличнойЧасти) Экспорт
    СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.Количество * СтрокаТабличнойЧасти.Цена;
    КонецПроцедуры
    .
    Затем прописал обработчик формы:
    Листинг 4.3.
    Код ( (Unknown Language)):
    &НаКлиенте
    Процедура МатериалыКоличествоПриИзменении(Элемент)
    СтрокаТабличнойЧасти = Элементы.Материалы.ТекущиеДанные;
    РассчитатьСумму(СтрокаТабличнойЧасти);
    КонецПроцедуры
    Проблема в том, что код листинга 4.3 из МатериалыКоличество продублировался в МатериалыМатериалы, МатериалыЦена и МатериалыСумма. Когда в МатериалыЦена
    Код ( (Unknown Language)):
    Процедура МатериалыКоличествоПриИзменении(Элемент)
    заменяю на
    Код ( (Unknown Language)):
    Процедура МатериалыЦенаПриИзменении(Элемент)
    , этот новый код вновь самопроизвольно копируется в другие элементы формы. Как можно исправить подобную ситуацию?
     
  2. Allexei

    Allexei Well-Known Member

    Регистрация:
    2 май 2008
    Сообщения:
    322
    Симпатии:
    0
    Ничего не понял если честно. Обработчики событий назначаем через палитру свойств элемента, получаем 3 обработчика событий МатериалыЦенаПриИзменении, МатериалыКоличествоПриИзменении и МатериалыМатериалыПриИзменении. В качестве тела процедур вставляем то что в листинге 4.3. Все работает.
     
  3. ovak

    ovak Гость

    Всё работало по началу. Но я допустил грамматическую ошибку в кодах и наименованиях. После исправления, начались проблемы. Раза 3 с 0 все создавал и переписывал, и продолжает клонироватся. Меняю в цене количество на цену, в количестве появляется код из цены, причем и в сумме, и в материалах. Погоня за собственным хвостом. :) Можно удалить и создать новый документ, не проблема. Но интересно разобратся, да и в будущем опыт пригодился бы. Для саморазвития, так сказать. Хотя может быть прогу выбил или ....
     
  4. ovak

    ovak Гость

    Разобрался.
    Код ( (Unknown Language)):
    Процедура РассчитатьСумму(СтрокаТабличнойЧасти)Экспорт
    СтрокаТабличнойЧасти.Сумма=СтрокаТабличнойЧасти.Количество*СтрокаТабличнойЧ
    асти.Цена;
    КонецПроцедуры
    • МатериалыКоличество – ПриИзменении
    Код ( (Unknown Language)):
    &НаКлиенте
    Процедура МатериалыКоличествоПриИзменении(Элемент)
    СтрокаТабличнойЧасти=Элементы.Материалы.ТекущиеДанные;
    РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);
    КонецПроцедуры
    • МатериалыЦена – ПриИзменении
    Код ( (Unknown Language)):
    &НаКлиенте
    Процедура МатериалыКоличествоПриИзменении(Элемент)
    СтрокаТабличнойЧасти=Элементы.Материалы.ТекущиеДанные;
    РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);
    КонецПроцедуры

    &НаКлиенте
    Процедура МатериалыЦенаПриИзменении(Элемент)
    СтрокаТабличнойЧасти=Элементы.Материалы.ТекущиеДанные;
    РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);
    КонецПроцедуры
     
  5. Дайнеко

    Дайнеко Well-Known Member
    1C Team

    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    Ть-фу ты! Опять запутал! Так в чем ошибка был? (Я один ничего не поня?)

    А так писать слабо?
    Код ( (Unknown Language)):
        РаботаСДокументами.РассчитатьСумму(Элементы.Материалы.ТекущиеДанные);
     
  6. Allexei

    Allexei Well-Known Member

    Регистрация:
    2 май 2008
    Сообщения:
    322
    Симпатии:
    0
    я тоже ничего не понял ;)
     
  7. ovak

    ovak Гость

    Компиляция проходит по считыванию кода из количества, и пропускает считанный код в цене. Продолжает компиляцию на основе полученных ранее данных. Я при переходе в МатериалыЦенаПриИзменении() удалил предшедствующий код. Ладно, не заморачивайтесь. Решение проблемы найдено.
     
Загрузка...

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