А что это за кнопка? (начало голливудского фильма)
Давным-давно, в 1344152635 секунде по времени Unix, жил был один добрый, сильный и очень умный программист. В это время уже вовсю правил бал 1С: Предприятие 8.2 и старая добрая 1С: Предприятие 7.7 уже стала забываться. Однажды, у царя-государя 11110-го царства (по двоичному исчислению) нужда великая появилась, а именно, нужно было реализовать событие ПриАктивизацииСтроки. И издал он указ: кто да кто реализует техническое задание будет одарен царской милостью и премирован небольшой суммой денег (жадные сейчас пошли цари, ни тебе дочки, ни тебе полцарства). Ниже текст тех. задания:
Исходные данные: Справочник «Номенклатура», подчиненный ему справочник «Акцизные марки», документ «Реализация товаров и услуг»;
Необходимо: при активизации строки (когда мы жмакаем на строку табличной части документа) выводились в списке значений в том же документе все акцизные марки этой номенклатурной позиции.
Осилим царь-батюшка! — воскликнул наш добрый молодец и открыл пофигуратор однаэски 8.2. Быстро сказка сказывается, да не скоро дело делается. Оказалось, что реализовать это нужно было в 7.7, а там нет такого события. Там можно только прописать процедуры для реквизитов табличной части и реализовать событие ПриИзменении (например процедура пересчета суммы при изменении количества или цены). А не было того, чтобы мы встали на строку (жмакнули на ней грызуном) и на нас бы вывалилось счастье. И начал наш богатырь думать думу глубокую, шевелить извилинами извилистыми и читать большой мудрый китап. И придумал он штуку хитрую, ниже пример реализации реакции события ПриАктивизацииСтроки:
Исходные данные: 1С:Предприятие 7.7, создал новую конфигурацию со справочником «Номенклатура» и подчиненным ему справочником «Поставщики» (это для примера, к реальной жизни отношения может не иметь). Также иметься документ «Реализация» с табличной частью с реквизитами «Товар» (тип «Справочник.Номенклатура»), Цена (Число), Количество (Число), Сумма (Число). Имеется также у документа реквизит формы «Поставщик» (Список значений).
Задание: при выделении строки табличной части необходимо заполнять список значений «Поставщики», данными из подчиненного справочника «Поставщики» (владелец — товар из текущей строки документа)
Для колонок «Цена» и «Количество реализовал процедуру «Пересчет()», который при изменении цены или количества пересчитывает сумму, а также вставил элемент формы типа «Текст» и для нее уже определил функцию «ВывестиПоставщиков()», который как раз и реализует событие «ПриАктивизацииСтроки», хотя точнее было бы «ПриОбновленииФормы».
Ну вот и все! Привожу выгрузку данных 7.7, которую можно загрузить и потестить (Создаем новую конфигурацию, потом в конфигураторе открываем «Администрирование» и выбираем «Загрузить данные», указываем файл выгрузки). Файл выгрузки ниже.
И обрадовался государь, и собрался закатить пир на весь мир, ан нет, финансы. Угостил нашего программера пивком. И на том спасибо. Вот и сказке конец, а кто не слушал тот …