Интерактивный список событий у объекта конфигурации

Интерактивный список событий у объекта конфигурации

не могу в модуле объекта создать шаблон с параметрами для обработчика событий объекта.

Я встретилась с этим, когда изучала пример на стр. 320

"Теперь доработаем справочник Клиенты. В модуль объекта добавим обработчик событий ПриУстановкеНовогоКода.

Получается, что для написания процедур обработчиков событий для объекта я должна рыскать по синтаксис-помощнику и оттуда выуживать параметры обработчиков ?

По логике этого не должно быть. Видимо я что-то упустила, и может быть Вы подскажите, как нужно получать тексты обработчиков событий объектов в модуле объекта.

Во всех традиционных системах программирования, например Delphi, события объектов визуально присутствуют в свойствах объектов и их шаблоны с параметрами

очень просто получить в тексте программы.

Кстати, если в тексте модуля формы обработчик события оказался пустым, удаляется ли он из текста модуля автоматически?

Павел, спасибо. Это то, что я искала.

Вы как всегда на высоте.

> Список доступных в модуле объекта обработчиков событий можно получить, используя элементы панели инструментов "Модуль", показанные на прикрепленном рисунке. В этих списках используемые в модуле обработчики отмечены специальной пиктограммой.

Спасибо!Я хотел бы отметить, что тоже самое и в модуле формы - там нет никаких свойств и кнопок с "лупой" для вставки обработчиков, они есть в Диалоге формы.А, объект в "модуле объекта" (и, вообще в 1С) - это не "объект" в ООП

> Кстати, если в тексте модуля формы обработчик события оказался пустым, удаляется ли он из текста модуля автоматически?

Из соображений здравого смысла, что не удаляется, т.к. не имеет никакого здравого смысла, чтобы что-то вставленное вручную исчезало из под руки разработчика (во время отладки). Впрочем, это не так уж и трудно проверить - вставив пустую процедуру и выполнив её F5

Насколько я понимаю, если тело процедуры (обработчика) пустое, то компилятор (интерпретатор) не будет ничего вставлять (или резервировать) в выполняемом (откомпилированном) коде.

Написавши это, я хотел бы уточнить 1С - компилируемый или интерпретируемый язык?

Извините, но Вы не совсем поняли о чем идет речь.

Я имела ввиду автоматическую вставку заготовки процедуры - обработчика события какого-нибудь объекта, например, справочника,

в модуль объекта при нажатии на "лупу". Это может выполняться только в режиме конфигуратора и способствует меньшему количество ошибок в заголовках процедур, параметрах и т.д.

Наконец, это - удобно иметь список событий всегда под рукой во время написания текста модуля объекта. Речь идет о комфортном программировании, не более.

Компиляция и отладка здесь ни причем.

Именно так сделано в Delphi и Borland C++ Builder. Такая легкость автоматического создания заготовок процедур - обработчиков, конечно, может привести к тому,

что Вы можете случайно создать процедуру - обработчик или открыть ее и передумать. В этих случаях работает компилятор и убирает пустые процедуры - они загромождают текст

и напрасно расходуют время. Никто не трогает ничего вставленного вручную.

Мой вопрос заключался в следующем. Такие комфортные условия программирования есть в 1с при написании процедур - обработчиков событий ФОРМЫ.

Значит люди думали об удобстве программирования обработчиков событий ФОРМЫ.

Hо при написании процедур - обработчиков событий ОБЪЕКТА комфортных условий программирования событий НЕТ. Что-то не додумали или я пропустила и не знаю

Где находится "лупа", которая открывает процедуры - обработчики событий ОБЪЕКТА? Или такой "лупы" нет?

Обратите внимание, когда Вы находитесь в окне конфигурации и открываете палитру свойств справочника «Клиенты», то Вы видите свойства объекта конфигурации. На основании этого объекта в информационной базе будет создана специальная структура для хранения данных. Для программной работы с этим объектом существуют другие объекты, которые называются объектами встроенного языка. Поскольку для размещения текста программы на встроенном языке предназначены модули прикладного решения (Общие модули, модули форм, объектов и т.д.), а каждый модуль связан с остальной частью конфигурации (эта связь называется контекстом выполнения модуля), то именно контекст определяет набор доступных для модуля объектов, переменных, процедур и функций. Таким образом, когда Вы открываете модуль объекта справочника «Клиенты», то имеете дело с объектом встроенного языка «СправочникОбъект.Клиенты», предназначенным для модификации отдельного элемента такой информационной структуры (в нашем случае - элемента справочника).

Если же Вы имеете дело с формой, а у нее есть основной реквизит, то к свойствам, методам и событиям самой формы добавится дополнительный набор свойств, методов и событий, состав которого определяется типом значения основного реквизита формы, называемый расширением. Если основного реквизита у формы - нет, то и расширения нет.

Подробнее можно посмотреть в книге «1С:Предприятие 8.1. Практическое пособие разработчика. Примеры и типовые приемы», стр. 421 «Объекты, объекты, объекты. » и стр. 396 «Формы», а также в книге "Профессиональная разработка в системе 1С:Предприятие 8", глава 3. Использование встроенного языка.

Спасибо. Прочитала все, что Вы рекомендовали. Это действительно очень важно для прояснения взгляда сверху на программирование в 1С.

Но если попытаться перейти в практическую плоскость, то можно ли увидеть контекст( т. е. все доступные методы, переменные, функции, события и т.д.) в модуле объекта

и соответственно расширение (т. е. все доступные методы, переменные, функции, события и т.д.) в модуле формы?

> Но если попытаться перейти в практическую плоскость, то можно ли увидеть контекст( т. е. все доступные методы, переменные, функции, события и т.д.) в модуле объекта

После ввода объекта "точка" выпадет окошко с причиндалами объекта (типа ХХХХХОбъект, где ХХХХХ - Справочник, Документ, etc. . мне так кажется)

> Извините, но Вы не совсем поняли о чем идет речь.

Поняли - у Вас пожелание, а не вопрос. ЧТо тут отвечать-то?

> Я имела ввиду автоматическую вставку заготовки процедуры - обработчика события какого-нибудь объекта, например, справочника,

Всё-таки Вы писали об автоматизированной вставке, инициированной ручным нажатием кнопки с изображением "лупа". Это не автоматическое генерирование

> в модуль объекта при нажатии на "лупу". Это может выполняться только в режиме конфигуратора и способствует меньшему количество ошибок в заголовках процедур, параметрах и т.д.> Наконец, это - удобно иметь список событий всегда под рукой во время написания текста модуля объекта. Речь идет о комфортном программировании, не более.> Компиляция и отладка здесь ни причем. > Именно так сделано в Delphi и Borland C++ Builder. Такая легкость автоматического создания заготовок процедур - обработчиков, конечно, может привести к тому,

> что Вы можете случайно создать процедуру - обработчик или открыть ее и передумать. В этих случаях работает компилятор и убирает пустые процедуры - они загромождают текст > и напрасно расходуют время. Никто не трогает ничего вставленного вручную.

Я не работаю с Borland средами, но почти уверен, что Вы неправильно описываете, т.к. системы визуальной разработки все работают примерно одинаково.

В MS Visual Studio 200x, если Вы вставите случайно пустой текст обработчика, например, двойным щелчком на элементе "кнопка", то он автоматически не убирается компилятором (и не может, и не имеет смысла - см. , что я написал ранее).

Во-первых, везде есть элементарное UNDO - для случайных ошибок

Есть бьюфикаторы и отдельные plug-ins, фичи, которые могут чистить, форматировать, украшать тексты и др., но делать это автоматически, чтобы после каждого запуска отладчика исчезали куски вручную вставленного кода - это бред

> Мой вопрос заключался в следующем. Такие комфортные условия программирования есть в 1с при написании процедур - обработчиков событий ФОРМЫ. > Значит люди думали об удобстве программирования обработчиков событий ФОРМЫ. > Hо при написании процедур - обработчиков событий ОБЪЕКТА комфортных условий программирования событий НЕТ. Что-то не додумали или я пропустила и не знаю> где их найти. > Где находится "лупа", которая открывает процедуры - обработчики событий ОБЪЕКТА? Или такой "лупы" нет?

📎📎📎📎📎📎📎📎📎📎