Предприятие 1с ошибка переменная не определена

Переменная
не определена в 1С

В программе 1С для промежуточного хранения информации любого типа используются переменные. В процессе исполнения программного кода, если переменной не присвоено никакого значения, пользователю выдается ошибка в 1С «Переменная не определена». Рассмотрим, как ее исправить.

Использование переменных в 1С

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

Тип переменной заранее не задается, а определяется после присвоения какого-либо значения. В памяти они не хранятся, а создаются в момент исполнения кода и стираются с завершением операций. Различают 3 вида переменных:

  • глобальные,
  • локальные,
  • экспортные.

Глобальные переменные

Объявляются в верхней части модулей до процедур/функций в разделе объявления переменных. Имена перечисляются после ключевого слова Перем через запятую. Присвоение значений происходит в процессе выполнения кода, изначально имеет тип [Неопределено].

Глобальные переменные можно использовать в модулях:

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

В модулях формы и команды для каждой процедуры/функции определяется место исполнения: на сервере (&НаСервере, &НаСервереБезКонтекста) или на клиенте (&НаКлиенте), при этом режим работы программы (серверный или файловый) не имеет значения. Объявленные глобальные переменные в этих модулях во время выполнения кода:

  • &НаКлиенте — передаются от одной процедуры к другой с сохранением значения. При переводе исполнения кода на сервер переменные продолжают существовать на стороне клиента со значениями, которые имели до передачи на сервер;

  • &НаСервере — уничтожаются по окончании выполнения процедур/функций на сервере, обратная передача переменной на клиент не производится. При повторном обращении к серверу создается вновь со значением по умолчанию [Неопределено].

Локальные переменные

Определяются в процедуре/функции при помощи равенства какому-либо значению, доступны только в пределах своей процедуры/функции, не могут выйти за рамки кода и стираются после ее завершения.

Экспортные переменные

В разделе переменных после имени имеют ключевое слово Экспорт, которое позволяет экспортировать их в любое место программы через обращение к модулю-родителю.

Ошибка «Переменная не определена» в 1С 8.3

Когда программа 1С не может найти переменную, пользователю выдается сообщение «Переменная не определена ([Имя_переменной])».

Сбой может возникнуть после обновления или доработки конфигурации. Первичные действия по устранению ошибки будут такими же, как при появлении других предупреждающих сообщений, например, «Поле объекта не обнаружено» или «Метод объекта не обнаружен»:

  • очистка кэш-памяти программы 1С;
  • регистрация ошибки на сайте поддержки 1С, загрузка исправленных версий конфигурации;
  • тестирование и исправление сбоев в 1С через одноименную команду в конфигураторе.

Если ни один из вышеуказанных способов не дал результата, то для решения проблемы с ошибкой «Переменная не определена» потребуется разобрать в программном коде и при необходимости внести правки.

Кроме текста ошибки в окне указано место ее возникновения:

  • Документ — вид объекта метаданных;
  • РеализацияТоваровУслуг — имя объекта;
  • Форма. ФормаДокументаТовары — модуль возникновения сбоя;
  • Форма(299,42) — номер строки в коде модуля и порядковый номер символа в строке.

Для перехода в конфигуратор нажмите Подробно — Конфигуратор. Если кнопки Подробно нет в окне:

  • откройте конфигуратор самостоятельно;
  • запустите конфигурацию в режиме отладки через меню Отладка — Начать отладку;
  • повторите действия, вызывающие ошибку.

В конфигураторе откроется модуль, в котором не удалось определить переменную, а курсор автоматически переместится на ее имя.

Способы устранения ошибки

Если переменная не определена в процедуре/функции, исполняемой на стороне клиента (&НаКлиенте):

1. Проверьте код процедуры/функции до места, где идет обращение к переменной: возможно, произошла опечатка в имени.

2. Просмотрите раздел объявления переменных в начале модуля: если есть сходные по наименованию переменные, исправьте описку в процедуре/функции.

3. До момента использования в процедуре/функции локальной переменной не было присвоено никакого значения, и в памяти 1С ее еще не существует.

С глобальными переменными такие случаи исключены, т. к. они создаются сразу после объявления в начале модуля со значением [Неопределено] и могут подставляться в выражения без предварительной записи в них значения.
Для устранения ошибки потребуется вставить в код строку с присвоением переменной значения. По негласному соглашению программисты 1С при написании исполняемого кода дают имена объектам, реквизитам, процедурам, переменным и т. д., созвучные с записываемой в них информацией или выполняемыми действиями. Обратите внимание:

  • когда появляется окно с ошибкой «Переменная не определена»: открытие формы, нажатие на кнопку, выбор из списка и т. д.? В примере окно с сообщением об ошибке выдается при попытке изменить дату документа;
  • на наименование процедуры/функции, которая содержит строку кода с ошибкой —ДатаПриИзменении, содержит алгоритм действий при смене даты;
  • на имя ненайденной переменной — ТекДатаДокумента, говорит о значении с типом Дата.
    Проанализировав эту информацию, определите, какое значение должно быть в переменной. В представленном коде, возможно, программист имел в виду дату документа до изменения.
    После определения данных, которые должна содержать переменная, в процедуру/функцию перед местом сбоя дописывается строка кода с присвоением переменной требуемого значения.

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

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

4. Попытка прочитать данные базы на стороне клиента. При работе с программой на компьютер пользователя с сервера загружается только необходимая в данный момент информация, все остальные сведения хранятся на сервере. Получить к ним доступ можно через выполнение процедуры/функции на сервере, в противном случае 1С выдаст ошибку «Переменная не определена», даже если код команды указан корректно.

Когда ошибку «Переменная не определена» 1С 8.3 выдает при выполнении серверной процедуры/функции (&НаСервере, &НаСервереБезКонтекста):

  1. Не присвоено значение локальной переменной, действия аналогичны использованию на клиенте с поправкой на место исполнения.
    Глобальные переменные на сервере создаются автоматически при выполнении процедур/функций с пометкой &НаСервере или &НаСервереБезКонтекста, так же, как на клиенте им присваивается начальное значение [Неопределено]. По завершении всех операций на сервере переменная уничтожается. При последующих вызовах сервера глобальная переменная примет начальное значение [Неопределено]. Последовательность процедур/функций в модулях не влияет на порядок их выполнения, переход с клиента на сервер и обратно определяется программным кодом.
  2. Переменная объявлена на стороне клиента, а используется на сервере, где ее не существует. Если переменная должна содержать значение, полученное в клиентской процедуре/функции, то можно передать ее на сервер через параметр.
  3. Глобальная переменная не объявлена — добавьте в начале модуля переменную для сервера.
  4. При обращении к базе данных неверно указаны имена объектов, параметров, из-за чего программа ошибочно приняла их за переменные — исправьте опечатку.

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

Для исправления ошибки «Переменная не определена» в управляемых формах мало понимать синтаксические конструкции кода: потребуются знания о месте их исполнения — сервер или клиент. Пользователь может выяснить причину сбоя самостоятельно, но для решения проблемы лучше обратиться к программисту.

Обслуживание

Заказать консультацию

По этой или иной ошибке Вы можете обратиться к нашим специалистам, мы Вам поможем решить Вашу проблему.

Содержание:

1.       Проверка на определения в 1С 8.3

2.       Поиск объявления переменной в 1С 8.3

3.       Обычная опечатка в программах 1С:Предприятие

Здравствуйте, коллеги! Сегодня поговорим о проблеме неопределенных переменных в 1С. Рядовой пользователь с данной ошибкой сталкиваться не должен, но если уж и произошло подобное при работе в типовой конфигурации 1С, которая никак не модифицировалась, возможно, у нас наклевывается проблема самого релиза, которая иссякнет при обновлении. В таком случае стоит связаться со специалистом, чтобы найти выход из ситуации.

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

1.   Проверка на определения 1С 8.3

Можно прописать перед ошибкой следующий код:

Если Не НашаПеременная = Неопределено Тогда

Соответственно, закрыв «Если» после, но тут как уже писалось нужно действовать аккуратно, возможно данная конструкция напрочь сломает весь последующий код. Гораздо лучше найти, где объявляется переменная и устранить ошибку. 

2.   Поиск объявления переменной 1С 8.3

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

Вполне возможен вариант, что ее просто забыли включить в передаваемые параметры функции или она не доступна в данном виде клиента. Такое случается, когда, например, обращаются из тонкого клиента к метаданным. В этом случае стоит переписать функцию или, возможно, объявить новую, но уже на сервере, которая вернет необходимые тонкому клиенту данные.  

3.   Обычная опечатка в программе 1С 8.3 Предприятие

Чтобы быстро в программе 1С 8.3 Предприятие проверить опечатка ли спровоцировала ошибку, просто скопируем переменную из объявления и вставим ее имя в то место, где случается ошибка. Можно сделать следующим образом, чтобы избежать таких ошибок в будущем:

Обычная опечатка в 1С

опечатка в программе 1С

Теперь, когда курсор останавливается на идентификаторе, все другие его упоминания будут выделены, как на следующем изображении:

 Проверка на определения 1C

Специалист компании ООО «Кодерлайн»

Дягилев Дмитрий Вадимович

Ошибка Переменная не определена в 1С 8.3 указывает на то, что программа не может получить нужную информацию в исполняемом программном коде. Это может быть связано с обновлением или доработкой программы. Если стандартный набор действий при исправлении ошибок не помог:

  • чистка кеша;
  • тестирование и исправление информационной базы;
  • просмотр зарегистрированных ошибок на сайте 1С,

придется разбираться с местом возникновения ошибки в 1С самостоятельно.

БухЭксперт8 подготовил 3 примера получения и исправления ошибки:

  • в доработанном программном коде;
  • при выводе печатной формы;
  • при исполнении кода на Клиенте.

Содержание

  • Ошибка в доработанном программном коде
  • Ошибка вывода печатной формы
  • Ошибка исполнения кода на Клиенте

Ошибка в доработанном программном коде

В форму типового отчета Движение товаров программист добавил поле Склад. Список выбора значений в это поле ограничен. При открытии отчета появляется ошибка:

В сообщении об ошибке указано место возникновения ошибки — строка 919 в модуле формы. Для исправления ошибки необходимо выполнить следующие действия:

  1. Нажмите кнопку Подробно в форме сообщения об ошибке.
    В окне Обнаружены ошибки программа укажет:

    • номер неправильной строки кода;
    • исполняемую команду, которая привела к ошибке.

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

  2. Для перехода в место ошибки нажмите кнопку Конфигуратор.
    В Конфирураторе курсор автоматически установится на строке программного кода с ошибкой. Необходимо проверить используемые командой данные. В данном примере ошибка сигнализирует, что переменной ОсновнойСклад не задано значение: при добавлении в список складов программа не понимает, какой склад требуется добавить.
  3. Исправьте ошибку.
    Укажите нужное значение переменной в программном коде, например:

    • ОсновнойСклад = Справочники.Склады.НайтиПоНаименованию(«Основной склад»);
    • ОсновнойСклад = Справочники.Склады.ОсновнойСклад.

      Синтаксис Справочники.Склады.ОсновнойСклад используется только для предопределенного склада с именем ОсновнойСклад:

  4. Сохраните изменения и обновите информационную базу.
  5. Проверьте работу 1С после исправления ошибки.

После исправления отчет открывается без ошибки, а при выборе складов устанавливается нужное значение Основной склад.

Ошибка вывода печатной формы

Для вывода в печатную форму накладной данных об ответственном менеджере, оформившем документ поступления, программист внес изменения в макет ПФ_MXL_Накладная и программный код.

В макет документа добавлена область Подвал:

В программном коде дописан вывод данных области Подвал:

После доработки программы при попытке вывода накладной на печать 1С выдает ошибку:

Информация в окне сообщения об ошибке указывает, что в Модуле менеджера документа ПоступлениеТоваровУслуг не определено значение переменной Ответственный. Для исправления ошибки:

  1. Перейдите в Конфигуратор. В Модуле менеджера документа ПоступлениеТоваровУслуг перейдите на строку 4804.
  2. Укажите для вывода в печатную форму поля Ответственный — текущего пользователя, используя специальную команду 1С:
    • Пользователи.ТекущийПользователь().
  3. Сохраните изменения и обновите информационную базу.
  4. Перейдите в пользовательский режим для проверки выполненных изменений.

После исправления программного кода накладная сформируется без ошибки.

Ошибка исполнения кода на Клиенте

С переходом на управляемые формы в Бухгалтерия 3.0 работы программистам прибавилось.

Язык программирования стал сложнее. Часть команд теперь могут выполняться только на стороне клиента — это, условно говоря, компьютер пользователя, который посылает запросы на исполнение операций серверу. Сервер обрабатывает все поступившие запросы и отсылает обратно клиенту результат обработки данных.

Все это привело к тому, что в 1С команды делятся на исполняемые &НаСервере и &НаКлиенте. И при написании программного кода нужно это учитывать, иначе программа не сможет выполнить заданную операцию. При работе с переменными при написании программного кода важно понимать:

  • &НаКлиенте — переменные существуют только на время клиентского вызова;
  • &НаСервере— переменные существуют только на время серверного вызова.

Разделение команд в программном коде не зависит от того, используете ли вы файловую или клиент-серверную 1С. Разграничение должно четко исполняться, иначе будут возникать ошибки, одну из которых БухЭксперт8 разберет на примере.

При доработке программного кода программист использовал операцию получения данных склада &НаКлиенте в процедуре ПриОткрытии.

При сохранении изменений 1С сообщила об ошибке Переменная не определена (Справочники) при определении значения склада:

  • «?»Справочники.Склады.НайтиПоКоду(«»00-000002»).

Ошибка связана с тем, что данная операция исполняется только на сервере, т. е. &НаСервере. И несмотря на то, что сама команда исполнения корректна, ошибка будет формироваться до тех пор, пока ее не перенесут в область команд исполнения &НаСервере, например так:

Теперь сохранение изменений пройдет без ошибки.

Усложнение языка программирования 1С требует от разработчика более глубокого подхода к вносимым изменениям в программу. Недостаточно просто знать синтаксис команды, важно еще правильно задать область исполнения команды в режиме управляемых форм.

См. также:

  • Большое количество забивается решеткой
  • Печатная форма недоступна 1С 8.3 при вызове внешней печатной формы
  • Значение поля номер не уникально 1С 8.3: как исправить
  • У пользователя недостаточно прав на исполнение операции

Если Вы еще не подписаны:

Активировать демо-доступ бесплатно →

или

Оформить подписку на Рубрикатор →

После оформления подписки вам станут доступны все материалы по 1С Бухгалтерия, записи поддерживающих эфиров и вы сможете задавать любые вопросы по 1С.

Подписывайтесь на наши YouTube и Telegram чтобы не пропустить
важные изменения 1С и законодательства

Помогла статья?

Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно

Ошибка : Переменная не определена (Справочники)

Я
   ils108

11.01.16 — 10:25

Добра всем. Выскакивает такая ошибка (Переменная не определена (Справочники)) в тонком клиенте рабочей конфигурации. В толстом все хорошо работает. При этом в моей тестовой конфе срабатывает в тонком клиенте. Подскажите пожалуйста в чем может быть причина?

   Волшебник

Модератор

1 — 11.01.16 — 10:26

в тонком клиенте

   НаборДанных

2 — 11.01.16 — 10:27

(1)Тонко!)

   ils108

3 — 11.01.16 — 10:27

(1) а почему тогда срабатывает в другой аналогичной конфигурации и тоже тонком клиенте?

   ДенисЧ

4 — 11.01.16 — 10:28

(3) Потому что здесь вкралась одна из трёх черепашек…

   patria0muerte

5 — 11.01.16 — 10:29

Рабочая конфигурация на клиент-сервере, вестимо…

Зайди в конфигураторе в Параметры — Модули — Проверка и поставь галочки на Сервер и Тонкий Клиент.

   ils108

6 — 11.01.16 — 10:32

(4) черепашек-ниндзя ? скажите яснее)

   ДенисЧ

7 — 11.01.16 — 10:35

   ils108

8 — 11.01.16 — 10:40

Как решить ситуацию то? )

желательно без ветвистых аналогий из мира фауны :)

   hhhh

9 — 11.01.16 — 10:43

(8) делайте &НаСервере

   ils108

10 — 11.01.16 — 10:49

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

   hhhh

11 — 11.01.16 — 10:51

(10) всё он найдет. Руки немного подрихтуйте.

   Остап Сулейманович

12 — 11.01.16 — 10:52

(10) «другую переменную там не найдет». Ну так передай ее параметром с клиента.

   ils108

14 — 11.01.16 — 11:04

(11) Переменная не определена (ГУГОЛКлиент)

(12) переменная в данном случае это общий модуль на клиенте. как его передать параметром и есть ли смысл.

Конкретнее опишу ситуацию

Есть документ, в нем хранится ссылка на другой документ. при нажатии кнопки «печать» вызывается процедура(1) общего модуля, которая другой процедурой(2) выбирает принадлежащие документу печатные формы, потом (1) проверяет некоторые условия и выводит форму выбора печатной формы.

   hhhh

15 — 11.01.16 — 11:09

(14) ну выделите эту строчку, где справочники, как отдельную процедуру на сервере. А всё остальное пусть на клиенте.

   ils108

16 — 11.01.16 — 11:10

извините за мою супер связную и профессиональную речь. как получается так и описываю :)

   ils108

17 — 11.01.16 — 11:19

(15) я делал так :

&НаСервере

Функция ПолучитьТекОбъект(ТекОтчет)

Д1 = ТекОтчет.ПолучитьОбъект();

Возврат Д1;

Конец

&НаКлиенте

Процедура КнопкаПечать

Отчет = ПолучитьТекОбъект(Объект.Документ);

ВызватьПроцедуруОбщегоМодуля(Отчет)

Конец

Ругается тогда на : Ошибка преобразования данных XDTO

Покурил интернет на эту тему, почистил кэш, сравнил версии, все равно та же история.

Правильно ли я понимаю, что кэш чистим только на клиента,а сервер в данном случае ни при чем.

   ils108

18 — 11.01.16 — 11:38

Подскажите, что сделать, чтобы данные из ссылки на документ использовать на клиенте, как к нему правильно обращаться и чем не подходит вариант (17)

   hhhh

19 — 11.01.16 — 11:40

объект нельзя передавать туда обратно. Вариант (17) вообще ничем не подходит.

всё выбирайте на сервере в структуру. И эту структуру возвращайте.

   ils108

20 — 11.01.16 — 12:01

&НаСервере

Функция ПолучитьОбъект(ТекОтчет)

ТекДокумент = новый Структура;

ТекДокумент.Вставить(«Документ»,ТекОтчет);

Возврат ТекДокумент;

КонецФункции

&НаКлиенте

Процедура КомандаПечать(Команда)

ДокПечать = ПолучитьОбъект(Объект.Документ);    

ГУГОЛКлиент.ПечатьВнешнихПечатныхФорм(ДокПечать.Документ);

КонецПроцедуры

Сделал так, результат тот же.

   vicof

21 — 11.01.16 — 12:05

&НаСервере

Функция ПолучитьОбъект(ТекОтчет)

ТекДокумент = новый Структура;

ТекДокумент.Вставить(«Документ»,ТекОтчет);

Возврат ТекДокумент;

КонецФункции

это бессмысленно

Покажи, что в:

ГУГОЛКлиент.ПечатьВнешнихПечатныхФорм(ДокПечать.Документ);

   ils108

22 — 11.01.16 — 12:06

(21)

писокПечатныхФорм = ГУГОЛСервер.ПолучитьСписокМакетовПечати(СсылкаНаОбъект);

    
    Если СписокПечатныхФорм.Количество() = 0 Тогда

        Предупреждение(«Печатные формы отсутствуют!»);

        Возврат;

    КонецЕсли;

    
    Если СписокПечатныхФорм.Количество() = 1 Тогда

        ВыбраннаяПечатнаяФорма = СписокПечатныхФорм[0];

    Иначе

        ВыбраннаяПечатнаяФорма = СписокПечатныхФорм.ВыбратьЭлемент(«Выбор печатной формы»);

    КонецЕсли;

    Если ВыбраннаяПечатнаяФорма <> Неопределено Тогда

        ТабДокументИлиСписок = ГУГОЛСервер.НапечататьВнешнююФорму(СсылкаНаОбъект, ВыбраннаяПечатнаяФорма.Значение);    

        
        Если ТипЗнч(ТабДокументИлиСписок) = Тип(«СписокЗначений») Тогда

            Для Каждого ТекЭлемент Из ТабДокументИлиСписок Цикл

                ТабДокумент = ТекЭлемент.Значение;

                ФормаПечати = ПолучитьФорму(«ОбщаяФорма.ГУ_ПечатнаяФормаУправляемая»,,,Новый УникальныйИдентификатор);

                ФормаПечати.Заголовок = ТекЭлемент.Представление;

                ФормаПечати.ПолеТабличногоДокумента = ТабДокумент;

                ФормаПечати.Открыть();    

            КонецЦикла;

        Иначе

            ТабДокумент = ТабДокументИлиСписок;

            ФормаПечати = ПолучитьФорму(«ОбщаяФорма.ГУ_ПечатнаяФормаУправляемая»);

            ФормаПечати.ПолеТабличногоДокумента = ТабДокумент;

            ФормаПечати.Открыть();

        КонецЕсли;

        
    КонецЕсли;

    
КонецПроцедуры

   vicof

23 — 11.01.16 — 12:08

Чото я не вижу тут сабж:

«Ошибка : Переменная не определена (Справочники)»

   ils108

24 — 11.01.16 — 12:12

