Найти документы, введенные на основании определенного документа
По теме из базы знаний
- "Недовоз" - что может быть проще...
- Всякие полезности
- Перенос данных и обмен из УТ 10.3 в УТ 11 / КА 2 / ERP 2. Переносятся документы, справочники и остатки
- Набор: Дополнительные обработки для конфигураций на БСП (УТ 11 и аналогов)
- Формирование цепочки документов (Реализация - Поступление - Реализация ..... - Поступление)
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) 1CLeXx, а если так?
ВыбратьПодчиненныеДокументы(<?>,,)
Синтаксис:
ВыбратьПодчиненныеДокументы(<Дата1>,<Дата2>,<Докум>)
Назначение:
Открыть выборку документов, подчиненных заданному, в интервале дат.
Возвращает:
1 - если действие выполнено и в выборке есть хотя бы один документ;
0 - если действие не выполнено или в выборке нет ни одного документа.
Параметры:
<Дата1> - дата, документ или позиция начала выборки документов. Если данный параметр опущен, то выборка начинается с самого первого существующего в системе документа.
<Дата2> - дата, документ или позиция конца выборки документов. Если данный параметр опущен, то выборка заканчивается самым последним существующим в системе документом.
<Докум> - документ, подчиненные которому будут включаться в выборку.
Замечание:
Метод можно использовать только для объектов, созданных функцией СоздатьОбъект.
ВыбратьПодчиненныеДокументы(<?>,,)
Синтаксис:
ВыбратьПодчиненныеДокументы(<Дата1>,<Дата2>,<Докум>)
Назначение:
Открыть выборку документов, подчиненных заданному, в интервале дат.
Возвращает:
1 - если действие выполнено и в выборке есть хотя бы один документ;
0 - если действие не выполнено или в выборке нет ни одного документа.
Параметры:
<Дата1> - дата, документ или позиция начала выборки документов. Если данный параметр опущен, то выборка начинается с самого первого существующего в системе документа.
<Дата2> - дата, документ или позиция конца выборки документов. Если данный параметр опущен, то выборка заканчивается самым последним существующим в системе документом.
<Докум> - документ, подчиненные которому будут включаться в выборку.
Замечание:
Метод можно использовать только для объектов, созданных функцией СоздатьОбъект.
(4) valval, В общем случае эта задача решаема как пример через механизм поиска ссылок на объект (долго но верно).
В данном случае поиск через подчиненные документы дадут результат если в веденном на основании документе есть ссылка на родительский документ, и если эта ссылка не помещена в реквизит типа "неопределено" (кажется).
В данном случае поиск через подчиненные документы дадут результат если в веденном на основании документе есть ссылка на родительский документ, и если эта ссылка не помещена в реквизит типа "неопределено" (кажется).
+11 Чтобы найти подчиненные документы, не обязательно писать код. Есть стандартные
Меню - Действия - Подчиненные документы
или
Кнопка Действия - Структура подчиненности
SORRY, сейчас прочитал первый пост - там без кода не обойтись.Тогда лучший вариант - предложенный в (2).
Только, возможно, придется дополнительно отсеять шелуху примерно так:
Меню - Действия - Подчиненные документы
или
Кнопка Действия - Структура подчиненности
SORRY, сейчас прочитал первый пост - там без кода не обойтись.Тогда лучший вариант - предложенный в (2).
Только, возможно, придется дополнительно отсеять шелуху примерно так:
СЗВидов = СоздатьОбъект("СписокЗначений");
СЗДоков = СоздатьОбъект("СписокЗначений");
ИсходныйДок = СоздатьОбъект("Документ.НужныйВидДокумента");
ИсходныйДок.НайтиПоНомеру(НужныйНомер, НужнаяДата);
Для Сч = 1 По Метаданные.Документ("НужныйВидДокумента").ВводимыеНаОснованииДокументы.Количество() Цикл
СЗВидов.ДобавитьЗначение(Метаданные.Документ("НужныйВидДокумента").ВводимыеНаОснованииДокументы.Получить(Сч).Идентификатор);
КонецЦикла;
Док = СоздатьОбъект("Документ");
Док.ВыбратьПодчиненныеДокументы(,,ИсходныйДок.ТекущийДокумент());
Пока Док.ПолучитьДокумент()=1 Цикл
Если СЗВидов.НайтиЗначение(Док.Вид())=0 Тогда
Продолжить
КонецЕсли;
СЗДоков.ДобавитьЗначение(Док.ТекущийДокумент());
КонецЦикла;
Показать
независимо от типа реквизита, он может быть и не только "неопределенно", а вполне конкретного вида документа, НО однозначно, присоединяюсь к Ягг, выборка сработает только при наличии реквизита (в подчиненных документах), в котором выбран документ, в противном случае - связи нет никакой.
на всякий случай оставлю это здесь (для УПП 1.3)
// Выполняем запрос к виртуальной таблице критерия отбора "СвязанныеДокументы" с отбором по документу основания
Запрос2 = Новый Запрос;
Запрос2.Текст =
"ВЫБРАТЬ
| СвязанныеДокументы.Ссылка
|ИЗ
| КритерийОтбора.СвязанныеДокументы(&Документ) КАК СвязанныеДокументы
|ГДЕ
| СвязанныеДокументы.Ссылка.Проведен";
Запрос2.УстановитьПараметр("Документ", ВыборкаДетальныеЗаписи.Ссылка);
Результат = Запрос2.Выполнить();
Если НЕ Результат.Пустой() Тогда
Сообщить("На основании документа имеются проведенные документы! "+ВыборкаДетальныеЗаписи.Ссылка);
//Отказ = Истина;
ВыборкаДетальныеЗаписи2 = Результат.Выбрать();
Пока ВыборкаДетальныеЗаписи2.Следующий() Цикл
Сообщить(ВыборкаДетальныеЗаписи2.Ссылка);
КонецЦикла;
КонецЕсли;
Показать
я так сделала:
док=ЭтотОбъект;
УстЦен=Документы.УстановкаЦенНоменклатуры.Выбрать();
Пока УстЦен.Следующий()Цикл
Если УстЦен.ДокументОснование=док.Ссылка Тогда
Если УстЦен.ПометкаУдаления Тогда
продолжить
Иначе
дУстЦен=УстЦен.ПолучитьОбъект();
дУстЦен.Записать(РежимЗаписиДокумента.ОтменаПроведения);
дУстЦен.УстановитьПометкуУдаления(Истина);
Сообщить("Удален документ Установка Цен № "+дУстЦен.Номер+" от "+дУстЦен.Дата+" ,введенный на основании данной Приходной");
КонецЕсли;
КонецЕсли;
КонецЦикла;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот