Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Програмное открытие журнала докумментов с отбором по периоду          
kostya77 Подменю пользователя
сообщение 12.09.23, 6:39
Сообщение #1

Завсегдатай
****
Группа: Пользователи
Сообщений: 140
Спасибо сказали: 5 раз
Рейтинг: 4

Добрый день. Подскажите. как передать в журнал документов период. эсть код

ЗначениеОтбора = Новый Структура("Проведен",ложь);            
ПараметрыОтбра = Новый Структура ("отбор",ЗначениеОтбора);    
ОткрытьФорму("ЖурналДокументов.ДокументыПродажи.ФормаСписка",ПараметрыОтбра);


по этому коду открываются непроведенные документы. Как передать период, чтобы журнал открывался с заданым периодом?

Сообщение отредактировал Vofka - 12.09.23, 7:50

AnryMc Подменю пользователя
сообщение 12.09.23, 13:47
Сообщение #2

Оратор
Иконка группы
Группа: Местный
Сообщений: 373
Спасибо сказали: 102 раз
Рейтинг: 103.6

kostya77 @ Сегодня, 7:39 * ,

Попробуйте через "ГруппаЭлементовОтбораКомпоновкиДанных" если список у вас не произвольный запрос

Пример:

Гр_Отбора = Список.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных")); 
Гр_Отбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИЛИ;
НовЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
НовЭлементОтбора.Родитель = Гр_Отбора;
НовЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПолеКомп_1");
НовЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;
НовЭлементОтбора.Использование = Истина;
НовЭлементОтбора.ПравоеЗначение = Знач_1;


С условием:
ДатаДокумента >= НачалоПериода И ДатаДокумента <= КонецПериода

P.S. Модно без группы а сразу "ЭлементОтбораКомпоновкиДанных" т.к. условие "И" для условий действует по умолчанию
Р.P.S. Правда нужно дописывать форму журнала (Смотреть переданные параметры ПриОткрытии)
P.P.P.S. Кто может - предложите лучше... Самому интересно стало.
Варианты:
- В цикле скрыть/удалить ненужное - непроизводительно
- "НайтиСтроки" - вид сравнения ТОЛЬКО =
- "ПостроительЗапроса"
Пример:
&НаСервере
Процедура ОтборВТЗНаСервере()
   ПостроительЗапр = Новый ПостроительЗапроса;
   ПостроительЗапр.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабЗнач);
   т_Отбор = ПостроительЗапр.Отбор.Добавить("Кол_1");
   т_Отбор.ВидСравнения = ВидСравнения.Больше;
   т_Отбор.Значение = 1000;
   т_Отбор.Использование = Истина;
   ПостроительЗапр.Выполнить();
   ТабРезультат = Построитель.Результат.Выгрузить();
КонецПроцедуры

- сдалать ДинамическийСписок на основе ПроизвольногоЗапроса (назначить его программно и задать текст и свои параметры)


Если есть БСП
мФорма = ОткрытьФорму("Справочник.Номенклатура.ФормаСписка");
    
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(мФорма.Список, "ПометкаУдаления", Истина, ВидСравненияКомпоновкиДанных.Равно, , Истина, РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Обычный, Новый УникальныйИдентификатор);


//Если нет БСП то используем велосипед

//Вызывающий код
мФорма = ОткрытьФорму("Справочник.Номенклатура.ФормаСписка");
УстановитьПользовательскийОтборДинамическогоСписка(мФорма.Список, "ПометкаУдаления", Ложь, ВидСравненияКомпоновкиДанных.Равно);
        

&НаКлиенте
Процедура УстановитьПользовательскийОтборДинамическогоСписка(Список, ИмяПоля, Значение, ВидСравнения);
    
    Для Каждого ЭлементОтбора Из Список.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы Цикл
        
        Если ТипЗнч(ЭлементОтбора) = Тип("ОтборКомпоновкиДанных") Тогда
            
            ПользовательскийОтбор = ЭлементОтбора.Элементы;
            
            НовыйЭлементОтбора = Неопределено;
            
            Для Каждого СуществующийЭлементОтбора Из ПользовательскийОтбор Цикл
                
                Если СуществующийЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ИмяПоля) Тогда
                    
                    НовыйЭлементОтбора = СуществующийЭлементОтбора;
                    
                     Прервать;
                    
                КонецЕсли;    
                    
            КонецЦикла;
            
            Если СуществующийЭлементОтбора = Неопределено Тогда
                
                НовыйЭлементОтбора = ПользовательскийОтбор.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
                
                НовыйЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ИмяПоля);
                
            КонецЕсли;
        
            НовыйЭлементОтбора.ВидСравнения = ВидСравнения;
            НовыйЭлементОтбора.Использование = Истина;
            НовыйЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Обычный;
            НовыйЭлементОтбора.ПравоеЗначение = Значение;            
            
        КонецЕсли;
        
    КонецЦикла;
    
КонецПроцедуры;




Сообщение отредактировал AnryMc - 12.09.23, 13:43

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 13.07.24, 18:15
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!