Доброго времени суток всем читающим. Сложилась такая ситуация, что бухи готовят продажу конторки одной, но есть N-ное количество товаров в БП 2.0 которое нельзя выбрать из товароучетной программы, оно лишнее, и взято было из старой базы БП. Проблема состоит в следующем, есть такой вот запросик

```1c
    "ВЫБРАТЬ
    | ХозрасчетныйОстаткиИОбороты.Организация,
    | ХозрасчетныйОстаткиИОбороты.Счет,
    | ХозрасчетныйОстаткиИОбороты.Субконто2,
    | ХозрасчетныйОстаткиИОбороты.Субконто1,
    | ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток,
    | ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток
    |ПОМЕСТИТЬ Вт1
    |ИЗ
    | РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&Дата, &Дата, , ДвиженияИГраницыПериода, , , ) КАК ХозрасчетныйОстаткиИОбороты
    |ГДЕ
    | ХозрасчетныйОстаткиИОбороты.Счет = &Счет
    | И ХозрасчетныйОстаткиИОбороты.Организация = &Организация
    |;
    |
    | X
    |ВЫБРАТЬ
    | ИнвентаризацияТоваровНаСкладеТовары.Ссылка.Организация,
    | ИнвентаризацияТоваровНаСкладеТовары.Ссылка.Дата,
    | ИнвентаризацияТоваровНаСкладеТовары.Номенклатура,
    | ИнвентаризацияТоваровНаСкладеТовары.СчетУчета
    |ПОМЕСТИТЬ Вт2
    |ИЗ
    | Документ.ИнвентаризацияТоваровНаСкладе.Товары КАК ИнвентаризацияТоваровНаСкладеТовары
    |ГДЕ
    | ИнвентаризацияТоваровНаСкладеТовары.Ссылка.Дата = &Дата
    | И ИнвентаризацияТоваровНаСкладеТовары.Ссылка.Организация = &Организация
    | И ИнвентаризацияТоваровНаСкладеТовары.Ссылка.ПометкаУдаления = Ложь
    |;
    |
    | X
    |ВЫБРАТЬ
    | Вт1.Организация,
    | Вт1.Счет,
    | Вт1.Субконто2,
    | Вт1.Субконто1,
    | Вт1.КоличествоКонечныйОстаток,
    | Вт1.СуммаКонечныйОстаток,
    | Вт2.Организация КАК Организация1,
    | Вт2.Дата,
    | Вт2.Номенклатура,
    | Вт2.СчетУчета,
    | ВЫБОР
    | КОГДА Вт2.Номенклатура ЕСТЬ NULL
    | ТОГДА 0
    | ИНАЧЕ 1
    | КОНЕЦ КАК Поле1
    |ПОМЕСТИТЬ Вт3
    |ИЗ
    | Вт1 КАК Вт1
    | ЛЕВОЕ СОЕДИНЕНИЕ Вт2 КАК Вт2
    | ПО Вт1.Организация = Вт2.Организация
    | И Вт1.Субконто1 = Вт2.Номенклатура
    |;
    |
    | X
    |ВЫБРАТЬ
    | Вт3.Организация,
    | Вт3.Счет,
    | Вт3.Субконто2,
    | Вт3.Субконто1,
    | Вт3.КоличествоКонечныйОстаток,
    | Вт3.СуммаКонечныйОстаток,
    | Вт3.Организация1,
    | Вт3.Дата,
    | Вт3.Номенклатура,
    | Вт3.СчетУчета,
    | Вт3.Поле1
    |ИЗ
    | Вт3 КАК Вт3
    |ГДЕ
    | Вт3.Поле1 = 0
    | И Вт3.КоличествоКонечныйОстаток <> 0";
```

Он выдерат номенклатуру с положительными и отрицательными остатками, и должен создаться новый документ инвентаризация. В консоли показывает точное количество, этого не прошедшего товара, но при создании документа, заполняется всего 228 позиций, а их много больше, причем многие получаются нулевыми, подскажите что я делаю не так?
---
PhoenixAOD,
посмотри, что творится в обработчике ПередЗаписью() объекта документа.
---
PhoenixAOD, если в консоли запросов результат не такой, как в программе, - смотри параметры :)
---
starjevschik, как раз в консоли результат тот который нужен. а при загрузке в ТЧ инвентаризации он неверный
---
PhoenixAOD,
как грузишь в табчасть?
пример кода...если нетрудно
---
PhoenixAOD, в отладчике перед заполнением ТЧ при получении результата запроса тоже 228 строк?
---
tolyan_ekb, нет там 7645 строк
---
PhoenixAOD, если в результате больше 228 строк, то в цикле и должно создаться столько же. Код простой, попробуй убрать заполнение ТЧ и просто добавить строки, заполнив счет, например.
---
PhoenixAOD, ну значит параметры в программе неправильно поставлены. В чем проблема их проверить-то?
---
starjevschik, все параметры верны. все перепроверно, отбор идет именно такой какой нужен, пробовал в другой док выгрузить, все строки появляются, в инвентаризации нет.
---
```1c
    ТабДок = ДОкументы.ИнвентаризацияТоваровНаСкладе.СоздатьДокумент();
    ТабДок.Дата = Дата;
    ТабДок.Организация = Организация;
    Пока выборка.Следующий() Цикл
    Номен = Справочники.Номенклатура.НайтиПоНаименованию(выборка.субконто1);
    Стр = ТабДок.Товары.Добавить();
    Стр.Номенклатура = Номен;
    Стр.Количество = Выборка.КоличествоКонечныйОстаток;
    Стр.Сумма = Выборка.СуммаКонечныйОстаток;
    Стр.СчетУчета = Счет;
    КонецЦикла;
    ТабДок.Записать();
    ТабДок.ПолучитьФорму("ФормаДокумента").Открыть();
```
---
PhoenixAOD, зачем поиск по наименованию?
---
tolyan_ekb, разницы нету. что наприямую указать Субконто1 или через номен. Меня интерисую не это, меня интерисует почему не все позиции из запроса попадают в таб часть.
---
PhoenixAOD,
посмотри, что творится в обработчике ПередЗаписью() объекта документа.
---
PhoenixAOD,
и еще поле Субконто1 в запросе - это никак не строка,
почему тогда

```1c
    Номен = Справочники.Номенклатура.НайтиПоНаименованию(выборка.субконто1);
```
 ???
---
если
```1c
    выборка.субконто1
```
 - это и есть номенклатура,
то его и надо использовать, а не искать в справочнике
---
Rothschild, да я понимаю. что так что так заполняется всего 228 позиций.
---
PhoenixAOD,
что-нибудь странного-нестандартног нет в обработчике ПередЗаписью() в модуле объекта???
---
еще советую
в запросе сформировать выборку с именами полей
один-в-один как табчасти ИнвентаризацияТоваровНаСкладе
и загрузить ТЗ непосредственн в табличную часть:

```1c
    тзДанные = Запрос.Выполнить().Выгрузить();
    ...
    ТабДок.Товары.Загрузить(ТабДок.Товары);
```
---
Rothschild,

```1c
    ТабДок.Товары.Загрузить(ТабДок.Товары);
```

сама в себя грузиться чтоли?
---
tolyan_ekb,
пардонс ;)

```1c
    тзДанные = Запрос.Выполнить().Выгрузить();
    ...
    ТабДок.Товары.Загрузить(тзДанные);
```
---
спешилс, мыслью поделиться
:)
---
Rothschild, так тоже пробовал. Изначально делал, но в итоге так же 228 строк.
---
Ставим точку останова после строки:

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

Внимательно смотрим параметры и результат по Shift+F9
---
kuza2000,
если установишь подсистемку
http://infostart.ru/public/97707/
то можно написать для отладки в режиме 1С:Предприятие:

```1c
    ViewTable(Запрос.Выполнить().Выгрузить(),"Результат запроса");
```

и так тоже можно:

```1c
    ViewTable(Запрос.Выполнить(),"Результат запроса");
```

красиво выводит для просмотра "табличное представление" интересуемого объекта
---
Rothschild, нашел косяк, спасибо за подсказку!
---
изменил немного запрос и все встало как надо.

```1c
    "ВЫБРАТЬ
    | ХозрасчетныйОстаткиИОбороты.Организация,
    | ХозрасчетныйОстаткиИОбороты.Счет,
    | ХозрасчетныйОстаткиИОбороты.Субконто2,
    | ХозрасчетныйОстаткиИОбороты.Субконто1,
    | ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокДт,
    | ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокКт,
    | ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстатокДт,
    | ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстатокКт
    |ПОМЕСТИТЬ Вт1
    |ИЗ
    | РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&Дата, &Дата, , ДвиженияИГраницыПериода, , , ) КАК ХозрасчетныйОстаткиИОбороты
    |ГДЕ
    | ХозрасчетныйОстаткиИОбороты.Счет = &Счет
    | И ХозрасчетныйОстаткиИОбороты.Организация = &Организация
    |;
    |
    | X
    |ВЫБРАТЬ
    | ИнвентаризацияТоваровНаСкладеТовары.Ссылка.Организация,
    | ИнвентаризацияТоваровНаСкладеТовары.Ссылка.Дата,
    | ИнвентаризацияТоваровНаСкладеТовары.Номенклатура,
    | ИнвентаризацияТоваровНаСкладеТовары.СчетУчета
    |ПОМЕСТИТЬ Вт2
    |ИЗ
    | Документ.ИнвентаризацияТоваровНаСкладе.Товары КАК ИнвентаризацияТоваровНаСкладеТовары
    |ГДЕ
    | ИнвентаризацияТоваровНаСкладеТовары.Ссылка.Дата = &Дата
    | И ИнвентаризацияТоваровНаСкладеТовары.Ссылка.Организация = &Организация
    | И ИнвентаризацияТоваровНаСкладеТовары.Ссылка.ПометкаУдаления = ИСТИНА
    |;
    |
    | X
    |ВЫБРАТЬ
    | Вт1.Организация,
    | Вт1.Счет,
    | Вт1.Субконто2,
    | Вт1.Субконто1,
    | Вт1.СуммаКонечныйОстатокДт,
    | Вт1.СуммаКонечныйОстатокКт,
    | Вт1.КоличествоКонечныйОстатокДт,
    | Вт1.КоличествоКонечныйОстатокКт,
    | Вт2.Организация КАК Организация1,
    | Вт2.Дата,
    | ВЫБОР
    | КОГДА Вт2.Номенклатура ЕСТЬ NULL
    | ТОГДА 0
    | ИНАЧЕ 1
    | КОНЕЦ КАК Поле1,
    | Вт2.СчетУчета
    |ПОМЕСТИТЬ Вт3
    |ИЗ
    | Вт1 КАК Вт1
    | ЛЕВОЕ СОЕДИНЕНИЕ Вт2 КАК Вт2
    | ПО Вт1.Организация = Вт2.Организация
    | И Вт1.Субконто1 = Вт2.Номенклатура
    |;
    |
    | X
    |ВЫБРАТЬ
    | Вт3.Организация,
    | Вт3.Счет,
    | Вт3.Субконто2,
    | Вт3.Субконто1 как Номенклатура,
    | Вт3.СуммаКонечныйОстатокДт КАК Сумма,
    | Вт3.СуммаКонечныйОстатокКт КАК СуммаКонечныйОстатокКт,
    | Вт3.КоличествоКонечныйОстатокДт КАК Количество,
    | Вт3.КоличествоКонечныйОстатокКт КАК КоличествоКонечныйОстатокКт,
    | Вт3.Организация1,
    | Вт3.Дата,
    | Вт3.Поле1,
    | Вт3.СчетУчета
    |ИЗ
    | Вт3 КАК Вт3";
```

Всем спасибо!
---
тему закрываю