Изначально стоит задача: найти все документы которые не делают движения по журналам расчетов и не создают данных по периодическим реквизитам.
Внешняя обработка в который пытаюсь найти документы НачисленияУдержанияСотрудника без движений и без созданных периодических реквизитов.
Использую код.
Доки=СоздатьОбъект("Документ.НачисленияУдержанияСотрудника");
Доки.ВыбратьДокументы(,'31.12.2012');
Пока Доки.ПолучитьДокумент()=1 Цикл
МожноУдалить = 1;
Для Номер=1 По Метаданные.ЖурналРасчетов() Цикл
МетаданныеЖРК = Метаданные.ЖурналРасчетов(Номер);
ЖРК = СоздатьОбъект(МетаданныеЖРК.ПолныйИдентификатор());
Если ЖРК.ВыбратьЗаписиПоДокументу(Доки)=1 Тогда
МожноУдалить = 0;
Прервать;
КонецЕсли;
КонецЦикла;
Периодический = СоздатьОбъект("Периодический");
Если Доки.Выбран()=0 Тогда
Предупреждение("Выберите документ!");
Возврат;
Иначе
Сообщить("Выбран же!");
КонецЕсли;
Если Периодический.ВыбратьПоДокументу(Доки)=1 Тогда
МожноУдалить = 0;
КонецЕсли;
Если МожноУдалить=1 Тогда
Доки.Удалить(0);
КонецЕсли;
КонецЦикла;
При выполнении ошибка:
>Выбран же!
>Если Периодический.ВыбратьПоДокументу(Доки)=1 Тогда
>Перед выполнением операции нужно вызвать 'ИспользоватьОбъект'!
Чего-то не пойму. А как та же самая конструкция нормально работает в Отчете ДвиженияДокументы.
Если Периодический.ВыбратьПоДокументу(Доки.ТекущийДокумент())=1 Тогда
----
добавь в самом начале проверку на доки.проведен() - сэкономишь массы времени на остальных проверках ))
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.