Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Отображение элемента ''Кнопка'' на форме
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
meyson
Есть 1с 7.7
Получил просьбу сделать кнопку печать для документа договор.
Сделал.
Все хорошо печатает и тд.
А теперь бухгалтер хочет чтобы кнопка появляльсь на форме только когда выбран определенный тип договора
Подскажите очень надо.


 ! 

Правила: 4, 5
 
Мичман Харитонов
Можно использовать свойства кнопки.
Форма.Кнопка.Видимость(), Форма.Кнопка.Доступность()
meyson
Цитата(Мичман Харитонов @ 29.05.13, 13:12) необходимо зарегистрироваться для просмотра ссылки
Можно использовать свойства кнопки.
Форма.Кнопка.Видимость(), Форма.Кнопка.Доступность()

Тоесть я так понимаю что поумолчанию написать что оно невидимо
а если тип договора такой то то оно видимо
Мичман Харитонов
Ну да, в процедуре ПриОткрытии() можно прописать видимость-невидимость кнопки.
И то же самое должно отрабатывать при смене вида договора.
meyson
нифига непонимаю
нашел птички в свойсвах кнопки, сделать невидимым и сделать недопустимым, поставил да в форме оно пропало
а куда что дописать чтоб эти свойства менялись при выборе нужного мне договора
заранее спасибо
mister-x
краще повішати процедуру-функцію на реквізит "ВидДоговора", якщо це бух. для управління доступністю-видимістю
meyson
Пробовал вот так
Процедура ПриОткрытии()  
    
    глПроверкаДатыДок(Контекст,"Открытие");
    ПриЗаписиПерепроводить(1);
    Форма.кФирма.Доступность(глИспользуетсяРазделительУчета);
    Форма.кПравоваяПоддержка.Видимость(глВидимостьПравовойПоддержки);
    спВидДоговора = СоздатьОбъект("СписокЗначений");
    спВидДоговора.ДобавитьЗначение("Договір поставки");
    спВидДоговора.ДобавитьЗначение("Договір купівлі-продажу");
    спВидДоговора.ДобавитьЗначение("Договір купівлі-продажу Піонерський квартал");    
    спВидДоговора.ДобавитьЗначение("Договір комісії");
    спВидДоговора.ДобавитьЗначение("Договір оренди");
    спВидДоговора.ДобавитьЗначение("Договір бартерної поставки");
    спВидДоговора.ДобавитьЗначение("Договір консигнації");
    спВидДоговора.ДобавитьЗначение("Договір поруки");
    спВидДоговора.ДобавитьЗначение("Договір доручення");
    спВидДоговора.ДобавитьЗначение("Договір довірчого управління");
    спВидДоговора.ДобавитьЗначение("Договір відповідального зберігання");
    спВидДоговора.ДобавитьЗначение("Договір складського зберігання");
    спВидДоговора.ДобавитьЗначение("Договір про надання посередницьких послуг");
    спВидДоговора.ДобавитьЗначение("Договір про виконання роботи");
    спВидДоговора.ДобавитьЗначение("Договір про надання послуг");
    спВидДоговора.ДобавитьЗначение("Договір про інформаційно-довідкове обслуговування");
    спВидДоговора.ДобавитьЗначение("Договір поставки оптової партії");
    
    Если ВидДоговора="Договір купівлі-продажу Піонерський квартал" Тогда
         Форма.кПечать.Доступность(1);
    КонецЕсли;
    
        
КонецПроцедуры


но при выборе она доступной неделается
Ardi
Цитата
Форма.кПечать.Видимость(1);


И ещё при переключении между слоями НеВидимость нужно устанавливать.
Домовик
нет приОткрытии() процедура не годится. так как в форме вы потом можете изменить значение видДоговора. В ней можно прописать доступность, но все равно еще в другом месте тоже нужно это же сделать.



нужно так как вам предложил МистерХ, или как в формах типовых конфигураций через текстовое поле на форме модуля, с формулой УстДоступность() и в этой функции прописывать.
meyson
может у кого-то есть пример
был бы очень благодарен
Домовик
в конфигурации Бух учет дла Укр кусок кода:

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