(23) сам не вижу, поэтому и спрашиваю здесь :(

но ошибка есть.

{(ОбщийМодуль.ГУГОЛКлиент.Модуль(236,12)}:Переменная не определена (Справочники)

   ils108

25 — 11.01.16 — 12:15

(23) подскажите как правильно структуру создать/передать?

   vicof

26 — 11.01.16 — 12:18

(24) (ОбщийМодуль.ГУГОЛКлиент.Модуль(236,12)}:Переменная не определена (Справочники)

строка тебе показана, место показано. Отладчик запускать умеешь?

   ils108

27 — 11.01.16 — 12:28

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

и все таки подскажите как получить значение из справочника на клиенте?

   Мыш

28 — 11.01.16 — 12:31

(27) На тонком клиенте — написать письмо с требованием в фирму 1С.

   oslokot

29 — 11.01.16 — 12:32

ага, 1с совсем распоясалась

   ils108

30 — 11.01.16 — 12:48

дорогие форумчане, помощь человеку развивает вас, но троллинг только тратит ваше драгоценное время. спасибо вам.

вопрос актуален.

есть необходимость использовать значение справочника в процедуре, что на клиенте написана. куда почитать об этом?:)

   Мыш

31 — 11.01.16 — 12:54

(30) Дорогой форумчанин. Данная необходимость в тонком (sic) клиенте недоступна.

   Остап Сулейманович

32 — 11.01.16 — 12:54

(27) «получить значение из справочника на клиенте?»

&НаКлиенте

Процедура …



ЗначениеРеквизита = ПолучитьРеквизит(СсылкаНаЭлементСправочника);

КонецПроцедуры

&НаСервереБезКонтекста()

Функция ПолучитьРеквизит(СсылкаНаЭлементСправочника)

   Возврат СсылкаНаЭлементСправочника.ИмяРеквизита;

КонецФункции

   hhhh

33 — 11.01.16 — 12:56

(30)

&НаСервере

Функция ПолучитьКонтрагентаПоНаименованию(Наименование)

    Возврат Справочники.Контрагенты.НайтиПоНаименованию(Наименование);

КонецФункции

&НаКлиенте

Процедура МояПроцедура

   Вася = ПолучитьКонтрагентаПоНаименованию(«Вася»);

КонецПроцедуры

  

ils108

34 — 11.01.16 — 12:57

(31) (32) (33) Спасибо большое, речь именно об этом.

При проверке ниже, указанного модуля

СтрокаТабличнойЧасти=элементы.ПереченьНоменклатуры.ТекущиеДанные; 
СтрокаТабличнойЧасти.Цена=РаботаСоСправочником.РозничнаяЦена 
(Объект.Дата,СтрокаТабличнойЧасти.Номенклатура); 
РаботаСДокументами.РассчитатьСумма(СтрокаТабличнойЧасти); 

Появляется следующая ошибка:
{Документ.ОказаниеУслуг.Форма.ФормаДокумента.Форма(24,28)}: Переменная не определена (РаботаСоСправочником)
СтрокаТабличнойЧасти.Цена=<>РаботаСоСправочником.РозничнаяЦена (Проверка: Тонкий клиент)

Подскажите пожалуйста из-за чего эта ошибка возникает и каким способом её можно решить.

задан 27 мар 2020 в 12:53

Никита's user avatar

Ошибка возникает из-за того, что не определена переменная. Решать просто — использовать только созданные и известные переменные.

ответ дан 27 мар 2020 в 12:59

Эникейщик's user avatar

ЭникейщикЭникейщик

25.1k7 золотых знаков30 серебряных знаков46 бронзовых знаков

1

&НаСервере

 Функция  ПолучитьДанныеСайта()
       
    // Установим соединение https://www.cbr-xml-daily.ru/daily_utf8.xml
    Соедининие = Новый HTTPСоединение("www.cbr-xml-daily.ru",443,,,,,
      Новый ЗащищенноеСоединениеOpenSSL);   
      
     Запрос = Новый HTTPЗапрос("/daily_utf8.xml");    
     
     Ответ = Соединение.Получить(Запрос);
     
     Если Ответ.КодСостояния <> 200 Тогда
         ВызватьИсключение "Ошибка получения данных с сайта";  
     КонецЕсли;

Выдает ошибку :

{Обработка.ЗагрузкаКурсовВалют.Форма.Форма.Форма(28,11)}: Переменная не определена (Соединение)
     Ответ = <<?>>Соединение.Получить(Запрос); (Проверка: Сервер)

Помогите пожалуйста найти ошибку

insolor's user avatar

insolor

45.9k16 золотых знаков54 серебряных знака95 бронзовых знаков

ответ дан 16 фев в 11:25

Иван's user avatar

1

Понравилась статья? Поделить с друзьями:
  • Предпринять шаги лексическая ошибка
  • Предостеречь от ошибки как пишется
  • Предостеречь от опасности лексическая ошибка
  • Предпринять усилия речевая ошибка
  • Предостеречь об ошибке или от ошибки