Теперь настало время посмотреть весь код вместе:
ИсторияИзмененияСостояний = СоздатьОбъект("Периодический"); ИсторияИзмененияСостояний.ИспользоватьОбъект("Состояние", ТекущийДокумент()); ИсторияИзмененияСостояний.ВыбратьЗначения(); ДокументПоступления = ""; ДокументВводаВЭксплуатацию = ""; ДокументВыбытия = ""; Пока ИсторияИзмененияСостояний.ПолучитьЗначение() = 1 Цикл ИстДок = ИсторияИзмененияСостояний.ТекущийДокумент(); Если ИстДок.Выбран() = 1 Тогда Если ИстДок.Вид() = "ПоступлениеОС" Тогда ДокументПоступления = ИстДок; ИначеЕсли ИстДок.Вид() = "ВводВЭксплуатациюОС" Тогда ДокументВводаВЭксплуатацию = ИстДок; ИначеЕсли (ИстДок.Вид() = "ПередачаОС") или (ИстДок.Вид() = "СписаниеОС") Тогда ДокументВыбытия = ИстДок; КонецЕсли; КонецЕсли; КонецЦикла;
Здесь практически все понятно. Создаем объект периодический реквизит. Выбираем состояние основного средства. Бежим по состояниям. Смотрим, какой документ был связан с изменением состояния основного средства. И если есть документы изменения состояния, то запоминаем их в отдельные переменные для дальнейшего использования. Например в отчете ОС-6.