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

Форум 1С: Одинэс.Ру

Найти!

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

YAndrey
20.02.2009 - 03:02
Цель - определить сумму документов в открытом журнале (форме списка)? Как сие сделать программно?
К списку тем К списку форумов

Интересные темы

odines.ru
21.11.2024 - 16:07
Смотри также:
Как наладить учет производства в 1С 8.1?
запуск 1с 8.1
История выпуска релизов 1С

Re: V8 Как в открытом журнале документов перебрать все документы?

lalex23
1 - 20.02.2009 - 04:30
па кнопке.. определить что за журнал, по метаданным собрать виды документов, определить отборы, период и запросом...

Re: V8 Как в открытом журнале документов перебрать все документы?

lalex23
2 - 20.02.2009 - 04:31
+ форме списка с видом документа проще

Re: V8 Как в открытом журнале документов перебрать все документы?

YAndrey
3 - 20.02.2009 - 04:39
(2)Спасибо, конечно - будьте бобры, кусочек кода - а то что-то от многообразия методов глаза разбегаются :(

Re: V8 Как в открытом журнале документов перебрать все документы?

lalex23
4 - 20.02.2009 - 05:54
примерно так:
ВидДокумента = СтрЗаменить(ЭлементыФормы.Список.Значение,"ДокументСписок.","");
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
               | СУММА(Документ." + ПоказательСуммы + ") КАК Сумма
               |ИЗ
               | Документ." + ВидДокумента + " КАК Документ";
 
УсловиеЗапроса = "";
Для Каждого ЭлементОтбора Из ЭлементыФормы.Список.Значение.Отбор Цикл
Если Не ЭлементОтбора.Использование Тогда
Продолжить;
КонецЕсли;
 
Если ЭлементОтбора.Имя = "Дата" или ЭлементОтбора.Имя = "Номер" или ОбщегоНазначения.ЕстьРеквизитДокумента(ЭлементОтбора.Имя,Метаданные.Документы[ВидДокумента]) Тогда
Если УсловиеЗапроса = "" Тогда
УсловиеЗапроса = " ГДЕ ";
Иначе
УсловиеЗапроса = УсловиеЗапроса + " и ";
КонецЕсли;
Если ЭлементОтбора.ВидСравнения = ВидСравнения.Интервал или
ЭлементОтбора.ВидСравнения = ВидСравнения.ИнтервалВключаяГраницы или
ЭлементОтбора.ВидСравнения = ВидСравнения.ИнтервалВключаяОкончание или
ЭлементОтбора.ВидСравнения = ВидСравнения.ИнтервалВключаяНачало Тогда
Запрос.УстановитьПараметр(ЭлементОтбора.Имя + "С",ЭлементОтбора.ЗначениеС);
Запрос.УстановитьПараметр(ЭлементОтбора.Имя + "По",ЭлементОтбора.ЗначениеПо);
УсловиеЗапроса = УсловиеЗапроса + "Документ." + ЭлементОтбора.Имя + " МЕЖДУ &" + ЭлементОтбора.Имя + "С" + " И &" + ЭлементОтбора.Имя + "По";
ИначеЕсли ЭлементОтбора.ВидСравнения = ВидСравнения.Больше Тогда
Запрос.УстановитьПараметр(ЭлементОтбора.Имя,ЭлементОтбора.Значение);
УсловиеЗапроса = УсловиеЗапроса + "Документ." + ЭлементОтбора.Имя + " > &" + ЭлементОтбора.Имя;
ИначеЕсли ЭлементОтбора.ВидСравнения = ВидСравнения.БольшеИлиРавно Тогда
Запрос.УстановитьПараметр(ЭлементОтбора.Имя,ЭлементОтбора.Значение);
УсловиеЗапроса = УсловиеЗапроса + "Документ." + ЭлементОтбора.Имя + " >= &" + ЭлементОтбора.Имя;
ИначеЕсли ЭлементОтбора.ВидСравнения = ВидСравнения.Меньше Тогда
Запрос.УстановитьПараметр(ЭлементОтбора.Имя,ЭлементОтбора.Значение);
УсловиеЗапроса = УсловиеЗапроса + "Документ." + ЭлементОтбора.Имя + " < &" + ЭлементОтбора.Имя;
ИначеЕсли ЭлементОтбора.ВидСравнения = ВидСравнения.МеньшеИлиРавно Тогда
Запрос.УстановитьПараметр(ЭлементОтбора.Имя,ЭлементОтбора.Значение);
УсловиеЗапроса = УсловиеЗапроса + "Документ." + ЭлементОтбора.Имя + " >= &" + ЭлементОтбора.Имя;
ИначеЕсли ЭлементОтбора.ВидСравнения = ВидСравнения.ВСписке Тогда
Запрос.УстановитьПараметр(ЭлементОтбора.Имя,ЭлементОтбора.Значение);
УсловиеЗапроса = УсловиеЗапроса + "Документ." + ЭлементОтбора.Имя + " В &" + ЭлементОтбора.Имя;
ИначеЕсли ЭлементОтбора.ВидСравнения = ВидСравнения.Равно Тогда
Запрос.УстановитьПараметр(ЭлементОтбора.Имя,ЭлементОтбора.Значение);
УсловиеЗапроса = УсловиеЗапроса + "Документ." + ЭлементОтбора.Имя + " = &" + ЭлементОтбора.Имя;
ИначеЕсли ЭлементОтбора.ВидСравнения = ВидСравнения.НеРавно Тогда
Запрос.УстановитьПараметр(ЭлементОтбора.Имя,ЭлементОтбора.Значение);
УсловиеЗапроса = УсловиеЗапроса + "Документ." + ЭлементОтбора.Имя + " <> &" + ЭлементОтбора.Имя;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Запрос.Текст = Запрос.Текст + УсловиеЗапроса;
Рез = Запрос.Выполнить().Выгрузить();
Сообщить(Рез[0].Сумма);

Дорисуешь остальные условия сам..

Re: V8 Как в открытом журнале документов перебрать все документы?

angro
5 - 20.02.2009 - 05:56
а через построитель и источник данных не получится?

Интересные темы

odines.ru
21.11.2024 - 16:07
Смотри также:
Ошибка в запросе
Д л я ч а й н и к о в ! ! !
v8:Торговое оборудование, как научиться

Re: V8 Как в открытом журнале документов перебрать все документы?

lalex23
6 - 20.02.2009 - 05:56
(5) х.з. не пришла такая мысль..

Re: V8 Как в открытом журнале документов перебрать все документы?

coder1cv8
7 - 20.02.2009 - 06:16
Зачем так все усложнять? )
Читаем: http://infostart.ru/blogs/306/

Re: V8 Как в открытом журнале документов перебрать все документы?

lalex23
8 - 20.02.2009 - 06:26
(7) ну да, проще - не придумалось :)
К списку тем К списку форумов

Добавить новое сообщение

Ваше имя:
Тема сообщения:
Сообщение:
« v8: Правила обмена сравнить, изменить как? 1С 8.1 как проще из одной таблицы получить другую форму таблицы »
© 2009 Форум 1С: Одинэс.Ру