Добрый день
В При выполнении кода реквизит "Соглашение" в заказе клиента остается пустым.
Помогите пожалуйста, что не так в коде.

Требуется
При заказе от Физиков подставлять "Розничная для интернет магазина",
а елли Юр. лица "Типовое соглашение для оптовиков"

Стандартные алгоритмы не могут это, насколько я понимаю. Может кто подскажет?

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

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

    Если [Документ].Контрагент.ИНН <> "Неопределено" Тогда
    [Результат] = СОГЛОПТ.Выполнить();
    Иначе
    [Результат] = СОГЛРОЗН.Выполнить();
    КонецЕсли;
```
---
[Результат] = Выборка.Ссылка;
Результатом должна быть ссылка, а у вас - результат запроса.
Т.к. , возможно, что вы и не программист вовсе, то я подскажу, как я предполагаю.

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

Если [Документ].Контрагент.ИНН <> "Неопределено" Тогда вот это явно не правильно ИНН не может быть равен "Неопределено". Если речь о заполненности - можно использовать ЗначениеЗаполнено()
---
```1c
    //Параметр на создаваемый/редактируемый документ происходит через параметр [Документ]
    // Параметр на создаваемую новую строку документа [НоваяСтрока] Если ее нет(шапка заполняется), то Неопределено
    // Глобальные настройки в параметре [СтруктураНастроек]
    //
    // Параметр, возвращающий результат [Результат]
    //
    // Параметр на данные документа ИЗ XML [ДокументXML]
    // Параметр, на данные строки товаров Из XML [СтрокаXML]. Если ее нет, то Неопределено

    Соответственно если нет XML такого поля, то передаёт "Неопределено" - как я понял.
    Как я понимаю, нужна ссылка на соглашение.
    Проблема в том, что особо документации нет.

    Вот пример нашел.
    Для каждого стр из [ДокументXML].ЗначенияРеквизитов Цикл
    Если стр.Наименование = "Код контрагента" Тогда
    Если значениеЗаполнено(стр.Значение) Тогда
    //Убираем лидирующие нули
    Номер = стр.Значение;
    Пока Лев(Номер,1)="0" Цикл
    Номер = Прав(Номер,СтрДлина(Номер)-1);
    КонецЦикла;
    //запросом получаем всех партнеров с похожим кодом
    Запрос = новый запрос;
    Запрос.Текст = "ВЫБРАТЬ
    | Партнеры.Ссылка КАК Ссылка,
    | Партнеры.Код КАК Код
    |ИЗ
    | Справочник.Партнеры КАК Партнеры
    |ГДЕ
    | Партнеры.Код ПОДОБНО &Код";
    Запрос.УстановитьПараметр("Код","%"+Номер);
    Выборка = Запрос.Выполнить().Выбрать();
    Пока выборка.Следующий() Цикл
    //теперь убираем лидирующие нули у полученного кода
    НомерКода = выборка.Код;
    Пока Лев(НомерКода,1)="0" Цикл
    НомерКода = Прав(НомерКода,СтрДлина(НомерКода)-1);
    КонецЦикла;
    //Если оба кода без нулей полностью идентичны, значит это нужный нам партнер
    Если НомерКода = Номер Тогда
    [Результат] = Выборка.Ссылка;
    Прервать;
    КонецЕсли;
    КонецЦикла;
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
```
---
[Результат] = Выборка.Ссылка;
Результатом должна быть ссылка, а у вас - результат запроса.
Т.к. , возможно, что вы и не программист вовсе, то я подскажу, как я предполагаю.

```1c
    Если ЗначениеЗаполнено([Документ].Контрагент.ИНН)Тогда
    Выборка = СОГЛОПТ.Выполнить().Выбрать();
    Если выборка.Следующий() Тогда
    [Результат] = Выборка.Ссылка;
```
---
Спасибо тебе добрый человек. Всё получилось.

Я не программист 1С. Первый раз вижу код 1С )