Здравствуйте. Подскажите, пожалуйста. Написала функцию, которая проверяет на основе регистра продажи был ли возврат по заявке у определенного товара.
```1c
    Функция БылВозвратПоЗаявке(НомерЗаявкиНаТовар, Номенклатура)

    Результат = Ложь;

    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    | Продажи.ЗаказПокупателя.Ссылка КАК ЗаказПокупателяСсылка,
    | Продажи.Количество КАК Количество
    |ИЗ
    | РегистрНакопления.Продажи КАК Продажи
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ВозвратТоваровОтПокупателя КАК ВозвратТоваровОтПокупателя
    | ПО Продажи.Регистратор = ВозвратТоваровОтПокупателя.Ссылка
    |ГДЕ
    | Продажи.ЗаказПокупателя.Ссылка = &НомерТоварногоЧека
    | И ВозвратТоваровОтПокупателя.Проведен = ИСТИНА
    | И Продажи.Номенклатура.Ссылка = &Номенклатура";

    Запрос.УстановитьПараметр("НомерТоварногоЧека", НомерЗаявкиНаТовар);
    Запрос.УстановитьПараметр("Номенклатура", Номенклатура);

    РезультатЗапроса = Запрос.Выполнить();
    Выборка = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.Прямой);

    Если Выборка.Следующий() Тогда
    Результат = Истина;
    Количество = РезультатЗапроса.Количество;
    КонецЕсли;

    Возврат Результат;

    КонецФункции
```

Соответственно функцию вызываю при выборе товара на возврат

```1c
    Если БылВозвратПоЗаявке(ТекСтрока.ДокументПродажи,ТекСтрока.Номенклатура) Тогда
    Предупреждение ("По данной номенклатуре в заявке был оформлен возврат!",10);
    Возврат;
    КонецЕсли;
```

Подскажите, пожалуйста, как сделать так, если в заявке может быть по количеству не один товар, а вернуть могли только один. Как это проверять?
---
Надо возвращать не ложь/истина, а количество возвращенного, и сравнивать с тем, что было отгружено. Посчитать, сколько еще можно вернуть этого товара, и если 0, тогда уже запрещать.
*если я правильно понял задачу*
---
сравнивать еще и количество, видимо.
---
проверяйте не строки...
Сделайте группировку строк и суммирование по количеству и проверяйте количество, если возвращаемое количество равно возвращенному, то пропускаете или ошибку выдавайте, а если возвращаемое количество меньше, то делайте возврат на количество, которое равно разнице возвращенного и возвращаемого количества товара
---
Из регистрара продаж можна сразу получить количество и продажи и возврата по заказу. Например так:

```1c
    ВЫБРАТЬ
    ВложенныйЗапрос.Регистратор,
    ВложенныйЗапрос.ЗаказПокупателя,
    ВложенныйЗапрос.Номенклатура,
    ВложенныйЗапрос.Количество,
    ВложенныйЗапрос1.РегистраторВозврат,
    ВложенныйЗапрос1.КоличествоВозврат
    ИЗ
    (ВЫБРАТЬ
    Продажи.Регистратор КАК Регистратор,
    Продажи.ЗаказПокупателя КАК ЗаказПокупателя,
    Продажи.Номенклатура КАК Номенклатура,
    СУММА(Продажи.Количество) КАК Количество
    ИЗ
    РегистрНакопления.Продажи КАК Продажи
    ГДЕ
    Продажи.ЗаказПокупателя = &ЗаказПокупателя
    И Продажи.Номенклатура = &Номенклатура
    И Продажи.Количество > 0

    СГРУППИРОВАТЬ ПО
    Продажи.Номенклатура,
    Продажи.ЗаказПокупателя,
    Продажи.Регистратор) КАК ВложенныйЗапрос
    ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    Продажи.Регистратор КАК РегистраторВозврат,
    Продажи.ЗаказПокупателя КАК ЗаказПокупателя,
    Продажи.Номенклатура КАК Номенклатура,
    СУММА(Продажи.Количество) КАК КоличествоВозврат
    ИЗ
    РегистрНакопления.Продажи КАК Продажи
    ГДЕ
    Продажи.ЗаказПокупателя = &ЗаказПокупателя
    И Продажи.Номенклатура = &Номенклатура
    И Продажи.Количество < 0

    СГРУППИРОВАТЬ ПО
    Продажи.Номенклатура,
    Продажи.ЗаказПокупателя,
    Продажи.Регистратор) КАК ВложенныйЗапрос1
    ПО ВложенныйЗапрос.ЗаказПокупателя = ВложенныйЗапрос1.ЗаказПокупателя
    И ВложенныйЗапрос.Номенклатура = ВложенныйЗапрос1.Номенклатура
```
---
Надо возвращать не ложь/истина, а количество возвращенного, и сравнивать с тем, что было отгружено. Посчитать, сколько еще можно вернуть этого товара, и если 0, тогда уже запрещать.
*если я правильно понял задачу*
---
спасибо, ваш совет помог!
---
В запросе "... | И ВозвратТоваровОтПокупателя.Проведен = ИСТИНА..." Излишне. Внутренее соединение с регистром выведет только проведённые элементы (как обмануть систему я знаю, но подозреваю что в бубен возле это базы никто не бил)

"... | И Продажи.Номенклатура.Ссылка = &Номенклатура";
Масло маслянное: | И Продажи.Номенклатура = &Номенклатура";
А то +1 таблица в sql запросе будет соединяться.

В остальном уже ответили.