Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Отбор документов (http://forums.kuban.ru/f1040/otbor_dokumentov-2002888.html)

АдвокаТеда 27.12.2011 16:18

Отбор документов
 
Добрый день.
Столкнулся со следующей проблемой.
Бухгалтерия 7.7 (Платформа 027)
Необходимо для договоров (справочник "договоры") найти последний (по времени) документ (из некоторых типов), в котором он был задействован.
Делаю так:

Док = СоздатьОбъект("Документ");
Док.ВидыДляВыбора("ПоступлениеТоваров,ПоступлениеМатериалов,ПоступлениеОС");
Док.ОбратныйПорядок(1);
Если Док.ВыбратьДокументы()<>0 Тогда
Пока Док.ПолучитьДокумент() = 1 Цикл
Предупреждение(Док);
..
Обнаружил, что выборка происходит по всем документам базы, а не только по выбранным.
Хотя Синтаксис-Помощник пишет:
ВидыДляВыбора(<?>)
Установка выбираемых видов для объекта типа документ неопределенного вида.

Как правильно отобрать нужные типы документов?

roma n 27.12.2011 16:22

Для объектов, созданных функцией СоздатьОбъект, фильтр ВидыДляВыбора не работает. Увы
ЗЫ в контексте задачи - поменяй Пока на Если и Док - определенного вида

АдвокаТеда 28.12.2011 09:36

2-roma n > у меня 6 разных видов документов.
Это получается надо документы нужных видов все поочереди перебирать, а потом сравнивать даты, чтобы выбрать самую позднюю?

Uho 28.12.2011 09:49

3-АдвокаТеда > нет, это получается, надо выбирать все документы в обратном порядке и сравнивать виды, ну или выбрать по реквизиту (как там в 7.7?), если подойдет

Sadovnikov 28.12.2011 09:52

Select Top 1
IDDOC идДокумент
From
_1SJOURN (NoLock)
Where
IdDocDef In (...)
Order By
Date_Time_IDDOC Asc

АдвокаТеда 28.12.2011 13:17

4-Uho > придётся выбрать все документы и при переборе в обретном порядке выбрать первый из нужного мне вида.
А так хотелось отобрать только нужные и работать с ними..

5-Sadovnikov > выглядит круто, но ума мне на такое не хватает :)


Текущее время: 22:33. Часовой пояс GMT +3.