7.7 Выбор из списка

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем змейкин, 5 апр 2013.

  1. TopicStarter Overlay
    змейкин
    Offline

    змейкин Опытный в 1С

    Регистрация:
    25 мар 2013
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    Народ подскажите как при выборе из Списка таблицы значений опереленного элемента управлять видимостью реквизита формы Пробовал так:
    Код:
    Значение = сВидыОпераций.ПолучитьЗначение(сВидыОпераций.ТекущаяСтрока());
    Если Значение.Выбран()=1 Тогда
    Форма.Сотрудники.Видимость(0);
    КонецЕсли;
    
  2. web.num
    Offline

    web.num Опытный в 1С Команда форума

    Регистрация:
    6 окт 2011
    Сообщения:
    905
    Симпатии:
    4
    Баллы:
    29
    подробнее, что есть, что должно быть!?
  3. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Оформите как процедуру и вызывайте в поле "формула" свойства списка
  4. Vlan
    Offline

    Vlan Гость Гость

    Выбирается пользователем или программно? Тоже не понял.
    В вашем примере бы использовал метод НайтиЗначение(). Если найдено, то элемент формы скрыт.
  5. Vlan
    Offline

    Vlan Гость Гость

    Теперь понял: на форме список, и при выборе его значения меняется видимость. Смутил загадочный термин "Списка таблицы значений". :)
  6. TopicStarter Overlay
    змейкин
    Offline

    змейкин Опытный в 1С

    Регистрация:
    25 мар 2013
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    Нужно чтобы при выборе из Списка значений При выборе значения из списка менялась видимость реквизита формы Сотрудники То есть если
    Код:
    Процедура ПриОткрытии()			  
    ПриЗаписиПерепроводить(1);
    сВидыОпераций.ДобавитьЗначение("631,632","Оплата заказа поставщика");//если список значений спозиционирован на этом значении то реквизит формы  контрагенты невидим
    сВидыОпераций.ДобавитьЗначение("","Прочие операции");				
    сВидыОпераций.ДобавитьЗначение("3721,3722","Выдача денег под отчет");
    сВидыОпераций.ДобавитьЗначение("311,312,313,314","Сдача денег в банк");
    КонецПроцедуры
    
    Загнался с таблицей сори))))
  7. TopicStarter Overlay
    змейкин
    Offline

    змейкин Опытный в 1С

    Регистрация:
    25 мар 2013
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    Код я вверху правильно написал?мне его просто вставить в процедуры формы списка?
  8. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Правильно. я вам уже написал.
    1) Оформите код в виде процедуры
    2) На форме... Список... ПКМ... Свойства... Дополнительно... Формула... Вставьте вызов процедуры.

    Не знаю где у вас это... Если в документе или справочнике не забудьте добавить проверку в процедуру ПриОткрытии
  9. TopicStarter Overlay
    змейкин
    Offline

    змейкин Опытный в 1С

    Регистрация:
    25 мар 2013
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    все так сделал пишет:
    Код:
    Если Значение.Выбран()=1 Тогда
    {Документ.РасхКассовый.Форма.Модуль(35)}: Значение не представляет агрегатный объект (Выбран)
  10. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Ну значит полученное значение не является справочником, документом и т.д....
    Покажите как формируете список выбора
  11. TopicStarter Overlay
    змейкин
    Offline

    змейкин Опытный в 1С

    Регистрация:
    25 мар 2013
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    Код:
    //***********************************************************
    Процедура ИзмВидОперации()
    Значение = сВидыОпераций.ПолучитьЗначение(сВидыОпераций.ТекущаяСтрока());
    Позиция = Найти(Значение,",");
    Счет = СчетПоКоду(Сред(Значение,1,?(Позиция <> 0,Позиция-1,СтрДлина(Значение))));
    Выборка = сВидыОпераций.НайтиЗначение(сВидыОпераций.ТекущаяСтрока());//тут выборка
    Если Выборка.Выбран()=1 Тогда
    Форма.Сотрудники.Видимость(0);
    КонецЕсли;
    КонецПроцедуры
    //**********************************************************
    Процедура УстВидОперации()
    Для Инд = 1 по сВидыОпераций.РазмерСписка() Цикл
    Если Найти(сВидыОпераций.ПолучитьЗначение(Инд),Строка(Счет)) <> 0 Тогда
    сВидыОпераций.ТекущаяСтрока(Инд);
    Возврат;
    КонецЕсли;
    КонецЦикла;
    сВидыОпераций.ТекущаяСтрока(2);
    КонецПроцедуры
    //***********************************************************
    Процедура ВводНового(ПризнакКопирования)
    УстВидОперации();
    КонецПроцедуры
    Процедура ПриОткрытии()
    ПриЗаписиПерепроводить(1);
    сВидыОпераций.ДобавитьЗначение("","Прочие операции");
    сВидыОпераций.ДобавитьЗначение("631,632","Оплата заказа поставщика");			  
    сВидыОпераций.ДобавитьЗначение("3721,3722","Выдача денег под отчет");
    сВидыОпераций.ДобавитьЗначение("311,312,313,314","Сдача денег в банк");
    КонецПроцедуры
    
    Вот)
  12. Vlan
    Offline

    Vlan Гость Гость

    Делайте простое условие
    Если сВидыОпераций.НайтиЗначение(Нужное_значение) > 0 Тогда
    Форма.Сотрудники.Видимость(0);
    КонецЕсли;
  13. Vlan
    Offline

    Vlan Гость Гость

    Что-то я загнался. Не то
  14. TopicStarter Overlay
    змейкин
    Offline

    змейкин Опытный в 1С

    Регистрация:
    25 мар 2013
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    Найти значение пробовал не работает((
  15. Vlan
    Offline

    Vlan Гость Гость

    Еще раз можно мд-шник выложить? Я никак осмыслить не могу, как это сделано.
  16. Vlan
    Offline

    Vlan Гость Гость

    А если проверять, какая именно строка выбрана?

    Если сВидыОпераций.ТекущаяСтрока() = 2 Тогда
    Форма.Сотрудники.Видимость(0);
    КонецЕсли;
  17. TopicStarter Overlay
    змейкин
    Offline

    змейкин Опытный в 1С

    Регистрация:
    25 мар 2013
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    Мд) http://us.ua/1084197/
  18. Vlan
    Offline

    Vlan Гость Гость

    Ага. Работает. Только дополнить надо
    Код:
    Иначе
    Форма.Сотрудники.Видимость(1);
    КонецЕсли;
    чтобы при выборе других видимость возваращалась.
  19. TopicStarter Overlay
    змейкин
    Offline

    змейкин Опытный в 1С

    Регистрация:
    25 мар 2013
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    Код:
     Если РСчет.Выбран() = 1 Тогда
    Возврат СокрЛП(РСчет.Валюта.Кратко);
    Иначе
    Возврат СокрЛП("");
    КонецЕсли;
    КонецФункции
    //***********************************************************
    Процедура ИзмВидОперации()
    Значение = сВидыОпераций.ПолучитьЗначение(сВидыОпераций.ТекущаяСтрока());
    Позиция = Найти(Значение,",");
    Счет = СчетПоКоду(Сред(Значение,1,?(Позиция <> 0,Позиция-1,СтрДлина(Значение))));
    Если сВидыОпераций.ТекущаяСтрока() = 1 Тогда
    Форма.Сотрудники.Видимость(1);
    Форма.Сотрудник.Видимость(1);
    Форма.Контрагент.Видимость(1);
    Форма.Контра.Видимость(1);
    Форма.НашиСчета.Видимость(1);
    Форма.Банксчета.Видимость(1);
    ИначеЕсли сВидыОпераций.ТекущаяСтрока() = 2 Тогда
    Форма.Контрагент.Видимость(1);
    Форма.Контра.Видимость(1);
    Форма.Сотрудники.Видимость(0);
    Форма.Сотрудник.Видимость(0);
    Форма.НашиСчета.Видимость(0);
    Форма.Банксчета.Видимость(0);					//головняк но работает с Видимостью это жесть
    ИначеЕсли сВидыОпераций.ТекущаяСтрока() = 3 Тогда
    Форма.Сотрудники.Видимость(1);
    Форма.Сотрудник.Видимость(1);
    Форма.Контрагент.Видимость(0);
    Форма.Контра.Видимость(0);
    Форма.НашиСчета.Видимость(0);
    Форма.Банксчета.Видимость(0);
    ИначеЕсли сВидыОпераций.ТекущаяСтрока() = 4 Тогда
    Форма.Сотрудники.Видимость(0);
    Форма.Сотрудник.Видимость(0);
    Форма.Контрагент.Видимость(0);
    Форма.Контра.Видимость(0);
    Форма.НашиСчета.Видимость(1);
    Форма.Банксчета.Видимость(1);
    КонецЕсли;
    КонецПроцедуры
    //**********************************************************
    Процедура УстВидОперации()
    Для Инд = 1 по сВидыОпераций.РазмерСписка() Цикл
    Если Найти(сВидыОпераций.ПолучитьЗначение(Инд),Строка(Счет)) <> 0 Тогда
    сВидыОпераций.ТекущаяСтрока(Инд);
    Возврат;
    КонецЕсли;
    КонецЦикла;
    сВидыОпераций.ТекущаяСтрока(2);
    КонецПроцедуры
    //***********************************************************
    Процедура ВводНового(ПризнакКопирования)
    УстВидОперации();
    КонецПроцедуры
    //***********************************************************
    Процедура ИзмСчет();
    Если Счет=СчетПоКоду("631") Тогда
    Форма.НашиСчета.Видимость(0);
    КонецЕсли;
    КонецПроцедуры
    Процедура ПриОткрытии()			  
    ПриЗаписиПерепроводить(1);
    сВидыОпераций.ДобавитьЗначение("","Прочие операции");
    сВидыОпераций.ДобавитьЗначение("631,632","Оплата заказа поставщика");			  
    сВидыОпераций.ДобавитьЗначение("3721,3722","Выдача денег под отчет");
    сВидыОпераций.ДобавитьЗначение("311,312,313,314","Сдача денег в банк");
    СпрНиО = СоздатьОбъект("Справочник.НалогиОтчисления");
    
    Если СпрНиО.НайтиПоКоду("НДС20",0)=0 Тогда
    Сообщить("Не найден элемент с кодом НДС20");
    Возврат;
    Иначе
    ОснСтавкаНДС = СпрНиО.ТекущийЭлемент();
    КонецЕсли;
    СпрНиО.НайтиПоКоду("НДС0",0);
    НулеваяСтавкаНДС = СпрНиО.ТекущийЭлемент();
    СпрНиО.НайтиПоКоду("БезНДС",0);
    БезНДС = СпрНиО.ТекущийЭлемент();
    
    спВидыНДС.ДобавитьЗначение(ОснСтавкаНДС,"НДС 20%");
    спВидыНДС.ДобавитьЗначение(НулеваяСтавкаНДС,"НДС 0%");
    спВидыНДС.ДобавитьЗначение(БезНДС,"Без НДС");
    УстВидОперации();
    
    КонецПроцедуры
    //***********************************************************
    Процедура Печать()
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Таблица");
    Спр=СоздатьОбъект("Справочник.Фирмы");
    Таб.ВывестиСекцию("Шапка");
    Таб.ВывестиСекцию("Пустота");
    Таб.ВывестиСекцию("Дно");
    Таб.Показать("Таблица");
    КонецПроцедуры
    Фух получилось но головняк))))))))капец
    Спасибо за помощь)чтоб я без вас делал))
  20. Vlan
    Offline

    Vlan Гость Гость

    На будущее: если надо управлять видимостью множества элементов на форме, используйте слои.

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