Помогите разобраться с Запросом. Обработка загрузки перестала работать. БП типовая релиз последний. В одной конфигурации запрос работает, входит в цикл и выбирает созданный документ-основание. В другой базе документ создается, но в основание не выбирается. Не пойму в чем дело. Базы идентичны, релиз одинаковый.

```1c
    //основание

    ДокОснование = Документы.ДокументРасчетовСКонтрагентом.СоздатьДокумент();

    ДокОснование.Дата = ДатаДок;

    ДокОснование.Организация = Справочники.Организации.НайтиПоКоду("000000001");

    ДокОснование.Контрагент = Справочники.Контрагенты.НайтиПоКоду(Код);

    Если НайденДоговор=Истина Тогда

    ДокументСФ.ДоговорКонтрагента= ДокументСФ.ДоговорКонтрагента;

    КонецЕсли;

    ДокОснование.Записать();

    //

    Запрос = Новый Запрос;

    Запрос.Текст = "ВЫБРАТЬ

    |ДокументРасчетовСКонтрагентом.Ссылка КАК Ссылка,

    |ДокументРасчетовСКонтрагентом.Дата КАК Дата,

    |ДокументРасчетовСКонтрагентом.Номер КАК Номер,

    |ДокументРасчетовСКонтрагентом.Организация КАК Организация,

    |ДокументРасчетовСКонтрагентом.Контрагент КАК Контрагент

    |ИЗ

    |Документ.ДокументРасчетовСКонтрагентом КАК ДокументРасчетовСКонтрагентом

    |ГДЕ

    |ДокументРасчетовСКонтрагентом.Дата =Дата

    |И ДокументРасчетовСКонтрагентом.Контрагент =Контрагент";

    Запрос.УстановитьПараметр("Контрагент", Контрагент);

    Запрос.УстановитьПараметр("Дата", ДатаДок);

    РезультатЗапроса = Запрос.Выполнить().Выбрать();

    Пока РезультатЗапроса.Следующий() Цикл

    Сообщить("Выполнил!");

    ДокументСФ.ДокументОснование=РезультатЗапроса.Ссылка;

    КонецЦикла;

    ДокументСФ.Записать();
```
---
Почему нельзя?

ДокументОснование.Записать();

ДокументСФ.ДокументОснование = ДокументОснование.Ссылка;

Вот так попробуйте.
---
включать отладчик и пошагово смотреть окружение.
---
Смотрю. Доходит до РезультатЗапроса = Запрос.Выполнить().Выбрать();
а в цикл
Пока РезультатЗапроса.Следующий() Цикл
 не заходит(
---
значит результат запроса пустой. Проверяйте учетные данные.
---
ДокументСФ.ДоговорКонтрагента= ДокументСФ.ДоговорКонтрагента; Это правильно? Думаю где то должно быть ДокументОснование
---
Это правильно.
ДокументСФ.ДоговорКонтрагента= ДокументСФ.ДоговорКонтрагента; создается документ расчетов с контрагентом (Ручной) - а в счет-фактуру его не выбирает в качестве основания, а должен по идее:

Пока РезультатЗапроса.Следующий() Цикл

Сообщить("Выполнил!");

ДокументСФ.ДокументОснование=РезультатЗапроса.Ссылка;
  Сообщение специально поставила, чтоб посмотреть как заходит в цикл.
---
и справа, и слева один и тот же документ. В чем смысл этой записи?
ДокументСФ.ДокументОснование и РезультатЗапроса.Ссылка Типы документов совпадают?
---
ДокументСФ.ДокументОснование и РезультатЗапроса.Ссылка - это документ расчетов с контрагентом. да это один и то же документ
---
в консоли запросов обозреть результат не пробовали?
---
смотрю в табло - Ссылка {(1,1)}: Переменная не определена (Ссылка) все остальные поля заполняются.
---
да и текст запроса можно было форматнуть в теме - ломать глаза в каше удовольствия мало.

В общем - садитесь два!
---
так редко спрашиваю, что и не знаю ка форматировать
---
```1c
    //основание

    ДокОснование = Документы.ДокументРасчетовСКонтрагентом.СоздатьДокумент();

    ДокОснование.Дата = ДатаДок;

    ДокОснование.Организация = Справочники.Организации.НайтиПоКоду("000000001");

    ДокОснование.Контрагент = Справочники.Контрагенты.НайтиПоКоду(Код);

    Если НайденДоговор=Истина Тогда

    ДокументСФ.ДоговорКонтрагента= ДокументСФ.ДоговорКонтрагента;

    КонецЕсли;

    ДокОснование.Записать();

    //
    [1C-CODE]
    Запрос = Новый Запрос;

    Запрос.Текст = "ВЫБРАТЬ

    |ДокументРасчетовСКонтрагентом.Ссылка КАК Ссылка,

    |ДокументРасчетовСКонтрагентом.Дата КАК Дата,

    |ДокументРасчетовСКонтрагентом.Номер КАК Номер,

    |ДокументРасчетовСКонтрагентом.Организация КАК Организация,

    |ДокументРасчетовСКонтрагентом.Контрагент КАК Контрагент

    |ИЗ

    |Документ.ДокументРасчетовСКонтрагентом КАК ДокументРасчетовСКонтрагентом

    |ГДЕ

    |ДокументРасчетовСКонтрагентом.Дата =Дата

    |И ДокументРасчетовСКонтрагентом.Контрагент =Контрагент";

    Запрос.УстановитьПараметр("Контрагент", Контрагент);

    Запрос.УстановитьПараметр("Дата", ДатаДок);

    РезультатЗапроса = Запрос.Выполнить().Выбрать();

    Пока РезультатЗапроса.Следующий() Цикл

    Сообщить("Выполнил!");

    ДокументСФ.ДокументОснование=РезультатЗапроса.Ссылка;

    КонецЦикла;

    ДокументСФ.Записать();
```
---
я вот что-то логику совсем не понимаю.
Сначала создается ДокументОснование типа ДокументРасчетовСКонтрагентом. Сохраняется. Потом в запросе ищется он же? Что бы потом подставится как ДокументОснование?
А сразу нельзя его указать в качестве ДокументОснование?

(13) Если НайденДоговор=Истина Тогда

ДокументСФ.ДоговорКонтрагента= ДокументСФ.ДоговорКонтрагента;

КонецЕсли;
Это вообще что?
---
Да сначала нужно создать документ основание, потом выбрать его в счете-фактуре. Сразу нельзя.
---
Почему нельзя?

ДокументОснование.Записать();

ДокументСФ.ДокументОснование = ДокументОснование.Ссылка;

Вот так попробуйте.
---
ДокОснование.Записать();
  ДокументСФ.ДокументОснование = ДокОснование.Ссылка;
только так. Спасибо большое!
---
так вначале и создаете этот самый документ основание. Вот и выбирайте его ссылку сразу после записи.
Еще. Где будет использоваться этот код? Что будет после перепроведения основного документа? Документ основание новый создаваться будет каждый раз?
---
Нет не будет создаваться каждый раз.
---
Ошибка чтения значения - в РезультатЗапроса ((((
---
во вложении изображение
---
ДокументРасчетовСКонтрагентом - наверяка составной тип и чтобы исключить ошибки в выборке необходимо учитывать составной тип.
---
не сооображу что то как(
---
```1c
    |ГДЕ

    |ДокументРасчетовСКонтрагентом.Дата =Дата

    |И ДокументРасчетовСКонтрагентом.Контрагент =Контрагент";
```

почему нет знака &

```1c
    |ГДЕ

    |ДокументРасчетовСКонтрагентом.Дата =&Дата

    |И ДокументРасчетовСКонтрагентом.Контрагент =&Контрагент";
```

если запутались то вместо

```1c
    Запрос.УстановитьПараметр("Контрагент", Контрагент);
```

лучше пишите

```1c
    Запрос.УстановитьПараметр("Контрагент", Контрагент);
    Сообщить("Выбранный контрагент:");
    Сообщить(Контрагент);
```
---
Сообщить("Выбранный контрагент:");
Сообщить(Контрагент);
Знаки стоят

```1c
    |ГДЕ

    |ДокументРасчетовСКонтрагентом.Дата =&Дата

    |И ДокументРасчетовСКонтрагентом.Контрагент =&Контрагент";
```

Список контрагентов вышел, но документ расчетов с контрагентом не заполнился((
это сообщение не вышло(

```1c
    Пока РезультатЗапроса.Следующий() Цикл

    Сообщить("Выполнил!");

    ДокументСФ.ДокументОснование=РезультатЗапроса.Ссылка;

    КонецЦикла;
```

В отладчике в РезультатЗапроса выходит ошибка чтения значения
---
В отладчике в РезультатЗапроса выходит ошибка чтения значения
Судя по скрину выше, не там точку остановки делаете. Пока не пройдет чтение из выборки, так и будет "Ошибка чтения значения".
А не попадает в цикл из-за того, что запрос ничего не возращает. Не найдены значения.
---
А со вторым параметром провернуть тот же фокус?

```1c
    Запрос.УстановитьПараметр("Дата", ДатаДок);
```

добавьте "Сообщить" посмотрите какая дата по каждому контрагенту передается в запрос
и есть ли на эту дату по этому контрагенту хотя бы один документ расчетов который мог бы вернуть запрос
---
Сделала. Убрала запрос и сделала как (21) советует. И получилось )) Спасибо всем за обсуждение. Дел ов том, что все работало и вдруг перестало.