Версия для печати темы (https://pro1c.org.ua/index.php?showtopic=4505)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 7.7 _ Отбор в журнале документов по пользователю

Автор: vaStar 19.08.11, 14:38

Есть такая проблемка: в 7.7 необходимо в журнале документов сделать так, чтобы несколько пользователей, которые работают с одним типом документа (Счет), видели только "свои" документы!

Автор: Ardi 19.08.11, 14:47

Создавать журнал с типом общий.
Создавать графу отбора "СчетАвтор". В графе указывать поле Автор счета.
Настраивать программный отбор в журнале.

Автор: vaStar 19.08.11, 16:29

Цитата(Ardi @ 19.08.11, 15:47) *
Создавать журнал с типом общий.
Создавать графу отбора "СчетАвтор". В графе указывать поле Автор счета.
Настраивать программный отбор в журнале.


1.Полный Журнал - имеет тип "общий".
2.Существуеет графа "Автор", куда пишется имя пользователя, кто создал документ.
3.Пробую через метод "УстановитьОтбор", чтобы отобрать документы, где указан конкретный "Автор" - но, видно, чего-то не так пишу в коде . . .

Автор: kalyamov 19.08.11, 16:37

Цитата(vaStar @ 19.08.11, 17:29) *
1.Полный Журнал - имеет тип "общий".
2.Существуеет графа "Автор", куда пишется имя пользователя, кто создал документ.
3.Пробую через метод "УстановитьОтбор", чтобы отобрать документы, где указан конкретный "Автор" - но, видно, чего-то не так пишу в коде . . .

А почему бы не написать, что именно пишите в коде ?

Автор: vaStar 19.08.11, 17:11

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

                Если Док.Выбран()>0 Тогда

                    Нач=?(Док.ДатаДок<НачалоИнтервала(), Док.ДатаДок, НачалоИнтервала());
                    Кон=?(КонецИнтервала()<Док.ДатаДок, Док.ДатаДок, КонецИнтервала());
                    
                    
                    Если (НачалоИнтервала()<>Нач) ИЛИ (КонецИнтервала()<>Кон) Тогда
                        УстановитьИнтервал(Нач, Кон);
                        
                                                Док1 = Пользователь;
                        УстановитьОтбор(Док.Автор,Док1);
                    КонецЕсли;              
                    

                    Попытка                          
                        АктивизироватьОбъект(Док);
                    Исключение КонецПопытки;    
                КонецЕсли;
                
            КонецЕсли;    
    КонецЕсли;      

КонецПроцедуры

Пользователь - глобальная переменная, задана в конфигураторе, Автор - кто создал документ.

П.С. Сори, пока не умею здесь выделять красиво программный код . . .

Автор: Ardi 19.08.11, 17:21

1. Кроме графы создавать отбор. (Или использовать общие реквизиты - что в данном случае не в тему)
2. Потом: УстановитьОтбор("ИмяОтбораВКавычках",Док1);

Автор: vaStar 19.08.11, 18:05

Цитата(Ardi @ 19.08.11, 18:21) *
1. Кроме графы создавать отбор. (Или использовать общие реквизиты - что в данном случае не в тему)
2. Потом: УстановитьОтбор("ИмяОтбораВКавычках",Док1);


а можно для с этого места по-подробнее . . . как для чайников!

Автор: kalyamov 19.08.11, 19:52

Цитата(vaStar @ 19.08.11, 18:11) *
            Док1 = Пользователь;
            УстановитьОтбор("Автор",Док1);

Пользователь - глобальная переменная, задана в конфигураторе, Автор - кто создал документ.


Может глПользователь ?

Автор: mister-x 20.08.11, 10:02

Цитата
Может глПользователь ?
це дивлячись яка конфа, в типовій бухії р.288 - таки Пользователь

Автор: Ardi 20.08.11, 11:57

Общие реквизиты в отбор не нужно добавлять. По ним отбор работает сразу.
И для отбора счет/автор общие не подходят.

Автор: kalyamov 20.08.11, 12:37

2.Существуеет графа "Автор"

Автор темы уже писал, что графа есть, проблема была только в синтаксисе, как и написал Ardi. Осталось узнать у автораsmile.gif или получился у него отбор ?

Автор: mister-x 20.08.11, 15:50

Цитата
Общие реквизиты в отбор не нужно добавлять. По ним отбор работает сразу.
поправка: такий відбір (по загальних реквізитах док-ту) працює тільки в повному журналі, якщо в загальному реквізиті док-ту на закладці Дополнительно стоїть флажок Отбор
Цитата
И для отбора счет/автор общие не подходят.
для даного випадку - маєте рацію

наступне не працює в журналі Счета:
Док1 = Пользователь;
            УстановитьОтбор("Автор",Док1);

потрібно створ. новий реквізит в док-ті Счет - СчетАвтор (тип такий же як у загального реквізиту Автор), тоді у док-ті Счет:
ПриЗаписи() чи краще ВводНового()
СчетАвтор = Пользователь;
...

Далі графа відбору СчетАвтор із док-ту Счет і тоді:
УстановитьОтбор("СчетАвтор",Пользователь);

*********
Описане стосується конфігурації Бух. облік. В інших - по аналогії.
Автор, Ви забули вказати інформацію - правила п.5,6.

Автор: kalyamov 20.08.11, 16:22

Цитата(mister-x @ 20.08.11, 16:50) *
поправка: такий відбір (по загальних реквізитах док-ту) працює тільки в повному журналі, якщо в загальному реквізиті док-ту на закладці Дополнительно стоїть флажок Отбор

Бред! Вы пробовали ?

наступне не працює в журналі Счета:
Док1 = Пользователь;
            УстановитьОтбор("Автор",Док1);

потрібно створ. новий реквізит в док-ті Счет - СчетАвтор (тип такий же як у загального реквізиту Автор), тоді у док-ті Счет:
ПриЗаписи() чи краще ВводНового()
СчетАвтор = Пользователь;
...

Далі графа відбору СчетАвтор із док-ту Счет і тоді:
УстановитьОтбор("СчетАвтор",Пользователь);


Вам что - нечего делать ? Давайте создадим новой Журнал, новый реквизит ко всем документам и еще новую ИБ, чтоб не скучно было. smile.gif
Автор все написал, Ardi - указал на синтаксическую ошибку в коде, ждем ответа от автора темы, если он сюда еще заглядывает после такой "помощи"

Автор: mister-x 20.08.11, 16:41

По-перше, автор теми не озвучив свою конфігурацію: типова чи самописка - щоб не гадати, що там вже є створено . По-друге, змініть тон, - оскільки я з цього приводу озвучив свою думку і автор теми сам вибере, яку ідею йому втілювати в життя .
Читаємо правила - п.13 і чистимо офтоп. [це повідомлення і попередній, слідуючий офтоп видалити].

Автор: kalyamov 20.08.11, 16:45

Цитата(mister-x @ 20.08.11, 17:41) *
По-перше, автор теми не озвучив свою конфігурацію: типова чи самописка - щоб не гадати, що там вже є створено smile.gif. По-друге, змініть тон, - оскільки я з цього приводу озвучив свою думку і автор теми сам вибере, яку ідею йому втілювати в життя wink.gif.


По переменной Пользователь - Вы сами орпеделили конфигурацию, а тон я менять не намерен, так - как Вы непрочитав всю тему или еще чего то не дочитав пишете чушь. Как же так ? Зачем сбивать человека с толку ?

Автор: vaStar 22.08.11, 9:53

1.Вибачаюсь, що не вказав конфігурацію (перший раз все-таки пишу) - виправляюсь: типова (стандартна) "Бухгалтерский учет" для Украины.
2.Підравив тип в УстановитьОтбор - не працює!
3. Змінна "Автор" - це СправочникПользователи - вона пишеться у всіх документах.
4. Ввів новий реквізит СчетАвтор в документі Счет.
5.Записав УстановитьОтбор("СчетАвтор",Пользователь); в формі док-а Повного журналу
6. зробив декілька "свіжих" документів Счет - а відбір не працює. Всі документи так і є в Повному журналі!

Автор: kalyamov 22.08.11, 10:40

Цитата(vaStar @ 22.08.11, 10:53) *
1.Вибачаюсь, що не вказав конфігурацію (перший раз все-таки пишу) - виправляюсь: типова (стандартна) "Бухгалтерский учет" для Украины.
2.Підравив тип в УстановитьОтбор - не працює!
3. Змінна "Автор" - це СправочникПользователи - вона пишеться у всіх документах.
4. Ввів новий реквізит СчетАвтор в документі Счет.
5.Записав УстановитьОтбор("СчетАвтор",Пользователь); в формі док-а Повного журналу
6. зробив декілька "свіжих" документів Счет - а відбір не працює. Всі документи так і є в Повному журналі!


Попробуйте отладчиком - может до строки УстановитьОтбор оно и не доходит. Достаточно было подправить тип.

Процедура ПриОткрытии()
    Форма.Фирма.Видимость(глИспользуетсяРазделительУчета);
    Форма.кПравоваяПоддержка.Видимость(глВидимостьПравовойПоддержки);

    Если ПустоеЗначение(Форма.Параметр)=0 Тогда
        Если ВРег(ТипЗначенияСтр(Форма.Параметр))="ДОКУМЕНТ" Тогда
            // в качестве параметра был передан документ, спозиционируемся на него
            Док = Форма.Параметр.ТекущийДокумент();
            Если Док.Выбран()>0 Тогда
                Нач=?(Док.ДатаДок<НачалоИнтервала(), Док.ДатаДок, НачалоИнтервала());
                Кон=?(КонецИнтервала()<Док.ДатаДок, Док.ДатаДок, КонецИнтервала());
                
                Если (НачалоИнтервала()<>Нач) ИЛИ (КонецИнтервала()<>Кон) Тогда
                    УстановитьИнтервал(Нач, Кон);
                КонецЕсли;              
                
                Попытка
                    АктивизироватьОбъект(Док);
                Исключение КонецПопытки;    
            КонецЕсли;
        КонецЕсли;    
    КонецЕсли;
    УстановитьОтбор("новый1",Пользователь);
КонецПроцедуры

Вот фрагмент кода из Вашей конфигурации, только отбор я вынес за условие. "Новый1" - это графа отбора с указателем на общий реквизит документов "Автор". Все работает.

Автор: vaStar 22.08.11, 12:02

Пож., как для начинающего - что должно біть вместо "Новій1"?

Автор: mister-x 22.08.11, 12:09

потрібно створити нову графу відбору

Цитата
с указателем на общий реквизит документов "Автор"
і так її назвати

Автор: vaStar 22.08.11, 12:17

нову графу відбору де? в Повному журналі? і чим вона буде відрізнятись від стандартної "Автор"?

Автор: mister-x 22.08.11, 12:22

давайте уточнимо задачу: вам потрібно зробити відбір тільки по документу Счет (Счет-фактура) із необхідним автором цього документу чи відбір взагалі всіх документів із необхідним автором?

+

Цитата
необходимо в журнале документов сделать так
в якому саме журналі документів?

Автор: kalyamov 22.08.11, 12:22

Цитата(vaStar @ 22.08.11, 13:17) *
нову графу відбору де? в Повному журналі? і чим вона буде відрізнятись від стандартної "Автор"?


У меня в стандартном 288 релизе графы "Автор" не было, поэтому я добавил новую, не меняя названия. У Вас, как я понял, такая графа есть, вот ее и используйте.

Автор: vaStar 22.08.11, 14:23

Дякую всім за підтримку! Проблему вирішили. правда, трохи іншим шляхом. Виявилось, що конфа, де це треба було реалізувати, трохи інша, ніж мені дали - і там все реалізувалось!

Автор: Vofka 23.08.11, 7:00

Цитата
Виявилось, що конфа, де це треба було реалізувати, трохи інша

faceoff.gif

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua