1с переменная не определена ссылканаобъект
Начиная с версии 8.3.3 платформы в модуле управляемой формы, модуле команды и общем модуле появилось ключевое слово ЭтотОбъект , которое ссылается на текущий контекст модуля. В более ранних версиях платформы ключевое слово ЭтотОбъект использовалось только в модуле объекта или в модуле обычной формы и ссылалось на текущий объект. С какой стати решили использовать то же слово для модулей вместо более благозвучных ЭтотМодуль и ЭтаФорма — непонятно. Оставим это на совести разработчиков. Нам же нужно разобраться с ошибкой.
Итак, если вы разработали управляемую форму на платформе 8.3.3 или выше и пытаетесь использовать ее на платформе 1С:Предприятие 8.2 или 8.3.2 и ниже, помните, что в них ключевого слова ЭтотОбъект нет! Поэтому вызов, подобный этому, будет генерировать ошибку:
Чтобы избавиться от ошибки, можно:
- Обновить платформу до версии 8.3.3 или выше (Если используется стандартная конфигурация, возможно, потребуется обновить еще и версию конфигурации. Если конфигурация самописная, возможно, потребуется тестирование всех модулей и форм с последующим проведением рефакторинга);
- Избавиться от использования ключевого слова ЭтотОбъект , проведя рефакторинг кода;
Добавить комментарий Отменить ответ
Рубрики
Свежие записи
- Функция ПолучитьСклоненияСтроки()
- Ошибка «Тип не определен (ФормаКлиентскогоПриложения)»
- Процедура ПодключитьОбработчикОповещения()
- Недопустимое значение параметра номер 1 ПодключитьОбработчикОжидания()
- Процедура ОтключитьОбработчикОжидания()
- Процедура ПодключитьОбработчикОжидания()
- Что такое Символы.ПС в 1с 8?
- Свойство Символы.* глобального контекста
- Процедура ПолучитьЗаголовокСистемы()
- Процедура УстановитьЗаголовокКлиентскогоПриложения()
Свежие комментарии
- Александр К. к записи Функция ЗначениеЗаполнено()
- Олег к записи Функция ЗначениеЗаполнено()
- Александр К. к записи Как преобразовать таблицу значений в структуру?
- Михаил к записи Как преобразовать таблицу значений в структуру?
- Александр К. к записи Как получить формат даты месяц год?
Здравствуйте, коллеги! Сегодня поговорим о проблеме неопределенных переменных в 1С. Рядовой пользователь с данной ошибкой сталкиваться не должен, но если уж и произошло подобное при работе в типовой конфигурации 1С, которая никак не модифицировалась, возможно, у нас наклевывается проблема самого релиза, которая иссякнет при обновлении. В таком случае стоит связаться со специалистом, чтобы найти выход из ситуации.
Если же Вы сами занимаетесь разработкой и столкнулись с ошибкой, «Переменная не определена в 1С», то следует обратится к конфигуратору, найти, что за переменная и в какой именно момент не определена. Есть несколько вариантов решения, но нужно подбирать их с умом, ибо вполне возможно, что после неправильного исправления в одном месте, Вы получите кучу ошибок в других местах.
1. Проверка на определения 1С 8.3
Можно прописать перед ошибкой следующий код:
Если Не НашаПеременная = Неопределено Тогда
Соответственно, закрыв «Если» после, но тут как уже писалось нужно действовать аккуратно, возможно данная конструкция напрочь сломает весь последующий код. Гораздо лучше найти, где объявляется переменная и устранить ошибку.
2. Поиск объявления переменной 1С 8.3
Вполне возможен вариант, что ее просто забыли включить в передаваемые параметры функции или она не доступна в данном виде клиента. Такое случается, когда, например, обращаются из тонкого клиента к метаданным. В этом случае стоит переписать функцию или, возможно, объявить новую, но уже на сервере, которая вернет необходимые тонкому клиенту данные.
3. Обычная опечатка в программе 1С 8.3 Предприятие
Чтобы быстро в программе 1С 8.3 Предприятие проверить опечатка ли спровоцировала ошибку, просто скопируем переменную из объявления и вставим ее имя в то место, где случается ошибка. Можно сделать следующим образом, чтобы избежать таких ошибок в будущем:
Теперь, когда курсор останавливается на идентификаторе, все другие его упоминания будут выделены, как на следующем изображении:
Специалист компании ООО «Кодерлайн»
Дягилев Дмитрий Вадимович
Вас могут заинтересовать следующие статьи:
Здравствуйте, коллеги! Сегодня поговорим о проблеме неопределенных переменных в 1С. Рядовой пользователь с данной ошибкой сталкиваться не должен, но если уж и произошло подобное при работе в типовой конфигурации 1С, которая никак не модифицировалась, возможно, у нас наклевывается проблема самого релиза, которая иссякнет при обновлении. В таком случае стоит связаться со специалистом, чтобы найти выход из ситуации.
Если же Вы сами занимаетесь разработкой и столкнулись с ошибкой, «Переменная не определена в 1С», то следует обратится к конфигуратору, найти, что за переменная и в какой именно момент не определена. Есть несколько вариантов решения, но нужно подбирать их с умом, ибо вполне возможно, что после неправильного исправления в одном месте, Вы получите кучу ошибок в других местах.
1. Проверка на определения 1С 8.3
Можно прописать перед ошибкой следующий код:
Если Не НашаПеременная = Неопределено Тогда
Соответственно, закрыв «Если» после, но тут как уже писалось нужно действовать аккуратно, возможно данная конструкция напрочь сломает весь последующий код. Гораздо лучше найти, где объявляется переменная и устранить ошибку.
2. Поиск объявления переменной 1С 8.3
Вполне возможен вариант, что ее просто забыли включить в передаваемые параметры функции или она не доступна в данном виде клиента. Такое случается, когда, например, обращаются из тонкого клиента к метаданным. В этом случае стоит переписать функцию или, возможно, объявить новую, но уже на сервере, которая вернет необходимые тонкому клиенту данные.
3. Обычная опечатка в программе 1С 8.3 Предприятие
Чтобы быстро в программе 1С 8.3 Предприятие проверить опечатка ли спровоцировала ошибку, просто скопируем переменную из объявления и вставим ее имя в то место, где случается ошибка. Можно сделать следующим образом, чтобы избежать таких ошибок в будущем:
Теперь, когда курсор останавливается на идентификаторе, все другие его упоминания будут выделены, как на следующем изображении:
Специалист компании ООО «Кодерлайн»
Дягилев Дмитрий Вадимович
Вас могут заинтересовать следующие статьи:
Здравствуйте, коллеги! Сегодня поговорим о проблеме неопределенных переменных в 1С. Рядовой пользователь с данной ошибкой сталкиваться не должен, но если уж и произошло подобное при работе в типовой конфигурации 1С, которая никак не модифицировалась, возможно, у нас наклевывается проблема самого релиза, которая иссякнет при обновлении. В таком случае стоит связаться со специалистом, чтобы найти выход из ситуации.
Если же Вы сами занимаетесь разработкой и столкнулись с ошибкой, «Переменная не определена в 1С», то следует обратится к конфигуратору, найти, что за переменная и в какой именно момент не определена. Есть несколько вариантов решения, но нужно подбирать их с умом, ибо вполне возможно, что после неправильного исправления в одном месте, Вы получите кучу ошибок в других местах.
1. Проверка на определения 1С 8.3
Можно прописать перед ошибкой следующий код:
Если Не НашаПеременная = Неопределено Тогда
Соответственно, закрыв «Если» после, но тут как уже писалось нужно действовать аккуратно, возможно данная конструкция напрочь сломает весь последующий код. Гораздо лучше найти, где объявляется переменная и устранить ошибку.
2. Поиск объявления переменной 1С 8.3
Вполне возможен вариант, что ее просто забыли включить в передаваемые параметры функции или она не доступна в данном виде клиента. Такое случается, когда, например, обращаются из тонкого клиента к метаданным. В этом случае стоит переписать функцию или, возможно, объявить новую, но уже на сервере, которая вернет необходимые тонкому клиенту данные.
3. Обычная опечатка в программе 1С 8.3 Предприятие
Чтобы быстро в программе 1С 8.3 Предприятие проверить опечатка ли спровоцировала ошибку, просто скопируем переменную из объявления и вставим ее имя в то место, где случается ошибка. Можно сделать следующим образом, чтобы избежать таких ошибок в будущем:
Теперь, когда курсор останавливается на идентификаторе, все другие его упоминания будут выделены, как на следующем изображении:
Специалист компании ООО «Кодерлайн»
Дягилев Дмитрий Вадимович
Вас могут заинтересовать следующие статьи:
Добрый день, я начинающий чайник в программировании 1с, и поставлена задача печати договоров с контрагентами на автомате, по кнопке печать. Хотелось бы поинтересоваться есть материал для данного задания или существует каканибуть внешняя форма?
печать как? просто в 1С используя табличный документ или нужна печать в Ворд файл?
Материалы есть и внешние формы есть.
Вам нужно для начала определиться, откуда вы будете печатать договор.
конечно мне проще и удобнее освоить печать через word а именно с помощью автозамены переменных в форме. не знаю даже с чего начать.
Насчет проще и удобнее ворд - тут вопрос.
Там все по стандартной схеме, создаете обработку, в ней реквизит ссылка на объект - это объект конфигурации, из которого вы хотите договор печатать, и далее уже создаете функцию печать в модуле объекта.
Для примера можете посмотреть _Primer.epf
1)создал внешнюю обработку ПечатьВорд2) сделал .doc где вставил все нижеперечисленное в нужных местах docvariable NomerDogovora, DataDoc, Principal, Manager, Organization, NDateDov3)создал макет с двоичными данными, где указал файл из пункта 2.4) Добавил код в ПечатьВорд: Модуль объекта:Функция ПолучитьМакетСервер()Возврат ПолучитьМакет("Макет1");КонецФункцииПРоцедура НапечататьДокумент(Объект)Word = Новый COMОбъект("Word.Application");Макет = ПолучитьМакетСервер();временныйПуть = КаталогВременныхФайлов();имяВременногоФайла = временныйПуть + "gph.doc";Макет.Записать(имяВременногоФайла);ТекДок = Word.Documents.ADD(имяВременногоФайла);СтруктураДоверенности =ПолучитьДанныеДоверенности(СсылкаНаОбъект.Менеджер);НомерДатаДоверенности = "№ " + СтруктураДоверенности.Номер + " от " + СтруктураДоверенности.Дата;ТекДок.Variables("NomerDogovora").Value=СокрЛП(Строка(СсылкаНаОбъект.Номер));ТекДок.Variables("DateDok").Value=Строка(Формат(СсылкаНаОбъект.Дата,"ДЛФ = ДД"));ТекДок.Variables("Organization").Value=СокрЛП(СсылкаНаОбъект.Организация.НаименованиеПолное);ТекДок.Variables("Menager").Value=Строка(СсылкаНаОбъект.Менеджер);ТекДок.Variables("NDateDov").Value=Строка(НомерДатаДоверенности);ТекДок.Variables("Principal").Value=Строка(СсылкаНаОбъект.Контрагент);ТекДок.Fields.Update();Word.ActiveWindow.View.ShowFieldCodes = False;Word.Visible=Истина;КонецПроцедуры
5) В следствии получил следующее - напоминаю, я начинающий ЧАЙНИК!: Переменная не определена (СсылкаНаОбъект)ТекДок.Variables("Organization").Value=СокрЛП(>СсылкаНаОбъект.Организация.НаименованиеПолное); (Проверка: Толстый клиент (обычное приложение)): Переменная не определена (СсылкаНаОбъект)ТекДок.Variables("Menager").Value=Строка(>СсылкаНаОбъект.Менеджер); (Проверка: Толстый клиент (обычное приложение)): Переменная не определена (СсылкаНаОбъект)ТекДок.Variables("Principal").Value=Строка(>СсылкаНаОбъект.Контрагент); (Проверка: Толстый клиент (обычное приложение)): Процедура или функция с указанным именем не определена (ПолучитьДанныеДоверенности)СтруктураДоверенности =>ПолучитьДанныеДоверенности(СсылкаНаОбъект.Менеджер); (Проверка: Толстый клиент (обычное приложение))6) Что не так? что не сделал?
1)создал внешнюю обработку ПечатьВорд
2) сделал .doc где вставил все нижеперечисленное в нужных местах docvariable NomerDogovora, DataDoc, Principal, Manager, Organization, NDateDov
Читайте также: