0 / 0 / 0
Регистрация: 07.03.2010
Сообщений: 154
1

Фильтры На Журнал Документов 1с77

17.01.2012, 15:22. Показов 17502. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Есть вопрос по фильрации общего журнала. Есть Графа отбора "ФакультетДляОтбора" которая включает два разных документа. Есть общий журнал, в котором стоит отбор по этой графе (ФакультетАдмин - элемент формы, по которому фильтруют данные):

Код
Если ФакультетАдмин.Выбран()>0 Тогда
УстановитьОтбор("ФакультетДляОтбора", ФакультетАдмин);
ФакультетАдминДляОтбора = ФакультетАдмин;
Иначе
УстановитьОтбор("");
КонецЕсли;
Но возникла такая ситуация, что в данный общий журнал надо добавить закладки и на каждой закладке фильтровать не только по факультету, но и по виду документа, т.е. на каждой вкладке виден документ определенного вида. Вид см. на рисунке.
Насколько я понимаю дважды УстановитьОтбор использовать нельзя. Может кто подскажет, как можно решить этот вопрос штатными средствами 1С без ВК и т.п.?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.01.2012, 15:22
Ответы с готовыми решениями:

Удаление документов 1с77
Понадобилось удалить тучу документов в базе ТиС 8.7 (около 500.000). Зачем - не спрашивайте,...

журнал документов
Доброго времени суток. Простите за такой простой вопрос, но может кто знает, нельзя ли в 1с 8 при...

журнал документов
как создать внешний журнал документов и новые документы в нем (тоже внешние). а также удаление....

Журнал документов + ТЗ
Всем Хай. В академических целях интересует: Возможно ли в Фоме Журнала документов оганизовать...

6
1 / 1 / 0
Регистрация: 15.11.2009
Сообщений: 947
18.01.2012, 13:39 2
Я делал. Но трудно это. Можно решить только с таким условие: набор закладок фиксированн.
Тогда
1. закладки создаются не ЗакладкиОтбора(), а вручную

Код ( (Unknown Language)):
ЗакладкиОтбора("", 1);
Форма.ИспользоватьЗакладки(1);
Форма.Закладки.УдалитьВсе();
Для ТекНом = 1 По КоличествоЗакладок Цикл
Форма.Закладки.ДобавитьЗначение(ИмяЗакладки);
КонецЦикла;
где ИмяЗакладки например = Вид()

2. Потом
// Дополнительно отбор
Если ФакультетАдмин.Выбран() = 1 Тогда
УстановитьОтбор("ФакультетАдмин", Формат(Админ.Код, "Ч(0)5.0") +
Форма.Закладки.Получить(ОтборПоВиду));
Иначе
УстановитьОтбор("Факультет", ОтборПоВиду));
КонецЕсли;
0
0 / 0 / 0
Регистрация: 07.03.2010
Сообщений: 154
19.01.2012, 10:37 3
У меня есть несколько вопросиков:
1) КоличествоЗакладок я так понимаю это количество документов, которые я хочу, чтобы отображались как закладки. А как подсчитать это количество, если это общий журнал и мне нужно только два вида документов?
2)


// Дополнительно отбор
Если ФакультетАдмин.Выбран() = 1 Тогда
УстановитьОтбор("ФакультетАдмин", Формат(Админ.Код, "Ч(0)5.0") +
Форма.Закладки.Получить(ОтборПоВиду));
Здесь "ОтборПоВиду" что в нем храниться и где должно присваиваться значение этому отбору? Для чего здесь нужен Админ.Код и что за реквизит Админ, может вы имели ввиду ФакультетАдмин, т.е. код факультета использовать?


Иначе
УстановитьОтбор("Факультет", ОтборПоВиду));
КонецЕсли;
Здесь я так понимаю вы имели ввиду УстановитьОтбор("ФакультетАдмин", ОтборПоВиду));?
PS: извиняюсь за множество вопросов, просто хочется разобраться в этом вопросе)))
0
1 / 1 / 0
Регистрация: 15.11.2009
Сообщений: 947
19.01.2012, 14:58 4
Давайте еще раз:

* Краеугольный момент:
- В обоих документах создать Реквизит строка тип Строка который содержит буковки скомбинированные от
<БуковкаДокумента>+ Администратор.Код. И процедурой ПриЗаписи() их заполнять. Например: А001, Б003
- Создать в конф-ре Отбор "ФакультетАдмин" завязанный на этот реквизит. параметр "Отбирать пустные" - нет галочки

* При Открытии() Создали 2 закладки фиксированные.
Форма.ИспользоватьЗакладки(1);
Форма.Закладки.УдалитьВсе();
Форма.Закладки.ДобавитьЗначение("ВидДокаА", "Его красивое название");
Форма.Закладки.ДобавитьЗначение("ВидДокаБ", "Его красивое название");

* Создаем ПриВыбореЗакладки(НомерЗакладки, ЗначениеЗакладки). В ней
ВидДока = "";
Форма.Закладки.ПолучитьЗначение(НомерЗакладки, ВидДока);
ВидДока - получил значение вида дока. Например "ВидДокаА".
Программа устанавливает нужный отбор по виду дока. Это если не мешает Админ.
УстановитьОтбор(ОтборПоВиду);

А из-за него усложняем этот фрагмент:
Если Админ.Выбран() = 1 Тогда
ПоЧемОтбирать = Лев(ВидДока, 1) + Администратор.Код;
УстановитьОтбор("ФакультетАдмин", ПоЧемОтбирать);
Иначе
УстановитьОтбор(ОтборПоВиду);
КонецЕсли;

* А дальше совершенствуем:
- выделить этот фрагмент в отдельную процедуру и также вызывать после выбора Админ
- Не забыть вызвать при открытии.
- Отреагировать на изменение пользователем интервала:
Процедура ПриУстановкеИнтервала(ДатаНач,ДатаКон)
УстановитьИнтервал(ДатаНач, ДатаКон);
ВводВидОтбора();
КонецПроцедуры
0
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
19.01.2012, 16:12 5
Здорово !
Разовью идею для общего случая. Добавим Общий Реквизит типа, например,
АФ (код автора+код фирмы) и, как описано выше, получим отбор по сложному фильтру
0
0 / 0 / 0
Регистрация: 07.03.2010
Сообщений: 154
19.01.2012, 17:41 6
Спасибо большое за помощь. Ситуация прояснилась)

Только вот одно замечание:


При Открытии() Создали 2 закладки фиксированные.
Форма.ИспользоватьЗакладки(1);
Форма.Закладки.УдалитьВсе();
Форма.Закладки.ДобавитьЗначение("ВидДокаА", "Его красивое название");
Форма.Закладки.ДобавитьЗначение("ВидДокаБ", "Его красивое название");
* Создаем ПриВыбореЗакладки(НомерЗакладки, ЗначениеЗакладки). В ней
ВидДока = "";
Форма.Закладки.ПолучитьЗначение(НомерЗакладки, ВидДока);
ВидДока - получил значение вида дока. Например "ВидДокаА".
Форма.Закладки.ПолучитьЗначение(НомерЗакладки, ВидДока); - возвращает в ВидДока не "ВидДокаА", а "Его красивое название". Т.е. если назвать закладку совсем по-другому, чем называется сам документ, то фильтр не сработает (теряем первую букву), потому что ВидДока - "идентификатор переменной, в которой возвращается символьное представление получаемого значения". В такой ситуации я так понимаю, надо еще учитывать, как правильно назвать закладку, чтобы получить нужные символы для отбора.
0
1 / 1 / 0
Регистрация: 15.11.2009
Сообщений: 947
23.01.2012, 15:08 7
Таки, Да! Дядя неправильно написал параметры. Ну што тут скажишь?
Форма.Закладки.ПолучитьЗначение(НомерЗакладки, ВидДока);
Согласно описанию метода "ПолучитьЗначение()" во второй параметр заполнит представление.

Не будем дурить себе в голову! Напишем так:
ВидДока = Форма.Закладки.ПолучитьЗначение(НомерЗакладки,);
0
23.01.2012, 15:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.01.2012, 15:08
Помогаю со студенческими работами здесь

Журнал документов
Можно ли использовать журнал документов чтобы извлечь информацию с конкретного документа?

Журнал документов
Доброго времени суток! Помогите решить такую проблему. Есть два документа: договор и приложение...

Журнал документов и последовательность
всем привет. вопрос: что лучше сделать последовательность документов или журнал документов, для...

Вывести журнал документов на УФ
Всем привет. Подскажите или дайте примерчик. Есть обработка на 8.3 УФ, на неё необходимо вывести...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru