Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Интерфейс: Вариант вкладок на форме , (по мотивам Альфа)          
Victor Skif Подменю пользователя
сообщение 06.01.18, 15:50
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 16
Из: Киев
Спасибо сказали: 1 раз
Рейтинг: 0

Добрый день.
1С 7.70.27

Видел у Альфа предложение по реализации вкладок на форме (размером меньше формы), тут - [необходимо зарегистрироваться для просмотра ссылки]
А мне как раз такое надо. Начал делать - вижу, оно, в общем-то, прекрасно все работает, но с мелкими и досадными интерфейсными погрешностями. То кнопка вылезет там где не должна, то фокус с нее не слазит, портит внешний вид.. А мне бы надо так, чтоб комар носа не подточил. Ну, начал доделывать, изменил схему в сторону усложнения, но в целом, по-моему, получился вполне законченный вариант. Который я вам и представляю, пользуйтесь, кому надо.

Вот что получилось:


Вот как делалось (отличия от Альфа):


3. Кнопки, изображающие вкладки - без заголовка (будем управлять их доступностью, заголовки не должны менять вид), взамен них - сверху на кнопках лежат тексты, которые собственно и изображают названия вкладок.
1. Порядок расположения реквизитов - такой. (это важно).
2. То что должно быть на вкладках - разносим на слои.
4. На форму кидаем невидимый текст, в формуле которого пишем УстДост()

В кнопках - формулы ПриВыбореЗакладки(1) и ПриВыбореЗакладки(2).
Я делал всего две закладки, поэтому атрибуты не нумерованы, а названы (оплаты, доставки). Если вкладок много - то можно все нумеровать, как у Альфа, и управлять циклами, как у него. Смысл не меняется.

Ну и код. Порядок всех действий - важен.

Перем ТекущаяЗакладка;

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

// =========================
Функция УстДост()
    // делаем все невидимым
    Форма.кнОснова.Видимость(0);
    Форма.Ширма1.Видимость(0);
    Форма.Ширма2.Видимость(0);
    Форма.тОплаты.Видимость(0);
    Форма.тДоставки.Видимость(0);
    // делаем нужное невидимым
    Форма.кнОснова.Видимость(1);    
    Форма.тОплаты.Видимость(1);
    Форма.тДоставки.Видимость(1);    
    Форма.ПолучитьАтрибут("Ширма"+ТекущаяЗакладка).Видимость(1);
    // делаем кнопки недоступными
    Форма.кнОплаты.Доступность(0);
    Форма.кнДоставки.Доступность(0);
    // делаем нужные кнопки доступными
    Форма.кнОплаты.Доступность(?(ТекущаяЗакладка = 1, 0, 1));
    Форма.кнДоставки.Доступность(?(ТекущаяЗакладка = 2, 0, 1));
КонецФункции  


ТекущаяЗакладка = 1;
ПриВыбореЗакладки(1);


Демо: Прикрепленный файл  ДемонстрацияЗакладок.zip ( 2,97 килобайт ) Кол-во скачиваний: 21


Сообщение отредактировал Vofka - 09.01.18, 13:04

Спасибо сказали: Vofka,

Victor Skif Подменю пользователя
сообщение 09.01.18, 13:53
Сообщение #2

Общительный
**
Группа: Пользователи
Сообщений: 16
Из: Киев
Спасибо сказали: 1 раз
Рейтинг: 0

Еще маленькое усовершенствование открылось - в коде УстДост() следует убрать строки
Форма.кнОснова.Видимость(0); и Форма.кнОснова.Видимость(1);
Они не нужны оказались. Без них мигания вкладок вообще нету.

В выложенной ДемонстрацияЗакладок.ert уже это сделано.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 22:23
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!