8.х Форма документа

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем OIT, 19 сен 2008.

  1. TopicStarter Overlay
    OIT
    Offline

    OIT Опытный в 1С

    Регистрация:
    7 май 2007
    Сообщения:
    347
    Симпатии:
    0
    Баллы:
    26
    Код:
     Пользователь1=УправлениеПользователями.ОпределитьТекущегоПользователя();
    Пользователь2=Справочники.Пользователи.НайтиПоНаименованию("Расчетчик");
    ВыборкаДокументов=Документы.ДоговорЗаймаСРаботником.Выбрать(НачалоГода(ТекущаяДата()), КонецГода(ТекущаяДата()));
    Пока ВыборкаДокументов.Следующий() Цикл
    Если Пользователь1<>Пользователь2 и ВыборкаДокументов.Ответственный=Пользователь2 Тогда
    ЭлементыФормы.СуммаЗайма.Видимость=Ложь;
    Иначе
    ЭлементыФормы.СуммаЗайма.Видимость=Истина;
    КонецЕсли;
    КонецЦикла;
    
    В этом коде я пытаюсь сделать так, чтобы Пользователю1 в документах Пользователя2 СуммаЗайма не виделась а в своих была видна
    но получается так если я оставляю строку ЭлементыФормы.СуммаЗайма.Видимость=Истина;
    то во всех документах СуммаЗайма видна если убираю то ни у кого СуммаЗайма не видна
    как же сделать подскажите пожалуйста
    Спасибо
  2. opkc
    Offline

    opkc Опытный в 1С

    Регистрация:
    28 янв 2008
    Сообщения:
    149
    Симпатии:
    0
    Баллы:
    26
    попробуй в условии скобки расставить.

    З.Ы. хотя, похоже, один фиг. а сами формы документов у тебя когда выскакивают? ты их в цикле открываешь?
  3. aimax
    Offline

    aimax Опытный в 1С

    Регистрация:
    11 авг 2008
    Сообщения:
    63
    Симпатии:
    0
    Баллы:
    26
    СуммаЗайма - это элемент формы. После перебора он примет то значение "Видимость" которое получит в последней иттерации цикла. Он либо виден либо нет... Если открывать каждую форму то все будет нормально, в каждой форме будет либо виден "СуммаЗайма" либо нет. А если В одной форме назначать то останется последнее значение Видимость.
  4. LxS
    Offline

    LxS Разработчик

    Регистрация:
    5 апр 2007
    Сообщения:
    680
    Симпатии:
    0
    Баллы:
    26
    Эмм.. Могу я поинтересоваться, в какой процедуре этот..код используется?
  5. TopicStarter Overlay
    OIT
    Offline

    OIT Опытный в 1С

    Регистрация:
    7 май 2007
    Сообщения:
    347
    Симпатии:
    0
    Баллы:
    26
    Я этот код поставила в процедуру ПередОткрытием в модуле ФормаДокумента
    Я поняла что берется последнее значение в цикле
    но каким образом открыть форму каждого документа не известно ни количество
    ни дата и опять в цикле же открывать форму или иначе? я пробовала всячески не получалось
    подскажите пожалуйста
    Спасибо
  6. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Я так понял, что при открытии документа данный реквизит должен быть видим только для ответственного?
    Тогда надо написать условие:
    Код:
    Пользователь1=УправлениеПользователями.ОпределитьТекущегоПользователя();
    Если Пользователь1<>Ответственный Тогда
    ЭлементыФормы.СуммаЗайма.Видимость=Ложь;
    Иначе
    ЭлементыФормы.СуммаЗайма.Видимость=Истина;
    КонецЕсли;
    
    
    А зачем нужен цикл я вообще не понял
  7. LxS
    Offline

    LxS Разработчик

    Регистрация:
    5 апр 2007
    Сообщения:
    680
    Симпатии:
    0
    Баллы:
    26
    Поддерживаю.
    Можо укоротить код:
    Код:
    ТекПольз = глЗначениеПеременной("глТекущийПользователь")
    
  8. TopicStarter Overlay
    OIT
    Offline

    OIT Опытный в 1С

    Регистрация:
    7 май 2007
    Сообщения:
    347
    Симпатии:
    0
    Баллы:
    26
    Ответственный откуда берется?
    наверное он должен браться из документов а я как пользователь в своих документах вижу а у
    этого отвественного нет
    может я ошибаюсь но как же выбрать нужного ответственного?
    Спасибо
  9. LxS
    Offline

    LxS Разработчик

    Регистрация:
    5 апр 2007
    Сообщения:
    680
    Симпатии:
    0
    Баллы:
    26
    Сравнение можете поставить какое угодно.
    Главное, не путать пользователей и роли.
    Что в вашем случае есть "Расчетчик"? Роль или именно пользователь?
  10. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Какая хоть конфигурация? Вообще-то реквизит "Ответственный", в большинстве случаев, заполняется автоматически при создании нового документа, если у пользователя в настройках задан "основной ответственный".
  11. TopicStarter Overlay
    OIT
    Offline

    OIT Опытный в 1С

    Регистрация:
    7 май 2007
    Сообщения:
    347
    Симпатии:
    0
    Баллы:
    26
    Документы готовятся и главным бухгалтером и расчетчиком
    но расчетчик не должен видеть суммы главного бухгалтера
    Я пытаюсь в своем коде убрать цикл по перебору документов и заходить на нужный документ
    то есть вместо
    Пока ВыборкаДокументов.следующий() Цикл
    использовать
    Если ВыборкаДокументов.следующий()+к Тогда
    но при этом не знаю как это к связать с номером строки в переборе при каждом заходе в ФормуДокумента
    и как же все это сделать
    Спасибо за участие
  12. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Опишите, пожалуйста, что Вы вообще создаете. А то циклы какие-то, попытки от них уйти, привязывание строк...
    Если нужно ограничить видимость реквизита при открытии документа, то Вам уже написали как это сделать для пользователя.
    Можно также ограничить видимость по роли. Например,
    Код:
    ЭлементыФормы.СуммаЗайма.Видимость=РольДоступна("Бухгалтер");
    
    А так вообще непонятно, что Вы хотите сделать.
  13. TopicStarter Overlay
    OIT
    Offline

    OIT Опытный в 1С

    Регистрация:
    7 май 2007
    Сообщения:
    347
    Симпатии:
    0
    Баллы:
    26
    Все что вы предлагали я испробовала но в этой ситуации главный бухгалтер
    видит во всех документах это поле , а расчетчик не видит вообще это поле
    а надо чтобы расчетчик ходил по списку документов и видел это поле в своих документах
    и не видел в документах главного бухгалтера.
    Спасибо

Поделиться этой страницей