Добрый день!

Имеется простой регистр накопления "Остатки материалов" (см. рис. 1). Делаю простейший отчёт с группировкой сперва по материалу, затем по документам, вызывающим движения по этому материалу.

Текст запроса

```1c
    ВЫБРАТЬ
    ОстаткиМатериаловОстаткиИОбороты.Материал,
    ОстаткиМатериаловОстаткиИОбороты.КоличествоНачальныйОстаток,
    ОстаткиМатериаловОстаткиИОбороты.КоличествоПриход,
    ОстаткиМатериаловОстаткиИОбороты.КоличествоРасход,
    ОстаткиМатериаловОстаткиИОбороты.КоличествоКонечныйОстаток,
    ОстаткиМатериаловОстаткиИОбороты.Период,
    ОстаткиМатериаловОстаткиИОбороты.Регистратор
    ИЗ
    РегистрНакопления.ОстаткиМатериалов.ОстаткиИОбороты(, , Регистратор, , ) КАК ОстаткиМатериаловОстаткиИОбороты
```

то есть для виртуальной таблицы "ОстаткиМатериаловОстаткиИОбороты" задан период "Регистратор".

Если делаю со второй группировкой по периоду (Рис. 2), то почти всё нормально (Рис. 3), но вместо документов высвечивается только их дата и время.

Если делаю со второй группировкой по регистратору (Рис. 4), то документы высвечиваются, однако выводится чушь в данных (Рис. 5).

Как следует сделать правильно?
---
"но вместо документов высвечивается только их дата и время" - это и понятно, вы же выбрали групировкой Период- то есть дату и время проведения по регистру, а детальных записей с документами нет.
"Если делаю со второй группировкой по регистратору (Рис. 4), то документы высвечиваются, однако выводится чушь в данных (Рис. 5). " - попробуйте в настройках виртуальной таблицы установить МетодДополнения "Движения", начальные остатки по пустым документам уйдут
---
Авторы Ажеронок, Габец,Гончаров и т.д. там их много
---
"но вместо документов высвечивается только их дата и время" - это и понятно, вы же выбрали групировкой Период- то есть дату и время проведения по регистру, а детальных записей с документами нет.
"Если делаю со второй группировкой по регистратору (Рис. 4), то документы высвечиваются, однако выводится чушь в данных (Рис. 5). " - попробуйте в настройках виртуальной таблицы установить МетодДополнения "Движения", начальные остатки по пустым документам уйдут
---
это и понятно, вы же выбрали групировкой Период- то есть дату и время проведения по регистру

Это как раз и не понятно. Если бы я выбрал "Период=Секунды", то всё так и должно быть. Но я выбрал "Период=Регистратор".

начальные остатки по пустым документам уйдут

Судя по цифрам, это КОНЕЧНЫЕ остатки. На большой базе такая вещь может обнаружиться и в середине, и порядок документов может "поехать".

попробуйте в настройках виртуальной таблицы установить МетодДополнения "Движения"

Ура, заработало! (с)
---
Это как раз и не понятно. Если бы я выбрал "Период=Секунды", то всё так и должно быть. Но я выбрал "Период=Регистратор".
А что, у Регистратора нет даты и времени чтоли?
---
Да есть, только моя программистская логика говорит, что раз есть отдельно "Период=Секунды" и "Период=Регистратор", то они должны чем-то отличаться. И весьма логично предположить, что "Период=Регистратор" имеет ссылку на документ, хотя бы на самые его основные реквизиты.

К тому же в одной секунде теоретически может быть несколько документов (в семёрке было можно до 9999 - там в базе секунды*10000 лежали)
---
вдогонку

стало жутко интересно - где такие нюансы написаны? Или это секретные знания, до которых только своим умом/через форумы доходить надо?
---
Я это узнал когда готовился к Экзамену на спеца по платформе - там надо было отчет какой то делать вот и пришлось понять на что влияет МетодДополнения. а так тоже самое написано в книге Профессиональная разработка в системе "1С Предприятие" в главе посвященной виртуальной таблице ОстаткиИОбороты
---
Спасибо. А кто автор?
---
Авторы Ажеронок, Габец,Гончаров и т.д. там их много
---
В отборе можно - Регистратор - Заполнено
---
У меня, если включить периодичность, то конструктор запросов добавить регистратор в список полей уже не даёт. Или это делается как-то по-другому?

К тому же здесь, как я понимаю, проблема не во вводе остатков без документа. С этим здесь всё нормально.
---
Добавлю чтобы было понятно, хоть и не актуально.

1. Добавляем поле "Регистратор" с ролью "Период 1".
2. Добавляем поле "ПериодСекунда" с ролью "Период 2" и флагом "Дополнительный".
3. Для начального и конечного остатка устанавливаем роль "Остатки". Заполняем имя, выбираем соответствующий тип. Бух тип и номер счета можно не заполнять.
4. Проставьте роль "Измерение" для полей, используемых в группировках.

В закладке "Настройки" достаточно вывести группировку "Регистратор" ... остатки на начало и конец автоматически посчитаются по доп полю "на секунду документа".
PS могут быть неточности, если несколько документов в одной секунде.