Имя: Пароль:
1C
 
Элемент не выбран
0 Авоська
 
23.04.24
23:10
Функция ПередЗаписьюНаСервере(Ячейка) Экспорт
    НайденныйСклад = Справочники.Склад.НайтиПоНаименованию(Ячейка);
    Склад = НайденныйСклад.ПолучитьОбъект(); // Ошибка
    Если Склад.ЗанятосьЯчейки = Истина Тогда
        Сообщить("Данная ячейка уже занята, выберите другую");
        Возврат Истина;
    Иначе
        Склад.ЗанятосьЯчейки = Истина;
        Склад.Записать();  
    КонецЕсли;
КонецФункции
1 Aleksey
 
23.04.24
23:46
И в чем вопрос?

И что такое "Ячейка", какой тип у неё?
2 Aleksey
 
23.04.24
23:53
Ну и без относительно ошибки

1. Какой смысл получать объект? У тебя уже есть ссылка на ячейку, почему нельзя по ней проверять занятость?
Если НайденныйСклад.ЗанятосьЯчейки Тогда
  Сообщить("Данная ячейка уже занята, выберите другую");
  Возврат Истина;
Иначе
//Вот тут уже можно получитьОбъект() использовать.

2. Плюс в твоем случае явно он не находит нужную ячейку по наименованию, так что нужна еще одна проверка
Если НайденныйСклад.Пустая() Тогда
  Сообщить("не найдена ячейка по имени.");
  Возврат Истина;
ИначеЕсли НайденныйСклад.ЗанятосьЯчейки Тогда


3. У тебя функция в случае если ячейка занята, возвращает истина. А если не занято или не найдена возвращает неопределно. Уверен что это правильно?
3 timurhv
 
24.04.24
00:26
Не знаю как сейчас платформа ведет себя, но на 8.3.18 если получать объект и не записывать его, то объекты остаются в памяти и не очищаются.

Даже если происходит выход из процедур/функций или переменной полученного объекта присваивается Неопределено или другое значение.
4 Мультук
 
24.04.24
08:08
(0)

Прикольная функция
На входе ячейка. Воспринимается как спрСсылка
Но судя по коду ниже - это строка.

Затем внезапно выясняется, что ячейка это некий склад с реквизитом "ЗанятостьЯчейки"



===

Функция ПередЗаписьюНаСервере(Ячейка) Экспорт
    НайденныйСклад = Справочники.Склад.НайтиПоНаименованию(Ячейка);


P.S.
Если это ИИ, то "даже не смешно"
5 Рэйв
 
24.04.24
08:21
(0)У тебя если не найдет, то возвращает пустую ссылку.Или неопределено.
Как ты думашь получить объект от результата поиска в этом случае?
Хотябы проверяй результат на тип и на заполненность