Освобождение переменных в 1С
Как практически на пустом месте получить ошибку блокировки по причине неверного использования переменной.
- Описание
- Подробнее
Описание
Думаю, многие из нас в буднях своих работы в качестве IT-бухгалтера за всеми этими дебетами, кредитами, ОСВ и прочими платёжками порой забывают, что 1С — это в первую очередь язык программирования и ничто сугубо техническое ему не чуждо :).
Вот так и я, увидев в один прекрасный день вот такую картинку
подумал, что день не так уж и прекрасен… Ошибка возникает нечасто, некритична, но разобраться нужно.
Через n-ное время причина была найдена, очищена от шелухи и минимизирована до очевидного примера. Достаточно написать вот такой простой код в модуле объекта справочника
перем Об;
Процедура ПередЗаписью(Отказ)
Об = ЭтотОбъект;
КонецПроцедуры
чтобы, к примеру, при пометке и тут же распометке на удаление элемента справочника сразу возникала эта ошибка. Блокировка снимается секунд через 15-20.
Проблема решается освобождением переменной:
перем Об;
Процедура ПередЗаписью(Отказ)
Об = ЭтотОбъект;
….
Об = неопределено;
КонецПроцедуры
Добавлено. Причины возникновения проблемы и более развернутое описание ситуации рассматриваются в комментариях:
— оригинальная ситуация — пост 22.
— вероятные причины проблемы — пост 78, 94, 99
Спасибо всем, кто участвовал в прениях.