Методы исправления ошибок 1С

Также на эту тему:
Методы отладки в 1С
Как включить отладку 1С
Отладка 1С - где я?
Методы оптимизации 1С

Дополнительные материалы:
Электронная книга "Программирование 1С"

Вы (или пользователь) работаете в 1С. Вдруг – ошибка. Что делать?

Конечно самое правильное – проанализировать — что за ошибка 1С, ее причины, провести в отладчике 1С часик-другой, чтобы выяснить что к чему.

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

 

Сообщение об ошибке 1С

Типовой вид сообщения об ошибке 1С– это окно с текстом ошибки 1С и кнопками ОК и Подробнее.

Текст ошибки 1С, отображенный здесь – это пользовательское сообщение, программисту оно часто ни о чем не говорит, так как отображенная ошибка 1С может быть следствием каких-то неправильных действий.

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

  • Модуль, в котором произошла ошибка 1С
  • Функция этого модуля, в котором произошла ошибка 1С
  • Номер строки этого модуля, в котором произошла ошибка 1С.

Также Вы можете нажать на кнопку Конфигуратор, и тогда будет открыт конфигуратор, этот модуль, эта функция на этой строке, после чего Вы можете провести исправление ошибки 1С.

 

Хитрости понимания ошибок

Как только что было сказано, в тексте ошибки 1С очень часто следствие выполненных ранее неверных действий.

Например, очень распространенный текст ошибки 1С гласит:

Значение не является значением объектного типа (КакоетоИмя)

Что бы это значило???

А это значит следующее:

  • Есть переменная
  • В программе предполагается, что значение переменной – справочник или документ или что то другое подобное – в общем у него есть реквизиты(поля)
  • В программе делается попытка обратиться к полю этого объекта
  • Однако ошибка 1С состоит в том, что по какой-то причине в предыдущих строчках программы эта переменная получила значение, у которого нет никаких реквизитов (полей), например значение «Неопределено».

 

Исправление ошибок 1С, которые чаще встречаются

Конечно же все ошибки, которые могут быть в 1С — мы сейчас рассмотреть не можем.
Попробуем кратко перечислить ошибки 1С, которые бывают часто, а также вредные советы по быстрому исправлению ошибок 1С.

  • Если переменная имеет тип булево (то есть принимает значения Истина и Ложь), то к ней можно обращаться вот так:

    Если ИмяПеременной Тогда

    Такое написание аналогично:
    Если ИмяПеременной = Истина Тогда

    Однако если по какой-то причине эта переменная примет значение не булево, то первый вариант даст ошибку 1С, а второй нет.

  • «Функция с именем Ххх не обнаружена»

    В клиент-серверном варианте 1С часть модулей выполняется на сервере. Мало того, некоторые функции одного и того же модуля могут выполняться на сервере или на клиенте.

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

    Необходимо перенести такую функцию на сервер, если это возможно.

  • «Переменная с именем Ххх не обнаружена»

    Аналогично предыдущей ошибке 1С. Если в программе прописано обращение к функции, которая находится в общем модуле, то это выглядит так:
    ИмяМодуля.ИмяФункции();

    Если при этом в свойствах модуля установлено, что он выполняется на клиенте, а мы обращаемся из тех строчек программы, которые выполняются на сервере – то будет ошибка 1С
    «Переменная не обнаружено – ИмяМодуля»

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

  • «Свойство Ххх у объекта не обнаружено»

    Под словом «Свойство» понимается поле этого объекта (реквизит). Необходимо:
    o Определить, что это за объект
    o Если это объект 1С – справочник, документ – необходимо посмотреть, действительно ли реквизит так называется
    o Если это обычная форма или управляемая форма – посмотреть реквизиты формы с таким названием.

  • «Метод Ххх у объекта не обнаружен»

    Под словом «метод» понимается функция/процедура в модуле этого объекта.

    Необходимо:
    o Определить что это за объект
    o Найти его модуль (модуль объекта если это объект 1С, модуль формы, если это форма)
    o Проверить наличие функции с таким наименованием.

  • «Ошибка 1С при выполнении запроса»

    Это значит в тексте запроса ошибка 1С. Текст запроса определяется в программе обычно раньше (то есть выше), чем выполняется. Поищите текст запроса в этом модуле (глазами выше или по поиску слова «ВЫБРАТЬ»).

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

  • «Ошибка 1С компоновки» — при выполнении отчета СКД

    Данная ошибка 1С означает или ошибку 1С в тексте запроса или ошибку 1С настроек СКД (часто в группировках, в выбранных полях, в условном форматировании).

    Попробуйте начать с настроек, сильно упростив их. Проверьте, что в выбранных полях и условном форматировании — в списке нет полей, отмеченных крестиком.

    Если не поможет – попробуйте перейти к тексту запроса и использовать конструктор запроса, чтобы получить подсказку.


Проголосовать за этот пост:

1 Star2 Stars3 Stars4 Stars5 Stars (6 голосов, среднее: 5,00 из 5)
Loading ... Loading ...

Также на эту тему:
Методы отладки в 1С
Как включить отладку 1С
Отладка 1С - где я?
Методы оптимизации 1С

Дополнительные материалы:
Электронная книга "Программирование 1С"

Добавить комментарий