найдите это поле формы в Банковской выписке.
Мичман Харитонов
Цитата(Мичман Харитонов @ 29.05.13, 14:33) необходимо зарегистрироваться для просмотра ссылки
Ну да, в процедуре ПриОткрытии() можно прописать видимость-невидимость кнопки.
И то же самое должно отрабатывать при смене вида договора.

Что, все прочли только первую строчку?
А, ладно. Забейте.
44000000.gif
meyson
Скопировал в форму Договор поле формы УстДоступность() с формы Банковская выписка
в модуль формы добавил

и ничего
при выборе договора кнопка как ни была активна так и осталась


 ! 

Научитесь вставлять картинки, потому что в следующий раз удалю! И код приводить можно прямо в посте, а не на фотографиях
 
Домовик
Цитата(Мичман Харитонов @ 30.05.13, 4:58) необходимо зарегистрироваться для просмотра ссылки
Что, все прочли только первую строчку?
А, ладно. Забейте.

все прочли. автору пытаемся объяснить.


Автор, пишем перед условием Сообщить(ВидДоговора); и смотрим в Предприятии, что покажет. Всередине условия - Сообщить("зашли в условие");

что вы присваиваете переменной ВидДоговора? Где?






volodya1122
Цитата(meyson @ 29.05.13, 17:26) необходимо зарегистрироваться для просмотра ссылки
Если ВидДоговора="Договір купівлі-продажу Піонерський квартал" Тогда


Можливо я задаю тупе питання, але все ж:
1. У вас дійсно при виборі договору є вид договору "Договір купівлі-продажу Піонерський квартал" , або це два різні види договору?
2. Вид Договору у Вас це "строка" (тобто можна після вибору договору в цій графі дописати любі символи. Наприклад "Договір купівлі-продажу Піонерський квартал і ще мій текст");

Спробуйте такі варіанти:
 Если Строка(ВидДоговора)=....
Если СокрЛП(ВидДоговора)=....
Если СокрЛП(Строка(ВидДоговора))=...
meyson
Цитата(volodya1122 @ 30.05.13, 10:57) необходимо зарегистрироваться для просмотра ссылки
Можливо я задаю тупе питання, але все ж:
1. У вас дійсно при виборі договору є вид договору "Договір купівлі-продажу Піонерський квартал" , або це два різні види договору?
2. Вид Договору у Вас це "строка" (тобто можна після вибору договору в цій графі дописати любі символи. Наприклад "Договір купівлі-продажу Піонерський квартал і ще мій текст");

Спробуйте такі варіанти:
 Если Строка(ВидДоговора)=....
Если СокрЛП(ВидДоговора)=....
Если СокрЛП(Строка(ВидДоговора))=...

Всем спасибо с меня icon_beer17.gif
решение
Функция УстДоступность() 
   Если СокрЛП(ВидДоговора)="Договір купівлі-продажу Піонерський квартал" Тогда
         Форма.кПечать.Доступность(1);  
   иначе        
              Форма.кПечать.Доступность(0);  
   КонецЕсли;  
КонецФункции



 ! 

Ну ознакомьтесь с правилами, в конце то концов! Выделяйте код!
 


Обещаю выполнять все правила!!!
Sharzem
Цитата(meyson @ 29.05.13, 14:34) необходимо зарегистрироваться для просмотра ссылки
нашел птички в свойсвах кнопки, сделать невидимым и сделать недопустимым, поставил да в форме оно пропало а куда что дописать чтоб эти свойства менялись при выборе нужного мне договора


Цитата(meyson @ 29.05.13, 14:09) необходимо зарегистрироваться для просмотра ссылки


СнимиТЕ птичку в свойствах кнопки "сделать недоступным".
В функции УстДоступность() добавь, а точнее продолжи условие:
 Иначе Форма.кнПечать.Доступность(0)

и будет счастье.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.