7.7 Поле со списком

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем igorekkrav, 6 июн 2011.

  1. TopicStarter Overlay
    igorekkrav
    Offline

    igorekkrav Опытный в 1С

    Регистрация:
    29 апр 2010
    Сообщения:
    223
    Симпатии:
    0
    Баллы:
    26
    Подскажите пожалуйста. Возможно ли сделать поле со списком следующим образом. Сделать 3 реквизита в нем (юр.лицо, физ.лицо , ИП) При выборе убираются не нужные поля в форме. Скриншот ниже .


    Код:
    Процедура ПриОткрытии();  
    Список.ДобавитьЗначение("ЮрЛицо");
    Список.ДобавитьЗначение("ИП");     
    Список.ДобавитьЗначение("ФизЛицо");
    КонецПроцедуры;
    
    и 2ое почему то могу выбрать только ЮрЛицо.

    Вложения:

    • форма.jpg
      форма.jpg
      Размер файла:
      232,4 КБ
      Просмотров:
      152
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    1) При редактировании поле со списком нужно расширить вниз (обозначить границы "выпадения")
    2) Напишите процедуру регулилующую видимость реквизитов формы и добавьте ее в поле формула ревизита списка
  3. TopicStarter Overlay
    igorekkrav
    Offline

    igorekkrav Опытный в 1С

    Регистрация:
    29 апр 2010
    Сообщения:
    223
    Симпатии:
    0
    Баллы:
    26
    ок спасибо!!!
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    + не забудь добавить вызов процедуры регулировки видимости реквизитов формы в процедуру ПриОткрытии()
  5. TopicStarter Overlay
    igorekkrav
    Offline

    igorekkrav Опытный в 1С

    Регистрация:
    29 апр 2010
    Сообщения:
    223
    Симпатии:
    0
    Баллы:
    26
    ок!!!!
  6. TopicStarter Overlay
    igorekkrav
    Offline

    igorekkrav Опытный в 1С

    Регистрация:
    29 апр 2010
    Сообщения:
    223
    Симпатии:
    0
    Баллы:
    26
    1)Все получилось.
    2) А во втором не пойму как получить значения которое я выбираю в форме.

    Код:
    Процедура Видимость();
    Если Список.ПолучитьЗначение(1) ="ЮрЛицо" Тогда       
    Сообщить("Юр лицо ");	
    КонецЕсли;   
    КонецПроцедуры
    
    
    
    /////////////////////////////////////////////////////////////
    //***********************************************************
    // Процедура ПриОткрытии()
    //
    Процедура ПриОткрытии();  
    Список.ДобавитьЗначение(1,"ЮрЛицо");
    Список.ДобавитьЗначение(2,"ИП");     
    Список.ДобавитьЗначение(3,"ФизЛицо");
    Видимость(); 
    КонецПроцедуры
    
  7. TopicStarter Overlay
    igorekkrav
    Offline

    igorekkrav Опытный в 1С

    Регистрация:
    29 апр 2010
    Сообщения:
    223
    Симпатии:
    0
    Баллы:
    26
    Код:
    Процедура Видимость();   
    ТекЗн=Список.ПолучитьЗначение(Список.ТекущаяСтрока()); 
    Сообщить(""+ТекЗн+"");	
    КонецПроцедуры
    
    
    
    /////////////////////////////////////////////////////////////
    //***********************************************************
    // Процедура ПриОткрытии()
    //
    Процедура ПриОткрытии();  
    Список.ДобавитьЗначение("ЮрЛицо");
    Список.ДобавитьЗначение("ИП");     
    Список.ДобавитьЗначение("ФизЛицо");
    Видимость();       
    КонецПроцедуры        
    
    Пишет ошибку на начальное значение. Потом все получает

    ТекЗн=Список.ПолучитьЗначение(Список.ТекущаяСтрока());
    {Справочник.ЮрЛицаКлиентов.Форма.Модуль(16)}: Индекс не входит в границы списка значений.
  8. TopicStarter Overlay
    igorekkrav
    Offline

    igorekkrav Опытный в 1С

    Регистрация:
    29 апр 2010
    Сообщения:
    223
    Симпатии:
    0
    Баллы:
    26
    Код:
    Процедура Видимость();   
    ТекЗн=Список.ПолучитьЗначение(Список.ТекущаяСтрока()); 
    Сообщить(""+ТекЗн+"");	
    КонецПроцедуры
    
    
    
    /////////////////////////////////////////////////////////////
    //***********************************************************
    // Процедура ПриОткрытии()
    //
    Процедура ПриОткрытии();  
    Список.ДобавитьЗначение("ЮрЛицо");
    Список.ДобавитьЗначение("ИП");     
    Список.ДобавитьЗначение("ФизЛицо");
    Видимость();       
    КонецПроцедуры        
    
    Пишет ошибку на начальное значение. Потом все получает

    ТекЗн=Список.ПолучитьЗначение(Список.ТекущаяСтрока());
    {Справочник.ЮрЛицаКлиентов.Форма.Модуль(16)}: Индекс не входит в границы списка значений.
  9. Хряк
    Offline

    Хряк Профессионал в 1С

    Регистрация:
    26 сен 2007
    Сообщения:
    1.447
    Симпатии:
    37
    Баллы:
    54
    ну, дык установи ея перед видимостью
    Список.ТекущаяСтрока(1);
    Видимость();
  10. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Установка позиции элемента в списке ДО работы с ним. По умолчанию позиция=0
  11. TopicStarter Overlay
    igorekkrav
    Offline

    igorekkrav Опытный в 1С

    Регистрация:
    29 апр 2010
    Сообщения:
    223
    Симпатии:
    0
    Баллы:
    26
    Спасибо большое все получилось!!! Возник вопросик еще один. А как можно сохранить значение (поле со списком) после записи?! Чтобы при открытии оно отображалось в соответствии с сохранением. Я так понимаю нужно реквизит делать под него?
  12. Хряк
    Offline

    Хряк Профессионал в 1С

    Регистрация:
    26 сен 2007
    Сообщения:
    1.447
    Симпатии:
    37
    Баллы:
    54
  13. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Совершенно не обязательно.
    Если нужно хранить настройки для КАЖДОГО пользователя персонально используем
    Код:
    Процедура ПриЗакрытии()
    СохранитьЗначение("Список",Список.ТекущаяСтрока());
    КонецПроцедуры
    
    
    иначе (для всех одинаково)
    Код:
    Процедура ПриЗакрытии()
    ЗначениеВФайл(КаталогИБ+"\ExtForms\Список",Список.ТекущаяСтрока());
    КонецПроцедуры
    
    
    восстановление в процедуре ПриОткрытии() сделайте по аналогии (в случе с файлом необходима проверка на наличие, а со значением проверка на пустое значение)
  14. TopicStarter Overlay
    igorekkrav
    Offline

    igorekkrav Опытный в 1С

    Регистрация:
    29 апр 2010
    Сообщения:
    223
    Симпатии:
    0
    Баллы:
    26
    Спасибо вроде разобрался!!!
    Теперь другая проблема

    Код:
    Процедура ПриОткрытии(); 
    Если Контрагент = "ФизЛицо"  Тогда
    Сообщить ("ok");
    КонецЕсли;
    КонецПроцедуры
    
    
    
    Контрагент реквизит справочника , поле строка .
    Само поле заполняется в процедуре
    Код:
    Процедура ПриЗаписи()
    ТекЗн=Список.ПолучитьЗначение(Список.ТекущаяСтрока()); 
    Контрагент = СокрЛП(ТекЗн);  
    КонецПроцедуры
    

    Почему-то не срабатывает Сообщить . Хотя реквизит контрагент не пустой!
  15. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Код:
    Процедура ПриОткрытии(); 
    Если СокрЛП(Контрагент) = "ФизЛицо"  Тогда
    Сообщить ("ok");
    КонецЕсли;
    КонецПроцедуры 
    
    
  16. TopicStarter Overlay
    igorekkrav
    Offline

    igorekkrav Опытный в 1С

    Регистрация:
    29 апр 2010
    Сообщения:
    223
    Симпатии:
    0
    Баллы:
    26
    Снова меня выручили!!! Спасибо. Блин все просто так оказалось ,а я голову ломаю:(
  17. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Вот в чем собака порылась.. 1с ВСЕГДА вернет реквизит дополненный пробелами до общей длины строки
  18. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    маленькое уточнение:

    справедливо для версии платформы до 8.0
  19. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    ... и для 7.7 тоже справедливо

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