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