Не заполнить значение элемента справочника типа ссылка
Бухгалтерия предприятия, редакция 2.0 (2.0.48.8) .
Подскажите, коллеги, что делаю не так.
Задача: Заполнить значение поля ссылка "Единицы измерения" конкретным значением в спр.Номенклатура.
Вот код:
Номенклатура = Справочники.Номенклатура;
Выборка = Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл
Объект = Выборка.ПолучитьОбъект();
Если Объект.БазоваяЕдиницаИзмерения=NULL Тогда
//Заполним ее
Если Объект.ЭтоГруппа Тогда //если элемент это группа
//Сообщить(Объект + " - является группой!!! Пропускаем его...");
Продолжить
Иначе
//Если Не Объект.ЭтоГруппа Тогда
Объект.БазоваяЕдиницаИзмерения=796;
Объект.Записать();
КонецЕсли;
КонецЕсли;
Попытка
Исключение
Предупреждение("Не удалось записать объект """ + Объект + """
|" + ОписаниеОшибки(),60);
КонецПопытки;
КонецЦикла;
Подскажите, коллеги, что делаю не так.
Задача: Заполнить значение поля ссылка "Единицы измерения" конкретным значением в спр.Номенклатура.
Вот код:
Номенклатура = Справочники.Номенклатура;
Выборка = Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл
Объект = Выборка.ПолучитьОбъект();
Если Объект.БазоваяЕдиницаИзмерения=NULL Тогда
//Заполним ее
Если Объект.ЭтоГруппа Тогда //если элемент это группа
//Сообщить(Объект + " - является группой!!! Пропускаем его...");
Продолжить
Иначе
//Если Не Объект.ЭтоГруппа Тогда
Объект.БазоваяЕдиницаИзмерения=796;
Объект.Записать();
КонецЕсли;
КонецЕсли;
Попытка
Исключение
Предупреждение("Не удалось записать объект """ + Объект + """
|" + ОписаниеОшибки(),60);
КонецПопытки;
КонецЦикла;
По теме из базы знаний
- Программное копирование узла/строки дерева значений на управляемой форме (УФ, ДанныеФормыДерево, ДанныеФормыЭлементДерева) в вариантах на клиенте и на сервере
- Вспомогательные таблицы - универсальный инструмент хранения таблиц любой структуры (константы, параметры обработок и т.д.)
- Особенности работы с COM-соединением
- Блокировка элементов справочников от изменений
- Как перенести информацию из текстового поля в поля ссылочного типа
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) FKLDOZ,
Если Объект.БазоваяЕдиницаИзмерения=NULL Тогда
заменить на
Если Объект.БазоваяЕдиницаИзмерения.Пустая() Тогда
Объект.БазоваяЕдиницаИзмерения=796
заменить на
Объект.БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду("796");
Если Объект.БазоваяЕдиницаИзмерения=NULL Тогда
заменить на
Если Объект.БазоваяЕдиницаИзмерения.Пустая() Тогда
Объект.БазоваяЕдиницаИзмерения=796
заменить на
Объект.БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду("796");
(3) turbo232,
Строка:
Если Объект.БазоваяЕдиницаИзмерения.Пустая() Тогда
не прошла, ошибка:
{Форма.Форма.Форма(9)}: Значение не является значением объектного типа (Пустая)
Если Объект.БазоваяЕдиницаИзмерения.Пустая() Тогда
С NULL тоже не помогла, ошибки нет, но и не заполнила ничего.
Строка:
Если Объект.БазоваяЕдиницаИзмерения.Пустая() Тогда
не прошла, ошибка:
{Форма.Форма.Форма(9)}: Значение не является значением объектного типа (Пустая)
Если Объект.БазоваяЕдиницаИзмерения.Пустая() Тогда
С NULL тоже не помогла, ошибки нет, но и не заполнила ничего.
Попробуйте
Пока Выборка.Следующий() Цикл
Объект = Выборка.Ссылка.ПолучитьОбъект();
//Если Объект.БазоваяЕдиницаИзмерения=NULL Тогда
Если Не Выборка.Ссылка.ЭтоГруппа Тогда //такое лучше сначала проверять, т.к. у групп нет реквизита ЕдиницаИзмерения
ЕслиНеЗначениеЗаполнено(Объект.БазоваяЕдиницаИзмерения)
...
и, как советует (3)
Объект.БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду("796");
Пока Выборка.Следующий() Цикл
Объект = Выборка.Ссылка.ПолучитьОбъект();
//Если Объект.БазоваяЕдиницаИзмерения=NULL Тогда
Если Не Выборка.Ссылка.ЭтоГруппа Тогда //такое лучше сначала проверять, т.к. у групп нет реквизита ЕдиницаИзмерения
ЕслиНеЗначениеЗаполнено(Объект.БазоваяЕдиницаИзмерения)
...
и, как советует (3)
Объект.БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду("796");
Столкнулся с той же проблемой при создании нового контрагента в БГУ 2.0 :
Значение не является значением объектного типа (Пустая)...
При создании нового элемента методом
Контр = Справочники.Контрагенты.СоздатьЭлемент();
необходимо заполнить реквизит "ЮридическоеФизическоеЛицо", например, так:
Контр.ЮридическоеФизическоеЛицо = Справочники.ЮридическиеЛица.ПустаяСсылка();
В общем, хоть чем - нибудь заполнить))
иначе, при создании нового контрагента, реквизит "ЮридическоеФизическоеЛицо" имеет статус "Неопределено", и, естественно, у него, этой самой, "Пустая", нет, пока ему не присвоишь тип справочного объекта
Значение не является значением объектного типа (Пустая)...
При создании нового элемента методом
Контр = Справочники.Контрагенты.СоздатьЭлемент();
необходимо заполнить реквизит "ЮридическоеФизическоеЛицо", например, так:
Контр.ЮридическоеФизическоеЛицо = Справочники.ЮридическиеЛица.ПустаяСсылка();
В общем, хоть чем - нибудь заполнить))
иначе, при создании нового контрагента, реквизит "ЮридическоеФизическоеЛицо" имеет статус "Неопределено", и, естественно, у него, этой самой, "Пустая", нет, пока ему не присвоишь тип справочного объекта
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот