Ошибка Переменная не определена в 1С 8.3 указывает на то, что программа не может получить нужную информацию в исполняемом программном коде. Это может быть связано с обновлением или доработкой программы. Если стандартный набор действий при исправлении ошибок не помог:
- чистка кеша;
- тестирование и исправление информационной базы;
- просмотр зарегистрированных ошибок на сайте 1С,
придется разбираться с местом возникновения ошибки в 1С самостоятельно.
БухЭксперт8 подготовил 3 примера получения и исправления ошибки:
- в доработанном программном коде;
- при выводе печатной формы;
- при исполнении кода на Клиенте.
Содержание
Ошибка в доработанном программном коде
В форму типового отчета Движение товаров программист добавил поле Склад. Список выбора значений в это поле ограничен. При открытии отчета появляется ошибка:
В сообщении об ошибке указано место возникновения ошибки — строка 919 в модуле формы. Для исправления ошибки необходимо выполнить следующие действия:
- Нажмите кнопку Подробно в форме сообщения об ошибке.
В окне Обнаружены ошибки программа укажет:- номер неправильной строки кода;
- исполняемую команду, которая привела к ошибке.
Иногда подробной информации в окне Обнаружены ошибки достаточно для понимания причин ее возникновения, но не всегда. В большинстве случаев требуется перейти в место возникновения ошибки и проанализировать используемые в команде данные.
- Для перехода в место ошибки нажмите кнопку Конфигуратор.
В Конфирураторе курсор автоматически установится на строке программного кода с ошибкой. Необходимо проверить используемые командой данные. В данном примере ошибка сигнализирует, что переменной ОсновнойСклад не задано значение: при добавлении в список складов программа не понимает, какой склад требуется добавить. - Исправьте ошибку.
Укажите нужное значение переменной в программном коде, например: - Сохраните изменения и обновите информационную базу.
- Проверьте работу 1С после исправления ошибки.
После исправления отчет открывается без ошибки, а при выборе складов устанавливается нужное значение Основной склад.
Ошибка вывода печатной формы
Для вывода в печатную форму накладной данных об ответственном менеджере, оформившем документ поступления, программист внес изменения в макет ПФ_MXL_Накладная и программный код.
В макет документа добавлена область Подвал:
В программном коде дописан вывод данных области Подвал:
После доработки программы при попытке вывода накладной на печать 1С выдает ошибку:
Информация в окне сообщения об ошибке указывает, что в Модуле менеджера документа ПоступлениеТоваровУслуг не определено значение переменной Ответственный. Для исправления ошибки:
Получите понятные самоучители 2024 по 1С бесплатно:
- Перейдите в Конфигуратор. В Модуле менеджера документа ПоступлениеТоваровУслуг перейдите на строку 4804.
- Укажите для вывода в печатную форму поля Ответственный — текущего пользователя, используя специальную команду 1С:
- Пользователи.ТекущийПользователь().
- Сохраните изменения и обновите информационную базу.
- Перейдите в пользовательский режим для проверки выполненных изменений.
После исправления программного кода накладная сформируется без ошибки.
Ошибка исполнения кода на Клиенте
С переходом на управляемые формы в Бухгалтерия 3.0 работы программистам прибавилось.
Язык программирования стал сложнее. Часть команд теперь могут выполняться только на стороне клиента — это, условно говоря, компьютер пользователя, который посылает запросы на исполнение операций серверу. Сервер обрабатывает все поступившие запросы и отсылает обратно клиенту результат обработки данных.
Все это привело к тому, что в 1С команды делятся на исполняемые &НаСервере и &НаКлиенте. И при написании программного кода нужно это учитывать, иначе программа не сможет выполнить заданную операцию. При работе с переменными при написании программного кода важно понимать:
- &НаКлиенте — переменные существуют только на время клиентского вызова;
- &НаСервере— переменные существуют только на время серверного вызова.
Разделение команд в программном коде не зависит от того, используете ли вы файловую или клиент-серверную 1С. Разграничение должно четко исполняться, иначе будут возникать ошибки, одну из которых БухЭксперт8 разберет на примере.
При доработке программного кода программист использовал операцию получения данных склада &НаКлиенте в процедуре ПриОткрытии.
При сохранении изменений 1С сообщила об ошибке Переменная не определена (Справочники) при определении значения склада:
- «?»Справочники.Склады.НайтиПоКоду(«»00-000002»).
Ошибка связана с тем, что данная операция исполняется только на сервере, т. е. &НаСервере. И несмотря на то, что сама команда исполнения корректна, ошибка будет формироваться до тех пор, пока ее не перенесут в область команд исполнения &НаСервере, например так:
Теперь сохранение изменений пройдет без ошибки.
Усложнение языка программирования 1С требует от разработчика более глубокого подхода к вносимым изменениям в программу. Недостаточно просто знать синтаксис команды, важно еще правильно задать область исполнения команды в режиме управляемых форм.
См. также:
- Большое количество забивается решеткой
- Печатная форма недоступна 1С 8.3 при вызове внешней печатной формы
- Значение поля номер не уникально 1С 8.3: как исправить
- У пользователя недостаточно прав на исполнение операции
Если Вы еще не подписаны:
Активировать демо-доступ бесплатно →
или
Оформить подписку на Рубрикатор →
После оформления подписки вам станут доступны все материалы по 1С Бухгалтерия, записи поддерживающих эфиров и вы сможете задавать любые вопросы по 1С.
Подписывайтесь на наши YouTube
и Telegram чтобы не
пропустить
важные изменения 1С и законодательства
Помогла статья?
Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 8 дней бесплатно
Обратите внимание!
В комментариях наши эксперты не отвечают на вопросы по программам 1С и законодательству.
Задать вопрос нашим специалистам можно в Личном кабинете