```1c
    Процедура Загрузить()
    Перем СчетчикЦиклаКолонок, СТЦ, СписТЦ, КТЦ, ТЗн, КодНоменклатуры, СпрЦены, СпрТипЦены, ДатаАктуальностиЦен;
    Ном = СоздатьОбъект("Справочник.ТМЦ");
    БазоваяВалюта = Константа.БазоваяВалюта;
    БазЕдиница = Константа.БазЕдиница;
    СпрЦены = СоздатьОбъект("Справочник.Цены");
    СпрТипЦены = СоздатьОбъект("Справочник.КатегорииЦен");
    ДатаАктуальностиЦен = Таблица.Область(5,4).Текст;
    Если ПустоеЗначение(ДатаАктуальностиЦен) = 1 Тогда
    Предупреждение("Укажите дату актуальности цен!");
    Возврат;
    КонецЕсли;

    жж = 6;
    Пока Таблица.Область(жж,1).Текст <> "КонецОтчета" Цикл
    Если ТипЗначенияСтр(Таблица.Область(жж,3).Расшифровка()) = "Справочник" Тогда // товар
    Если Ном.НайтиЭлемент(Таблица.Область(жж,3).Расшифровка()) = 1 Тогда
    Сообщить("Найдено: Номенклатура "+Ном.Наименование+" ОК!");
    КонецЕсли;
    уу = 6;
    СпрЦены.ИспользоватьВладельца(Ном.ТекущийЭлемент());
    Пока Таблица.Область(1,уу).Текст<>"Конец" Цикл
    Если ПустоеЗначение(Таблица.Область(жж,уу).Текст) = 1 Тогда
    уу = уу + 1;
    Продолжить;
    КонецЕсли;
    Если СпрТипЦены.НайтиЭлемент(Таблица.Область(жж,уу).Расшифровка()) = 0 Тогда
    уу = уу+ 1;
    Продолжить;
    КонецЕсли;
    Если СпрЦены.НайтиПоРеквизиту("КатегорияЦены",СпрТипЦены.ТекущийЭлемент(),0) = 0 Тогда
    СпрЦены.Новый();
    СпрЦены.КатегорияЦены = СпрТипЦены.ТекущийЭлемент();
    СпрЦены.Валюта = БазоваяВалюта;
    СпрЦены.Записать();

    СпрЦены.Цена.Установить(ДатаАктуальностиЦен,Таблица.Область(жж,уу).Текст);
    СпрЦены.Владелец = Ном.ТекущийЭлемент();
    СпрЦены.Единица.Установить(ДатаАктуальностиЦен,Ном.БазоваяЕдиница);
    СпрЦены.Записать();
    Иначе
    СпрЦены.Цена.Установить(ДатаАктуальностиЦен,Таблица.Область(жж,уу).Текст);
    СпрЦены.Владелец = Ном.ТекущийЭлемент();
    СпрЦены.Единица.Установить(ДатаАктуальностиЦен,Ном.БазоваяЕдиница);
    СпрЦены.Записать();
    Сообщить("Единица измерения "+ Ном.БазоваяЕдиница);
    КонецЕсли;
    Сообщить("Обновлена цена номенклатуры "+Ном.ПолнНаименование+" Категория Цены "+СпрЦены.КатегорияЦены +" с "+ДатаАктуальностиЦен+" установлена цена "+глФрм(Таблица.Область(жж,уу).Текст,",0));
    уу = уу + 1;
    КонецЦикла;
    КонецЕсли;
    жж = жж+1;
    КонецЦикла;

    КонецПроцедуры
```
---
```1c
    СпрЦены.Цена.Установить(ДатаАктуальностиЦен,Таблица.Область(жж,уу).Текст);
    СпрЦены.Владелец = Ном.ТекущийЭлемент();
    СпрЦены.Единица.Установить(ДатаАктуальностиЦен,Ном.ЕдиницаПоУмолчанию);
    СпрЦены.Записать();
    Сообщить("Единица измерения "+ Ном.ЕдиницаПоУмолчанию);
```

Так записывает
---
СпрЦены.Единица.Установить(ДатаАктуальностиЦен,Ном.БазоваяЕдиница);

Ед. измерения это обычно справочник, а не константа. У каждого элемента справочника есть связь с номенклатурой по владельцу.
Т.е. для каждой номенклатуры необходимо искать именно ее единицу измерения, пусть даже она и называется для всех одинаково, например шт.

Функция:
НайтиПоНаименованию(<Наименование>, <ТочноеСоответствие>, <Родитель>, <Владелец>)

позволяет искать с отбором по владельцу - 4й параметр.
---
есть такая процедура загрузить,проблема в том что не могу никак записать единицу измерения ,поле пустое,помогите советом,как ее можно записать?
---
вот в этом куске кода

```1c
    СпрЦены.Цена.Установить(ДатаАктуальностиЦен,Таблица.Область(жж,уу).Текст);
    СпрЦены.Владелец = Ном.ТекущийЭлемент();
    СпрЦены.Единица.Установить(ДатаАктуальностиЦен,Ном.БазоваяЕдиница);
    СпрЦены.Записать();
    Сообщить("Единица измерения "+ Ном.БазоваяЕдиница);
```

как заставить записать?
---
т.е. вместо этого:

```1c
    СпрЦены.Единица.Установить(ДатаАктуальностиЦен,Ном.БазоваяЕдиница);
```

Как то так:

```1c
    ЕдИзм = НайтиПоНаименованию(Ном.БазоваяЕдиница.Наименование, Истина, ,Ном.ТекущийЭлемент());
    СпрЦены.Единица.Установить(ДатаАктуальностиЦен, ЕдИзм);
```
---
ЕдИзм = НайтиПоНаименованию(Ном.БазоваяЕдиница.Наименование, Истина, ,Ном.ТекущийЭлемент());
СпрЦены.Единица.Установить(ДатаАктуальностиЦен, ЕдИзм);

Перед найти надо ж где искать будем?
---
Да, конечно. Вырвал из контекста. Главное не потерять связь по владельцу, а то потом так неадекватно будут себя документы вести... Наступил как то на эти грабли.
---
не ставит!!!!!засада
---
ЕдИзм = СпрЦены.НайтиПоНаименованию(Ном.БазоваяЕдиница.Наименование, Истина, ,Ном.ТекущийЭлемент());
СпрЦены.Единица.Установить(ДатаАктуальностиЦен, ЕдИзм);
попробывал так,пишет не выбран элемент
---
А где в коде вы получаете объект Справочника цены для изменения. Новый я так понимаю нормально создается?
---
```1c
    Спр = СпрЦены.НайтиПоРеквизиту("КатегорияЦены",СпрТипЦены.ТекущийЭлемент(),0);
    Если НЕ ЗначениеЗаполнено(Спр) Тогда
    СпрЦены.Новый();
    СпрЦены.КатегорияЦены = СпрТипЦены.ТекущийЭлемент();
    СпрЦены.Валюта = БазоваяВалюта;
    СпрЦены.Записать();

    СпрЦены.Цена.Установить(ДатаАктуальностиЦен,Таблица.Область(жж,уу).Текст);
    СпрЦены.Владелец = Ном.ТекущийЭлемент();
    СпрЦены.Единица.Установить(ДатаАктуальностиЦен,Ном.БазоваяЕдиница);
    СпрЦены.Записать();
    Иначе
    Объект = Спр.ПолучитьОбъект();
    Объект.Цена.Установить(ДатаАктуальностиЦен,Таблица.Область(жж,уу).Текст);
    Объект.Владелец = Ном.ТекущийЭлемент();
    Объект.Единица.Установить(ДатаАктуальностиЦен,Ном.БазоваяЕдиница);
    Объект.Записать();
    Сообщить("Единица измерения "+ Ном.БазоваяЕдиница);
    КонецЕсли;
```

Код не проверял, но смысл в том, что для изменения элемента справочника программно его сначала нужно получить как объект.
И про владельца не забывайте, это просто правка вашего фрагмента.
---
самое главное что Ном.БазоваяЕдиница получаю, только после записи пустое место,значение не записывается
---
Сообщить("Единица измерения "+ Ном.БазоваяЕдиница); показывает как раз то что надо
---
почему пусто не пойму
---
Когда новый элемент создается единица записывается?
---
да
---
```1c
    Спр = СпрЦены.НайтиПоРеквизиту("КатегорияЦены",СпрТипЦены.ТекущийЭлемент(),0);
    Если НЕ ЗначениеЗаполнено(Спр) Тогда
    .....
    Иначе
    Объект = Спр.ПолучитьОбъект();
    Объект.Цена.Установить(ДатаАктуальностиЦен,Таблица.Область(жж,уу).Текст);
    Объект.Владелец = Ном.ТекущийЭлемент();
    Объект.Единица.Установить(ДатаАктуальностиЦен,Ном.БазоваяЕдиница);
    Объект.Записать();
    Сообщить("Единица измерения "+ Ном.БазоваяЕдиница);
    КонецЕсли;
```

Так пробовали через Объект = Спр.ПолучитьОбъект();
---
Объект = Спр.ПолучитьОбъект();
    Объект.Цена.Установить(ДатаАктуальностиЦен,Таблица.Область(жж,уу).Текст);
    Объект.Владелец = Ном.ТекущийЭлемент();
    Объект.Единица.Установить(ДатаАктуальностиЦен,Ном.БазоваяЕдиница);
    Объект.Записать();
    Сообщить("Единица измерения "+ Ном.БазоваяЕдиница);

Поле агрегатного объекта не обнаружено (ПолучитьОбъект)
---
```1c
    СпрЦены.Цена.Установить(ДатаАктуальностиЦен,Таблица.Область(жж,уу).Текст);
    СпрЦены.Владелец = Ном.ТекущийЭлемент();
    СпрЦены.Единица.Установить(ДатаАктуальностиЦен,Ном.ЕдиницаПоУмолчанию);
    СпрЦены.Записать();
    Сообщить("Единица измерения "+ Ном.ЕдиницаПоУмолчанию);
```

Так записывает