Вопрос № 26496: Привет Эксперты!
Недавно начал изучать 1С и вот появились проблемы.
1) Не знаю как обрабатывать события. Например в Delphi, есть события на каждый компонент (onEdit, onEnter etc…), а здесь как это делается?
2) У меня есть Обработка с фор...
Вопрос № 26.496
Привет Эксперты!
Недавно начал изучать 1С и вот появились проблемы.
1) Не знаю как обрабатывать события. Например в Delphi, есть события на каждый компонент (onEdit, onEnter etc…), а здесь как это делается?
2) У меня есть Обработка с формой. На форме «лежит» ТаблицаЗначений, как обработать событие при выборе одной из строк таблицы?
Заранее спасибо !
Отправлен: 17.09.2005, 19:52
Вопрос задал: Andy r00t (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: agafonov
Здравствуйте, Andy r00t!
Чего-то никто не отвечает. Придется мне.
Такой гибкости как в универсальных языках программирования добиться не всегда возможно, да и не всегда нужно. Но ряд методов есть.
1. Для сопоставления реакции на некоторые события, есть ряд предопределенных процедур, например, приоткрытии(), призакрытии(), вводнового() и т.д. Далее, для обработки основных событий, можно сопоставить элементы диалога процедуру или функцию, которая будет вызываться при выполнении стандартного действия. Делаеться это так: Вызываем свойства элемента диалога (пр.кнопка->свой-ва), закладка"Дополнительно", в поле "Формула", помещаем вызов процедуры или функции, хотся можно любое выражение
на языке 1С.
2. Поступаем примерно также как выше описано.
Если таблица уже заполнена, то необходимо сопоставить формулу, которая будет вызываться при двойном щелчке. Но для того, чтобы работать с таблицей, нужно сопоставить ей индентификатор (Св-ва->Общие->идентификатор). При двойном щелчке на какой либо строке таблицы она является текущей и к ней можно обращаться через идентификатор таблицы. Более того в модуле формы таблица значений являетс глобальной переменной, так что и к ней легко можно обратиться по идентификаторы.
Пример см. в приложении
Приложение:
Ответ отправил: agafonov (статус: 2-ой класс)
Отправлен: 19.09.2005, 13:08
Отвечает: Anefedov
Здравствуйте, Andy r00t!
Предыдущий оратор показал, как можно выбирать строки двойным щелчком. Я покажу, как одинарным.
1. На форму нужно положить невидимый текстовый реквизит с функцией в дополнительно.
2. В модуле формы реализовать эту функцию
Например так.
Перем текНСтр;
Функция СтрокаИзменилась()
Если текНСтр=ТЗ.НомерСтроки Тогда
Возврат 0;
КонецЕсли;
/* Условно говоря - событие выбора строки наступило.
________________________________
*/
текНСтр = ТЗ.НомерСтроки;
Возврат 1;
КонецФункции
Ответ отправил: Anefedov (статус: 6-ой класс)
Отправлен: 20.09.2005, 13:54