Имя: Пароль:
1C
1C 7.7
v7: Перебор документов в открытом журнале документов.
0 егаис
 
30.05.12
13:47
Блин, забывается 77 напроч.
Есть открытая форма журнала документов. Как перебрать документы с наложенными сотрудником отборами (интервал, вид)?
1 егаис
 
30.05.12
13:48
просто ВыборатьДокументы() , канает этот метод в журнале?
2 chief accountant
 
30.05.12
13:52
ТекстЗапроса="//{{ЗАПРОС(ЗапросПП)
   |Период с Дата1 по Дата2;
   |ОбрабатыватьДокументы все;
Вот пример:

   |Обрабатывать НеПомеченныеНаУдаление;
   |Без итогов;
   |ПлПор = Документ.ПлатежноеПоручение.ТекущийДокумент;
   |ЛицевойСчетПП = Документ.ПлатежноеПоручение.ЛицевойСчет;
   |ВыбраннаяФирмаПП = Документ.ПлатежноеПоручение.ВыбраннаяФирма;
   |КонтрагентПП = Документ.ПлатежноеПоручение.Контрагент;
   //|Группировка ПлПор;
   |Группировка ПлПор Упорядочить по ПлПор.ВыбраннаяФирма;
   |";//}}ЗАПРОС  
   Если ПустоеЗначение(ЛицевойСчет)=0 Тогда
       ТекстЗапроса=ТекстЗапроса+"    
       |Условие(ЛицевойСчетПП=ЛицевойСчет);";
   КонецЕсли;
3 viktor_vv
 
30.05.12
13:55
Нет.

Док = СоздатьОбъект("Документ.ВидДокумента");

Док.ВыбратьДокументы(НачалоИнтервала(),КонецИнтервала());


или (2).
4 егаис
 
30.05.12
13:55
это что?
Журнал "Материалы" в 77 включает несколько видов документов.
Смотри, сотрудник визуально открыл форму. Наложил отборы - поменял интервал, например. Мне нужно тупо для печати своего реестра перебрать эти документы в журнале.
5 chief accountant
 
30.05.12
13:56
(3) запрос быстрее
6 егаис
 
30.05.12
13:57
должно быть простое решение :)
или все же с метадананными заморачиваться придется?
7 chief accountant
 
30.05.12
13:57
(4) через расшифровку передавай условия отборов в отчет
8 viktor_vv
 
30.05.12
14:00
(6) ПолучитьОтбор() еще есть. (4) И "наложил отборЫ" наверное таки "наложил отбор".
9 егаис
 
30.05.12
14:04
вид журнала в отбор не входит.
надо метаданные курить
10 MaXpaT
 
30.05.12
14:05
никак стандартными методами
11 Zmich
 
30.05.12
14:08
Можно через ИспользоватьЖурнал(), если несколько видов в журнал входит. Условия проверять в цикле. Или если нужный реквизит - графа отбора, использовать метод Графа()
12 егаис
 
30.05.12
14:08
ясно, получитьотбор()+проверка вхождения в журнал через метаданные.
спасибо.
13 viktor_vv
 
30.05.12
14:10
(9) Объясни по-русски какой отбор накладывают пользователи ? По виду документа ?
14 егаис
 
30.05.12
14:11
(13) вид, контрагент.
15 chief accountant
 
30.05.12
14:12
(12) накуя получитьотбор, если ты просто формируешь отчет "Реестр документов"?
16 viktor_vv
 
30.05.12
14:13
А журнал какого вида ? Общий или дополнительный?
17 егаис
 
30.05.12
14:13
общий
18 егаис
 
30.05.12
14:13
(15) млять, как ты отпределишь отборы, наложенные пользователем?
19 егаис
 
30.05.12
14:14
Для х = 1 По Метаданные.Документ() Цикл
           ТекДок = Метаданные.Документ(Индекс);
           Если ((Строка(ТекДок.Журнал) = Метаданные.Журнал("Материалы").Представление()) или (Наименование = "Общий")) Тогда
типа так
20 егаис
 
30.05.12
14:17
кстати (11) норм решение
спасибо
21 viktor_vv
 
30.05.12
14:17
Док = СоздатьОбъект("Документ");

ИмяОтбора = "";
ЗначениеОтбора = "";
ПолучитьОтбор(ИмяОтбора,ЗначениеОтбора);

Если ИмяОтбора = "Контрагент" Тогда
  Док.ВыбратьПоЗначению(НачалоИнтервала(),КонецИнтервала(),ИмяОТбора,ЗначениеОтбора);

// ....
КонецЕсли ;
22 chief accountant
 
30.05.12
14:17
(18) допустим наложен отбор на вид дока - активная будет строка журнала с другим видом?
23 Ёпрст
 
30.05.12
14:50
(10) ошибаешься