gifts2017

Новые сказки о старом или как поймать событие «При активизации строки» в 1С: 7.7

Опубликовал majmyl Hauanov (majmyl) в раздел Программирование - Практика программирования

Давным-давно, в 1344152635 секунде по времени Unix, жил был один добрый, сильный и очень умный программист… Осилим царь-батюшка! — воскликнул наш добрый молодец и открыл пофигуратор однаэски 8.2… Там можно только прописать процедуры для реквизитов табличной части и реализовать событие ПриИзменении…

А что это за кнопка? (начало голливудского фильма)

Давным-давно, в 1344152635 секунде по времени Unix, жил был один добрый, сильный и очень умный программист. В это время уже вовсю правил бал 1С: Предприятие 8.2 и старая добрая 1С: Предприятие 7.7 уже стала забываться. Однажды, у царя-государя 11110-го царства (по двоичному исчислению) нужда великая появилась, а именно, нужно было реализовать событие ПриАктивизацииСтроки. И издал он указ: кто да кто реализует техническое задание будет одарен царской милостью и премирован небольшой суммой денег (жадные сейчас пошли цари, ни тебе дочки, ни тебе полцарства). Ниже текст тех. задания:

Исходные данные: Справочник «Номенклатура», подчиненный ему справочник «Акцизные марки», документ «Реализация товаров и услуг»;
Необходимо: при активизации строки (когда мы жмакаем на строку табличной части документа) выводились в списке значений в том же документе все акцизные марки этой номенклатурной позиции.

Осилим царь-батюшка! — воскликнул наш добрый молодец и открыл пофигуратор однаэски 8.2. Быстро сказка сказывается, да не скоро дело делается. Оказалось, что реализовать это нужно было в 7.7, а там нет такого события. Там можно только прописать процедуры для реквизитов табличной части и реализовать событие ПриИзменении (например процедура пересчета суммы при изменении количества или цены). А не было того, чтобы мы встали на строку (жмакнули на ней грызуном) и на нас бы вывалилось счастье. И начал наш богатырь думать думу глубокую, шевелить извилинами извилистыми и читать большой мудрый китап. И придумал он штуку хитрую, ниже пример реализации реакции события ПриАктивизацииСтроки:

Исходные данные: 1С:Предприятие 7.7, создал новую конфигурацию со справочником «Номенклатура» и подчиненным ему справочником «Поставщики» (это для примера, к реальной жизни отношения может не иметь). Также иметься документ «Реализация» с табличной частью с реквизитами «Товар» (тип «Справочник.Номенклатура»), Цена (Число), Количество (Число), Сумма (Число). Имеется также у документа реквизит формы «Поставщик» (Список значений).
Задание: при выделении строки табличной части необходимо заполнять список значений «Поставщики», данными из подчиненного справочника «Поставщики» (владелец — товар из текущей строки документа)

Конфигурация которую я набросал (см. ниже):

Ниже приведена форма документа «Реализация»:

Для колонок «Цена» и «Количество реализовал процедуру «Пересчет()», который при изменении цены или количества пересчитывает сумму, а также вставил элемент формы типа «Текст» и для нее уже определил функцию «ВывестиПоставщиков()», который как раз и реализует событие «ПриАктивизацииСтроки», хотя точнее было бы «ПриОбновленииФормы»:

Привожу код формы документа:

Ну вот и все! Привожу выгрузку данных 7.7, которую можно загрузить и потестить (Создаем новую конфигурацию, потом в конфигураторе открываем «Администрирование» и выбираем «Загрузить данные», указываем файл выгрузки). Файл выгрузки ниже.

И обрадовался государь, и собрался закатить пир на весь мир, ан нет, финансы. Угостил нашего программера пивком. И на том спасибо. Вот и сказке конец, а кто не слушал тот …

Скачать файлы

Наименование Файл Версия Размер
activ_line.zip 8
.zip 10,67Kb
29.01.14
8
.zip 10,67Kb Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

2. Женя Ткаченко (zhenyat) 29.01.14 21:02
Ну как бы давно известный механизм то...?
3. Епрст (Ёпрст) 30.01.14 08:26
(2) Автор только начинает изучать велосипед
4. Сергей Ожерельев (Поручик) 30.01.14 12:52
А я-то думал тут такое.... Много лет назад даже не задумывался, просто делал, если требовалось.
Эту хрень может сделать любой мало-мальский грамотный клюшечник.
5. Иван Иванов (Famza) 03.02.14 21:42
Ну написано же - сказка, а вы накинулись...))
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа