Вход | Регистрация

1С:Предприятие ::

Метки:

В каких случаях работает кнопка отбор по колонке

Я
   Сергей
 
30.01.04 - 14:22
Всем привет.
Кто может откликнитесь, срочно!!!

Ситуация такая (Торговля и Склад). Общий журнал документов, ручной отбор можно проводить в любых разрезах, а вот ипользовать кнопку отбор по колонке можно не всегда. Не могу понять от чего это зависит.  
Проводить отбор требуется в свою очередь именно нажатием этой кнопки в крайнем случае возможно создание другой кнопки. При установе отбора по его определенному виду проблем не возникает, а вот создать универсальную кнопочку не получается :(

Заранее благодарен за любой намек.

P.S. Есть ли какой-нибудь метод позволяющий возвращать значение текущей ячейки общего журнала документов.
 
  Рекламное место пустует
   345
1 - 30.01.04 - 15:15
"текущей ячейки общего журнала документов" - ТекущийДокумент ... и если мне не отказывает память - без скобочек.... или со скобочками?

Что подразумевается под "Универсальной кнопкой" ? Ни фига не понял ... что работает, что не работает....

Вроде по отборам все декларированное в ЖКК работает ...
   Сергей
 
2 - 30.01.04 - 15:22
Задача такая.При установке курсора на любое значение в Журнале документов должен быть проведен отбор по этому значению путем нажатия одной кнопки, в идеале на эту роль подходит кнопка "отбор по колонке", но она не всегда активна. В этом собственно и проблема.
   345
3 - 30.01.04 - 17:17
на форму общего журнала положить кнопки с вызовами
соответствующих процедур.. и наслаждаться ...

Даю возможность организовать отбор
-по контрагенту из тек дока (если в нем есть Реквизит типа Справочник.Контаргенты в шапке дока
-по текущему доку
-по выбранному доку

не приведены процедуры отборов, дающих прикольный вид журнала....

не приведена процедура отбора по контрагенту с выбором контрагента из списка

В конфе Должен быть отбор "Контрагент".....


общая процедура - на нее есть ссылки в процедурах
она же - отмена отборов журнале
кнопка с формулой ОтменаОтборов()
//==============================================

//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//\\\\\\\   ОтменаОтборов                \\\\\\\

//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//==============================================

procedure ОтменаОтборов()
    if CurrentDocument.Selected() = 1 then 
        тд = CurrentDocument; 
        SetSelection("", );
        ЗакладкиОтбора ("",1, ,);
        ActivateObj(тд);
    else                         
        SetSelection("", );
        ЗакладкиОтбора ("",1, ,);
    endIf;
        
EndProcedure //ОтменаОтборов





Кнопка С формулой ОтборПоДокументуСВыбором
//====================================

//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//\\\\\\\   ОтборПоДокументуСВыбором                \\

//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//======================================

procedure ОтборПоДокументуСВыбором()
    СД = CreateObject("ValueList");
    for Ин = 1 to Metadata.Document() do
        if AccessRight("Чтение","Document."+Metadata.Document(Ин).Identifier) <> 1 then Continue; endIf; 
        ИмяДока = Metadata.Document(Ин).Identifier;
        СД.AddValue(ИмяДока,ИмяДока);
    endDo;
                                              
   //---------------------------------------------

   // выберем из списка

   //----------------------------------------------

    СД.SortByPresent (0); 
    Выбор = "";
    НомПозиции = 0;
    if СД.ChooseValue(Выбор,"Документ",НомПозиции, ,1) =1 then
        тд = CurrentDocument;
        ОтменаОтборов();
        try SetSelection(Выбор); 
            ActivateObj(тд);
        except 
        endTry;    
        return;
    else
        return;
    endIf; 
    
EndProcedure //ОтборПоДокументуСВыбором




кнопка с формулой   ОтборПоДокументу()


procedure ОтборПоДокументу()                              
    if CurrentDocument.Selected() <> 1 then return; endIf;
    тд = CurrentDocument;
    ОтменаОтборов();
    try//тд = CurrentDocument;

        тв = тд.Kind();
        SetSelection(тв); 
        ActivateObj(тд);
    except 
    endTry;    
EndProcedure 



кнопка с формулой ОтборПоКонтрагенту()  
//==================================================

//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//\\\\\\\   ОтборПоКонтрагенту     \\\\\\\\\\\\\\\\\

//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//==================================================

procedure ОтборПоКонтрагенту()  
        if CurrentDocument.Selected() <> 1 then return; endIf;  
   
   if Metadata.SelectionColumn("Контрагент").Selected() <> 1 then return;endIf;
    
    КонтрикЕст = 0;
    ИмяПридурка = "";
    
    for Ин = 1 to Metadata.Document(CurrentDocument.Kind()).HeadAttribute()  do
        if Metadata.Document(CurrentDocument.Kind()).HeadAttribute(Ин).тип= "Справочник" then
            if Metadata.Document(CurrentDocument.Kind()).HeadAttribute(Ин).Kind = "Контрагенты" then
                имяПридурка = Metadata.Document(CurrentDocument.Kind()).HeadAttribute(Ин).Identifier;
                КонтрикЕст  = 1;
                Break; 
            endIf; 
        endIf; 
    endDo;
          
   if КонтрикЕст  <> 1 then return; endIf;
   if CurrentDocument.GetAttrib(ИмяПридурка).Selected() <> 1 then return;endIf;
   

    тд = CurrentDocument;
    
    ОтменаОтборов();
    К=тд.GetAttrib(ИмяПридурка);
        SetSelection("Контрагент", К); 
        ActivateObj(тд);

EndProcedure //ОтборПоКонтрагенту
   Дмитрий
4 - 31.01.04 - 03:06
Задача такая.При установке курсора на любое значение в Журнале документов должен быть проведен отбор по этому значению путем нажатия одной кнопки, в идеале на эту роль подходит кнопка "отбор по колонке", но она не всегда активна. В этом собственно и проблема.
-Она активно только для колонок, по которым можно провести отбор. Это либо общие реквизиты документов, либо реквизиты, входящие в определенные в конфигураторе графы отбора.


Список тем форума
  Рекламное место пустует
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Э. Йодан
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует