Доброго дня,
підкажіть як користуватися функцією НайтиПоСсылкам,
треба аналізувати чи можна видаляти помічений на видалення документ.
Функция УдалитьОдинВидДокумента(ТекИмяДока,ДатаНач,ДатаКон)
КолвоУд = 0;
Имя = ТекИмяДока;
Запрос = Новый Запрос("Выбрать Док.ссылка КАК Ссылка Из Документ."+Имя+" КАК Док ГДЕ Док.ПометкаУдаления И Док.Дата МЕЖДУ &ДатаН И &ДатаК");
Запрос.УстановитьПараметр("ДатаН",ДатаНач);
Запрос.УстановитьПараметр("ДатаК",КонецДня(ДатаКон));
ВыборкаЗапроса = Запрос.Выполнить().Выбрать();
Пока ВыборкаЗапроса.Следующий() Цикл
Если ПроверкаВозможностиУдаления(ВыборкаЗапроса.Ссылка) Тогда
ТекОб = ВыборкаЗапроса.Ссылка.ПолучитьОбъект();
ТекОб.удалить();
КонецЕсли;
КолвоУд = КолвоУд + 1;
КонецЦикла;
Если КолвоУд > 0 Тогда
Сообщить("Видалено "+Имя +" " +Строка(КолвоУд));
КонецЕсли;
Возврат КолвоУд
КонецФункции
alex-l1904 @ Сегодня, 9:21
,
Несколько лет назад "тра...ся" с этой функцией несколько недель... На Инфостарте - большое обсуждение было...
Уже подробностей не помню, но кажется: хоть в СП пишут что 2, 3 и 4 параметры необязательные, но если использовать хотя бы один из них нужно объявлять ВСЕ... И не в самой функции...
Но так и не смог заставить её работать как мне нужно
Примерно так работало:
МассивИскомого = НОВЫЙ Массив;
МассивИскомого.Добавить(Объект.ЧтоИщем.Ссылка);
МассивГдеИщем = Новый Массив;
МассивГдеНеИщем = Новый Массив;
Для Каждого текГдеИщем Из Объект.ГдеИщем Цикл
Если текГдеИщем.Использовать Тогда
МассивГдеИщем.Добавить(Метаданные.НайтиПоПолномуИмени(текГдеИщем.ПолныйТип)); //Тип(СтрЗаменить(текГдеИщем.ПолныйТип,"ы.", "Ссылка."))
КонецЕсли; //Метаданные.НайтиПоПолномуИмени(текГдеИщем.ПолныйТип)
КонецЦикла;
Для Каждого текГдеНеИщем Из Объект.ГдеНеИщем Цикл
Если текГдеНеИщем.Использовать Тогда
МассивГдеНеИщем.Добавить(текГдеНеИщем.ПолныйТип);
КонецЕсли;
КонецЦикла;
МассивСсылок = НайтиПоСсылкам(МассивИскомого, Новый Массив, МассивГдеИщем, МассивГдеНеИщем);
Для Каждого текНайденный Из МассивСсылок Цикл
нсн = Объект.ЧтоНашли.Добавить();
Попытка
нсн.НайденнаяСсылка = текНайденный.Данные.Ссылка;
Исключение
нсн.НайденнаяСсылка = текНайденный.Данные;
КонецПопытки;
нсн.ТипНайденного = ТипЗнч(текНайденный.Данные);
КонецЦикла;
AnryMc @ Сегодня, 14:11
,
Так а в чем там проблема?
Вот этот код работает и возвращает массив объектов с которым связан "док"
Для Каждого док Из ТаблицаДокументов Цикл
Массив = Новый Массив;
Массив.Добавить(док.Документ);
ТабСсылок = НайтиПоСсылкам(Массив);
Если ТабСсылок.Количество() > 0 Тогда
док.Связан =Истина;
КонецЕсли;
КонецЦикла;
AnryMc @ Сегодня, 15:29
,
То есть, вам нужно задействовать необязательные параметры. Просто вы описали задачу. как необходимость удаления файла и проверки с чем он связан. Но оставшиеся параметры решают более конкретные задачи.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua