Добрый день. Таков вопрос. При установке у одной единицы измерения базовой единицы, тип булево(ИСТИНА), у других единиц измерения базовая единица становится ЛОЖЬ
---
Попробуйте вот это:

```1c
    Если БазоваяЕдиница Тогда
    Запрос = Новый Запрос("ВЫБРАТЬ ПЕРВЫЕ 1
    | ЕдиницыИзмерения.Ссылка
    |ИЗ
    | Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения
    |ГДЕ
    | ЕдиницыИзмерения.БазоваяЕдиница = ИСТИНА");
    Выборка = Запрос.Выполнить().Выбрать();
    Если Выборка.Следующий() Тогда
    ЕдИзм = Выборка.Ссылка.ПолучитьОбъект();
    ЕдИзм.БазоваяЕдиница = Ложь;
    ЕдИзм.Записать();
    КонецЕсли;
    КонецЕсли;
```
---
Я бы добавил здесь еще и условие на текущую единицу

```1c
    Запрос = Новый Запрос("ВЫБРАТЬ
    | ЕдиницыИзмерения.Ссылка
    |ИЗ
    | Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения
    |ГДЕ
    | ЕдиницыИзмерения.БазоваяЕдиница
    | И НЕ ЕдиницыИзмерения.Ссылка = & ТекСсылка");
    Запрос.УстановитьПараметр(&ТекСсылка,ЭтотОбъект.Ссылка);
```

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

  КонецЦикла;
---
Уточните, пожалуйста.

"Как исключить из выбора ту базовую единицу которую изменяю?" - исключить можно, но где вы изменяете? Может быть вы опять не там начали)

P.S. В запросах значения "Истина" и "Ложь" можно писать словами, а не задавать как параметры и после запроса присваивать значение. То есть " ЕдиницыИзмерения.БазоваяЕдиница = Истина"; " в данном случае, будет итак работать, без амперсанда.
---
Я просто как мне посоветовали выше, установила в Запросе условие базовая единица истина
---
Все, я понял чего вы хотите)
Уточните, в каком месте вы пишете свой запрос?
---
Мне бы так понимать как Вы))). В Модуле объекта справочника, процедура ПередЗаписью
---
Попробуйте вот это:

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

```1c
    Если БазоваяЕдиница Тогда
```

проверяет, поставили ли вы галочку или нет.

P.S. Выбрать первые - означает сколько записей мы будем отбирать, циферка один дальше означает, что отбирем только одну первую запись из всего запроса.
---
Поняла, запомнила, спасибо)
---
Здесь Первые Избыточно
---
Я бы добавил здесь еще и условие на текущую единицу

```1c
    Запрос = Новый Запрос("ВЫБРАТЬ
    | ЕдиницыИзмерения.Ссылка
    |ИЗ
    | Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения
    |ГДЕ
    | ЕдиницыИзмерения.БазоваяЕдиница
    | И НЕ ЕдиницыИзмерения.Ссылка = & ТекСсылка");
    Запрос.УстановитьПараметр(&ТекСсылка,ЭтотОбъект.Ссылка);
```

Так Вы исключите текущую ссылку, что бы не перезаписывать ее 20 раз
Ссори не заметил условие сверху
---
Можно еще проще

```1c
    ГДЕ ЕдиницыИзмерения.БазоваяЕдиница
```
---
Константой, куда записывается значение выбранной единицы.