```1c
    ТекДок = СоздатьОбъект("Документ");
    ТекДок.НайтиДокумент(СсылкаДок);

    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    |ОбрабатыватьДокументы все;
    |ПеремОбъект = Документ.УслугиСтороннихОрганизаций.ТекущийДокумент;
    |Группировка ПеремОбъект;
    |Условие(ПеремОбъект = ТекДок);
    |"//}}ЗАПРОС
    ;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
    Возврат;
    КонецЕсли;

    Пока Запрос.Группировка("ПеремОбъект") = 1 Цикл
    стоп = 1;
    КонецЦикла;
```

Не Заходит в цикл. "СсылкаДок" выбирается на Форме
---
А вот так все работает

```1c
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    //|Обрабатывать Все;
    |с ДатаНачала по ДатаОкончания;
    |ОбрабатыватьДокументы все;
    |ПеремОбъект = Документ.УслугиСтороннихОрганизаций.ТекущийДокумент;
    |Группировка ПеремОбъект;
    |Условие(ПеремОбъект = СсылкаДок );
    |"//}}ЗАПРОС
    ;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
    Возврат;
    КонецЕсли;

    Пока Запрос.Группировка("ПеремОбъект") = 1 Цикл
    стоп = 1;
    КонецЦикла;
```
---
```1c
    Перем Запрос, ТекстЗапроса, Таб;
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |ОбрабатыватьДокументы все;
    |ПеремОбъект = Документ.УслугиСтороннихОрганизаций.ТекущийДокумент;
    |Количество = Документ.УслугиСтороннихОрганизаций.Количество;
    |Функция КоличествоСумма = Сумма(Количество);
    |Группировка ПеремОбъект;
    |Условие(ПеремОбъект = ТекДок);
    |"//}}ЗАПРОС
    ;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
    Возврат;
    КонецЕсли;

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

    // Подготовка к заполнению выходных форм данными запроса
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Сформировать");
    // Заполнение полей "Заголовок"
    Таб.ВывестиСекцию("Заголовок");
    Состояние("Заполнение выходной таблицы...");
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
    Пока Запрос.Группировка(1) = 1 Цикл
    // Заполнение полей ПеремОбъект
    Таб.ВывестиСекцию("ПеремОбъект");
    КонецЦикла;
    // Заполнение полей "Итого"
    Таб.ВывестиСекцию("Итого");
    // Вывод заполненной формы
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Сформировать", ");
```
---
, а зачем здесь запрос, если уже есть ссылка на документ СсылкаДок?
---
Правлю правила конвертации для 7.7. Чтоб быстрее отладку делать - запрос положил во внешний отчет.

Вот функция которая отрабатывает в стандартных правилах когда ставишь условие для ПВД. Оно и не отрабатывает

```1c
    Функция СоздатьЗапрос(ОбъектВыборки, ТабОтбор)

    ПрефиксЗапроса = "Обрабатывать Все; ";
    ПрефиксЗапросаДок = "ОбрабатыватьДокументы Все; ";

    Если Найти(ОбъектВыборки, "Справочник.") = 1 Тогда
    стрТекущий = ".ТекущийЭлемент";
    Иначе
    стрТекущий = ".ТекущийДокумент";
    КонецЕсли;

    ТекстЗапроса = "ПеремОбъект = " + ОбъектВыборки + стрТекущий + ";";

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

    Если (ТабОтбор.Объект = "ПометкаУдаления") Тогда
    Если ТабОтбор.Значение = 0 Тогда
    ПрефиксЗапроса = "Обрабатывать НеПомеченныеНаУдаление; ";
    Иначе
    ПрефиксЗапроса = "Обрабатывать ПомеченныеНаУдаление; ";
    КонецЕсли;
    Продолжить;
    КонецЕсли;

    Если (ТабОтбор.Объект = "Проведен") Тогда
    Если ТабОтбор.Значение = 0 Тогда
    ПрефиксЗапросаДок = "ОбрабатыватьДокументы Непроведенные; ";
    Иначе
    ПрефиксЗапросаДок = "ОбрабатыватьДокументы Проведенные; ";
    КонецЕсли;
    Продолжить;
    КонецЕсли;

    ТекстЗапроса = ТекстЗапроса + " Перем" + ТабОтбор.НомерСтроки +" = " + ОбъектВыборки + "." + ТабОтбор.ПолеОтбора + ";";//" Группировка ПеремОбъект; Без Итогов;";
    КонецЦикла;

    ТекстЗапроса = ТекстЗапроса + " Группировка ПеремОбъект;";

    ТабОтбор.ВыбратьСтроки();
    Пока ТабОтбор.ПолучитьСтроку() = 1 Цикл
    ЗначенияДляОтбора[ТабОтбор.НомерСтроки] = ТабОтбор.Значение;
    Если (ТабОтбор.Использовать = 1) ИЛИ (ПустаяСтрока(ТабОтбор.ПолеОтбора) = 1) Тогда
    Продолжить;
    КонецЕсли;

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

    Если Найти(ОбъектВыборки, "Документ.") = 1 Тогда
    ТекстЗапроса = ПрефиксЗапроса + ПрефиксЗапросаДок + ТекстЗапроса;
    Иначе
    ТекстЗапроса = ПрефиксЗапроса + ТекстЗапроса;
    КонецЕсли;

    Возврат ТекстЗапроса;

    КонецФункции
```
---
У тебя никакая функция не подсчитывается.
Добавь хотя бы какое нибудь количество
---
Щас попробую. Отпишусь.
---
Кусок запроса из Бухгалтерии 7.7 - нет функций. А работает...

```1c
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(СчетН01_06)
    |Период с ДатаНач по ДатаКон;
    |ВидРасхода = Документ.СписаниеМатериаловТоваровПродукции.ВидРасхода;
    |МПЗ = Документ.СписаниеМатериаловТоваровПродукции.МПЗ;
    |Объект = Документ.СписаниеМатериаловТоваровПродукции.Объект;
    |Группировка МПЗ;
    |Группировка Документ;
    |Группировка СтрокаДокумента;
    |Условие(ВидРасхода = Перечисление.ВидыРасходов.ПрямыеРасходы);
    |Условие(ПустоеЗначение(Объект) = 1);
    |"//}}ЗАПРОС
    ;
    Запрос.Выполнить(ТекстЗапроса);

    Пока Запрос.Группировка("МПЗ") = 1 Цикл
```
---
```1c
    ТекДок = СоздатьОбъект("Документ");
    ТекДок.НайтиДокумент(СсылкаДок);

    ТекДок1 = ТекДок.ТекущийДокумент();

    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    |ОбрабатыватьДокументы все;
    |ПеремОбъект = Документ.УслугиСтороннихОрганизаций.ТекущийДокумент;
    |Группировка ПеремОбъект;
    |Условие(ПеремОбъект = ТекДок1);
    |"//}}ЗАПРОС
    ;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
    Возврат;
    КонецЕсли;

    Пока Запрос.Группировка("ПеремОбъект") = 1 Цикл
    стоп = 1;
    КонецЦикла;
```

давно не брал я в руки шахмат
---
Неа...Не работает.
Нашел уже я решение.
Без
|с ДатаНачала по ДатаОкончания;
почему то не отрабатывает
---
А вот так все работает

```1c
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    //|Обрабатывать Все;
    |с ДатаНачала по ДатаОкончания;
    |ОбрабатыватьДокументы все;
    |ПеремОбъект = Документ.УслугиСтороннихОрганизаций.ТекущийДокумент;
    |Группировка ПеремОбъект;
    |Условие(ПеремОбъект = СсылкаДок );
    |"//}}ЗАПРОС
    ;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
    Возврат;
    КонецЕсли;

    Пока Запрос.Группировка("ПеремОбъект") = 1 Цикл
    стоп = 1;
    КонецЦикла;
```
---
Все равно спасибо. :)