В начало
Сравнение Объект и ЭтотОбъект
Если установить точку останова в конфигураторе и вычислить
выражение «Объект», то можно получить следующие данные. Рис. «Объект» из модуля формы Но как ни странно, Объект входит в некую хрень под названием «ЭтотОбъект» и это вовсе не одно и тоже. Рис. «ЭтотОбъект» из модуля формы, выделен «Объект» Нечто под названием «ЭтотОбъект» можно просмотреть в режиме отладки и из модуля объекта. Насколько хорошо видно, никакого элемента «Объект» в нем нет, зато есть непонятная и ненужная рекурсия на самого себя, т.е. на «ЭтотОбъект». Рис. «ЭтотОбъект» из модуля объекта, «Объекта» отдельной строкой нет Т.е. если в модуле формы документа, в процедуре «При открытии» написать код как тот, что показана ниже, то это просто пользовательской переменной присвоится значение, соответствующее читателю из справочника «Читатели». Листинг 1. Просто переменная «Читатель»
Если прописать переменную отталкиваясь от «Объект» через точку, то уже подцепится реквизит объекта. Но при этом данная запись является сокращенной. Листинг 2. Реквизит «Читатель»
В том случае, если слегка размотать этот змеиный клубок, то следует писать начиная с «ЭтотОбъект», потом уже через точку «Объект» и наконец реквизит «Читатель». Листинг 3. Полный путь к реквизиту «Читатель»
РЕЗЮМЕ: вся эта котовасия с отсутствием обязательного декларирования переменных, а также с сокращением записей объектов и похожими на первый взгляд названиями «Объект» и «ЭтотОбъект» является источником многих ошибок. |
|||||