Hot-keys для дополнительных свойств справочников и документов.

Публикация № 174166

Разработка - Работа с интерфейсом

12
Способ создания hot-keys для дополнительных свойств справочников и документов в обычном интерфейсе.

Ктото может скажет: Чего тут сложного, добавить скрытую кнопку на форму и приязать к ней действие.

А если нам нужно добавить на все формы объектов у которых есть дополнительные свойства? А что делать с формами списков?

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

Представляю способ не затрагивающий модули форм, в результате которого получает 3 вставки по 2 строчки каждый в типовой код, и две процедуры.  Процедуры можно разместить в свой общий модуль или , если его у вас нет, в типовой, например: РаботаСДиалогами.

Приступим.

 

Функция вызывается при открытии формы на которой есть кнопка дополнительные свойства.

Вставка № 1


Процедура ИзменитьПредставлениеКнопкиВыбораСвойств(ФормаОбъекта, ОписаниеЗначенийСвойств) Экспорт

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

    Для Каждого
ЭлементФормы Из ФормаОбъекта.ЭлементыФормы Цикл
        Если
ТипЗнч(ЭлементФормы) = Тип("КоманднаяПанель") Тогда
           
Кнопка = ЭлементФормы.Кнопки.Найти("ДействиеСвойства");
            Если
Кнопка <> Неопределено Тогда
               
РаботаСДополнительнымиХарактеристикамиОбъектов.СоздатьКнопкиУстановкиДополнительныхРеквизитов(ФормаОбъекта, ЭлементФормы);
               
Кнопка.Подсказка = ОписаниеЗначенийСвойств;
               
Кнопка.Картинка  = КартинкаКнопки;
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;

КонецПроцедуры
                                                                                                                                                                                      

 

Т.к. мы не можем разместить процедуру обрабатывающую событие в в общем модуле, будем использовать "чужую", котораю уже есть в форме. Вставки 2 и 3 вызываются при нажатии на кнопку дополнительные свойства. Первая при нажатии кнопки на форме элемента, вторая на форме списка. 

Вставка № 2

Процедура ОткрытьСвойстваДокумента(ДокументОбъект, ФормаДокумента) Экспорт

    Если
ДокументОбъект.ЭтоНовый() Тогда
       
Вопрос = "Перед началом работы со свойствами необходимо записать документ. Записать?";
       
Ответ  = Вопрос(Вопрос, РежимДиалогаВопрос.ОКОтмена);
        Если
Ответ = КодВозвратаДиалога.ОК Тогда
           
ФормаДокумента.ЗаписатьВФорме();
        Иначе
            Возврат;
        КонецЕсли;
    КонецЕсли;

   
ЗначениеУстановленно = РаботаСДополнительнымиХарактеристикамиОбъектов.УстановитьЗначениеСвойстваОбъекта(ДокументОбъект, ФормаДокумента);
   
Если ЗначениеУстановленно Тогда Возврат; КонецЕсли;


   
Форма = Обработки.ЗначенияСвойствОбъекта.ПолучитьФорму("ЗначенияСвойствОбъекта", ФормаДокумента, ДокументОбъект.Ссылка);
   
Форма.НазначениеСвойств      = ОбщегоНазначения.ПолучитьСписокНазначенийСвойствКатегорийОбъектовПоСсылке(ДокументОбъект.Ссылка);
   
Форма.ОбъектОтбораЗначений   = ДокументОбъект.Ссылка;
   
Форма.ОбъектОтбораНазначений = ДокументОбъект.Ссылка;
   
Форма.ПрочитатьЗаполнитьСвойстваИЗначения();
   
Форма.Открыть
();

КонецПроцедуры


Вставка № 3


Процедура ОткрытьСвойстваИзСписка(Объект, ФормаОбъекта) Экспорт

    Если
Объект = неопределено Тогда
        Возврат;
    КонецЕсли;

   
ЗначениеУстановленно = РаботаСДополнительнымиХарактеристикамиОбъектов.УстановитьЗначениеСвойстваОбъекта(Объект, ФормаОбъекта);
   
Если ЗначениеУстановленно Тогда Возврат; КонецЕсли;


   
Форма = Обработки.ЗначенияСвойствОбъекта.ПолучитьФорму("ЗначенияСвойствОбъекта", ФормаОбъекта);
   
Форма.ОбъектОтбораЗначений   = Объект;
   
Форма.ОбъектОтбораНазначений = Объект;
   
Форма.ПрочитатьЗаполнитьСвойстваИЗначения();
   
Форма.Открыть
();

КонецПроцедуры


Со вставками разобрались, приступим к процедуре создания наших кнопок.

Процедура создает кнопки на текущей форме и устанавливает на нее действие. (Если у кнопки убрать видимость, не отрабатывает нажатие по hot-key поэтому пришлось сделать "микро" кнопки). Сделаем ограничение на количество кнопок, 10 шт.


Процедура СоздатьКнопкиУстановкиДополнительныхРеквизитов(ФормаОбъекта, ЭлементФормы)

   
Перем ТипЗначенияРеквизита;

   
СписокКодовСвойствДокументов = "004,006,009,010,012,013,014,015"; //не больше 10 !
   
СписокКодовСвойствСправочников = "001,002,003,005,007,009,011,016,017"; // не больше 10 !

   
МассивВсехКодов = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(СписокКодовСвойствДокументов+","+СписокКодовСвойствСправочников);

    Для Каждого
Код Из МассивВсехКодов Цикл
       
Кнопка = ФормаОбъекта.ЭлементыФормы.Найти("О_"+Код);
        Если НЕ
Кнопка = Неопределено Тогда Возврат; КонецЕсли;
    

       
Кнопка = ФормаОбъекта.ЭлементыФормы.Найти("С_"+Код);
        Если НЕ
Кнопка = Неопределено Тогда Возврат; КонецЕсли;
    КонецЦикла;

   
//список возможных способов получения типов

    Попытка
       
ТипЗначенияРеквизита = ТипЗнч(ФормаОбъекта.Ссылка); //Тип
       
ПрфиксКода = "О_";
    Исключение
        Попытка
           
ТипЗначенияРеквизита = ТипЗнч(ФормаОбъекта.СправочникСписок.Отбор.Ссылка.Значение); //Тип
           
ПрфиксКода = "С_";
        Исключение
            Попытка
               
ТипЗначенияРеквизита = ТипЗнч(ФормаОбъекта.ДокументСписок.Отбор.Ссылка.Значение); //Тип
               
ПрфиксКода = "С_";
            Исключение
                Попытка
                   
ТипЗначенияРеквизита = ФормаОбъекта.ЖурналДокументовСписок.Отбор.Ссылка.ТипЗначения; // ОписаниеТипов
                   
ПрфиксКода = "С_";
                Исключение
                    Попытка
                       
ТипЗначенияРеквизита = ТипЗнч(ФормаОбъекта.Список.Отбор.Ссылка.Значение); //Тип
                       
ПрфиксКода = "С_";
                    Исключение
                        Возврат;
                    КонецПопытки;
                КонецПопытки;
            КонецПопытки;
        КонецПопытки;
    КонецПопытки;

   
// Получим списки свойств объектов
   
Запрос = Новый Запрос("ВЫБРАТЬ
    |   СвойстваОбъектов.Ссылка,
    |   СвойстваОбъектов.Код КАК Код,
    |   СвойстваОбъектов.Наименование,
    |   СвойстваОбъектов.ТипЗначения,
    |   Представление(СвойстваОбъектов.НазначениеСвойства) КАК НазначениеСвойства,
    |   НазначенияСвойствКатегорийОбъектов.ТипЗначения КАК НазначениеСвойстваТипЗначения
    |ИЗ
    |   ПланВидовХарактеристик.СвойстваОбъектов КАК СвойстваОбъектов
    |       ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.НазначенияСвойствКатегорийОбъектов КАК НазначенияСвойствКатегорийОбъектов
    |       ПО СвойстваОбъектов.НазначениеСвойства = НазначенияСвойствКатегорийОбъектов.Ссылка
    |ГДЕ
    |   СвойстваОбъектов.Код В(&Коды)
    |   И СвойстваОбъектов.ПометкаУдаления = ЛОЖЬ
    |
    |УПОРЯДОЧИТЬ ПО
    |   Код"
);

   
Запрос.УстановитьПараметр("Коды",МассивВсехКодов);
   
РезультатЗапроса = Запрос.Выполнить();
    Если
РезультатЗапроса.Пустой() Тогда Возврат; КонецЕсли;
   
ТаблицаСвойстваОбъектов = РезультатЗапроса.Выгрузить();

   
//проверим если тип ОбъектаФормы в ТаблицаСвойстваОбъектов

   
Для Каждого Строка Из ТаблицаСвойстваОбъектов Цикл
        Если
ТипЗнч(ТипЗначенияРеквизита) = Тип("ОписаниеТипов") Тогда
           
НашлиТипДокумента = Ложь;
            Для каждого
ТипДокумента Из ТипЗначенияРеквизита.Типы() Цикл
                Если
Строка.НазначениеСвойстваТипЗначения.СодержитТип(ТипДокумента) Тогда
                   
НашлиТипДокумента = Истина;
                    Прервать;
                КонецЕсли;
            КонецЦикла;
            Если
НашлиТипДокумента Тогда
                Продолжить;
            КонецЕсли;
        ИначеЕсли
ТипЗнч(ТипЗначенияРеквизита) = Тип("Тип") Тогда
            Если
Строка.НазначениеСвойстваТипЗначения.СодержитТип(ТипЗначенияРеквизита) Тогда Продолжить; КонецЕсли;
        КонецЕсли;
       
Строка.ТипЗначения = Неопределено; // Назначим чтобы не создавать на них кнопки
   
КонецЦикла;

   
СчетчикКнопок = 0;
    Для Каждого
Строка Из ТаблицаСвойстваОбъектов Цикл
        Если
СчетчикКнопок = 10 Тогда Прервать; КонецЕсли;
        Если
Строка.ТипЗначения = Неопределено Тогда Продолжить; КонецЕсли;
        Если НЕ
МассивВсехКодов.Найти(Строка.Код) = Неопределено Тогда
           
ИмяКнопки = ПрфиксКода+Строка.Код;
        Иначе
            Продолжить;
        КонецЕсли;

       
ТекщаяКлавиша = Клавиша.Нет;
        Если
СчетчикКнопок = 0 Тогда
           
ТекщаяКлавиша = Клавиша.Num0;
        ИначеЕсли
СчетчикКнопок = 1 Тогда
           
ТекщаяКлавиша = Клавиша.Num1;
        ИначеЕсли
СчетчикКнопок = 2 Тогда
           
ТекщаяКлавиша = Клавиша.Num2;
        ИначеЕсли
СчетчикКнопок = 3 Тогда
           
ТекщаяКлавиша = Клавиша.Num3;
        ИначеЕсли
СчетчикКнопок = 4 Тогда
           
ТекщаяКлавиша = Клавиша.Num4;
        ИначеЕсли
СчетчикКнопок = 5 Тогда
           
ТекщаяКлавиша = Клавиша.Num5;
        ИначеЕсли
СчетчикКнопок = 6 Тогда
           
ТекщаяКлавиша = Клавиша.Num6;
        ИначеЕсли
СчетчикКнопок = 7 Тогда
           
ТекщаяКлавиша = Клавиша.Num7;
        ИначеЕсли
СчетчикКнопок = 8 Тогда
           
ТекщаяКлавиша = Клавиша.Num8;
        ИначеЕсли
СчетчикКнопок = 9 Тогда
           
ТекщаяКлавиша = Клавиша.Num9;
        КонецЕсли;

       
КнопкаДействия = ЭлементФормы.Кнопки.Найти("ДействиеСвойства");
       
ОбработкаНажатия = КнопкаДействия.Действие;

        Попытка
           
Кнопка = ФормаОбъекта.ЭлементыФормы.Добавить(Тип("Кнопка"),ИмяКнопки,Ложь);
           
Кнопка.УстановитьДействие("Нажатие", ОбработкаНажатия);
           
Кнопка.СочетаниеКлавиш = Новый СочетаниеКлавиш(ТекщаяКлавиша, Ложь, Истина, Ложь);
           
Кнопка.Доступность = Истина;
           
Кнопка.Видимость = Истина;
           
Кнопка.Ширина = 1;
           
Кнопка.Высота = 1;
           
СчетчикКнопок = СчетчикКнопок + 1;
        Исключение
           
Сообщить(ОписаниеОшибки
());
        КонецПопытки;

    КонецЦикла;

КонецПроцедуры

 

 Ну и последняя функция обрабатывет событие от наших кнопок. При нажатии на hot-key наша кнопка становится текущей, это и будем проверять. Если тип значения у свойства Булево, то функция меняет с Истины на Ложь или наобром, если другой тип, то вызывается Окно ввода значения. 

 

Функция УстановитьЗначениеСвойстваОбъекта(Объект, ФормаДокумента)

   
Перем ВыбранЗнач;
   
ИмяКнопки = "";
   
СвойствоУстановленно = Ложь;
   
ЗаписьЗаписать = Ложь;

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

   
Запрос = Новый Запрос("ВЫБРАТЬ
    |   СвойстваОбъектов.Ссылка,
    |   СвойстваОбъектов.Код КАК Код,
    |   СвойстваОбъектов.Наименование,
    |   СвойстваОбъектов.ТипЗначения
    |ИЗ
    |   ПланВидовХарактеристик.СвойстваОбъектов КАК СвойстваОбъектов
    |ГДЕ
    |   СвойстваОбъектов.Код = &Код
    |   И СвойстваОбъектов.ПометкаУдаления = ЛОЖЬ"
);

   
Запрос.УстановитьПараметр("Код",Сред(ИмяКнопки,3));
   
РезультатЗапроса = Запрос.Выполнить();
    Если
РезультатЗапроса.Пустой() Тогда Возврат СвойствоУстановленно; КонецЕсли;
   
Выборка = РезультатЗапроса.Выбрать();
   
Выборка.Следующий();

    Если 
ПрефиксИмени = "О_" Тогда
       
СсылкаОбъекта = Объект.Ссылка;
    ИначеЕсли
ПрефиксИмени = "С_" Тогда
       
СсылкаОбъекта = Объект;
    КонецЕсли;

   
Запись = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
   
Запись.Объект = СсылкаОбъекта;
   
Запись.Свойство = Выборка.Ссылка;
   
Запись.Прочитать();

    Если
Выборка.ТипЗначения.СодержитТип(Тип("Булево")) Тогда
        Если
Запись.Выбран() Тогда
           
Запись.Объект = СсылкаОбъекта;
           
Запись.Свойство = Выборка.Ссылка;
           
Запись.Значение = Не(Запись.Значение);
           
ЗаписьЗаписать = Истина;
        Иначе
           
Запись.Объект = СсылкаОбъекта;
           
Запись.Свойство = Выборка.Ссылка;
           
Запись.Значение = Истина;
           
ЗаписьЗаписать = Истина;
        КонецЕсли;
    Иначе
        Если
ВвестиЗначение(ВыбранЗнач,Выборка.Наименование,Выборка.ТипЗначения) Тогда
           
Запись.Объект = СсылкаОбъекта;
           
Запись.Свойство = Выборка.Ссылка;
           
Запись.Значение = ВыбранЗнач;
           
ЗаписьЗаписать = Истина;
        Иначе
           
СвойствоУстановленно = Истина;
        КонецЕсли;
    КонецЕсли;

    Если
ЗаписьЗаписать Тогда
        Попытка
           
Запись.Записать(Истина);
           
СвойствоУстановленно = Истина;
        Исключение
           
Сообщить(ОписаниеОшибки());
        КонецПопытки;
    КонецЕсли;

   
// установим текущий элемент не на наши кнопки
   
Для Каждого ЭлементФормы Из ФормаДокумента.ЭлементыФормы Цикл
       
ТипЗначенияЭлемента  = ТипЗнч(ЭлементФормы);
        Если
ТипЗначенияЭлемента = Тип("ТабличноеПоле") ИЛИ ТипЗначенияЭлемента = Тип("ПолеВвода") ИЛИ ТипЗначенияЭлемента = Тип("ПолеВыбора") Тогда
           
ФормаДокумента.ТекущийЭлемент = ЭлементФормы;
            Прервать;
        КонецЕсли;
    КонецЦикла;

   
// изменим представление кнопки дополнительные свойства
   
РаботаСДиалогами.ИзменитьПредставлениеКнопкиВыбораСвойств(ФормаДокумента, РаботаСДиалогами.ПолучитьОписаниеЗначенийСвойствОбъекта(СсылкаОбъекта));

    Возврат
СвойствоУстановленно;

КонецФункции

 

Вот вобщем и все.

В результате получаем hot-keys на любой форме, где есть кнопка "Дополнительные свойства" с минимальными вставками в типовой код.

12

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. rus128 2 27.02.13 13:06 Сейчас в теме
Я правильно понимаю, что hot-keys фактически не назначаются (выбираются) пользователем/администратором, а в качестве hot-keys используются клавиши NumPad0..9?
Если да - вряд ли пользователи будут запоминать, какому реквизиту какая цифра соответствует.
2. renmy 84 04.03.13 15:38 Сейчас в теме
Все время горячие клавиши назначались программистом, представьте если этим будут заниматься пользователи.
3. dyak84 09.04.13 01:17 Сейчас в теме
Вообще если по сути разобраться автор описал не просто работу с горячими клавишами, а по сути справку с примерами програмной работи с свойствами материал на Инфостарте хоть и есть на в очень скудном размере. Хотя направление по работе с свойствами считаю очень перспективным.Автору огромное спасибо так держать
Оставьте свое сообщение

См. также

Формы. Трудности программной работы 67

Статья Программист Нет файла v8 v8::УФ 1cv8.cf Бесплатно (free) Работа с интерфейсом

Рассматриваем основные подводные камни, с которыми приходится сталкиваться при программной работе с формами, а также способы обхода самых частых проблем.

06.10.2019    2897    YPermitin    19       

Лайфхаки 1С (часть 1). Настройки отчетов и печатных форм 1С 32

Статья Программист Пользователь Стажер Нет файла v8 1cv8.cf Россия Бесплатно (free) Работа с интерфейсом

Статья рассчитана на пользователей или программистов, которые только начинают работать с 1С, для максимально быстрого ознакомления с интерфейсом программы. В статье приведены лайфхаки, которые позволят вам быстро и эффективно научиться настраивать отчёты и печатные в среде программных продуктов 1С. Полученные знания значительно упростят взаимодействие с интерфейсом 1С и повысят продуктивность работы оператора.

02.10.2019    3625    VachKirp    8       

Добавляем виджет "Задачи от меня" в Документооборот 2.1 22

Статья Программист Нет файла v8 v8::Бизнес-процессы ДО Россия Бесплатно (free) Практика программирования Работа с интерфейсом

Небольшая доработка Документооборота 2.1 для возможности добавления виджета "Задачи от меня" в обработку Текущие дела.

25.09.2019    1410    Sergey_Borisovi4    2       

[Механизм интерфейса] Часы 54

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Работа с интерфейсом Практика программирования Разработка

Добавляем цифровые часы на форму, как бонус рассмотрим вариант и с аналоговыми.

26.08.2019    2991    rpgshnik    33       

Произвольная начальная страница через расширение (программно) 41

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Работа с интерфейсом

Установка своей формы произвольному пользователю на начальную страницу.

14.08.2019    2403    nagaitseff    11       

Подходы, методы и инструменты UX/UI для разработки эффективных интерфейсов на 1С 29

Статья Программист Нет файла v8 Бесплатно (free) Работа с интерфейсом

Интерфейсам в 1С обычно уделяют мало внимания. Это в итоге снижает востребованность платформы, делает ее неконкурентной, лишает большой доли рынка. Как не потерять старых клиентов и привлекать новых с помощью интерфейсов, а главное – как сделать «правильный» интерфейс, рассказал участникам конференции Infostart Event 2018 Education управляющий партнер и основатель консалтинговой группы WiseAdvice Иван Тягунов.

07.08.2019    4392    IvanAT1981    14       

Пользовательские настройки системы компоновки данных 77

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Работа с интерфейсом Разработка

Работа с отчетами в пользовательском режиме, формы отчетов. Понятие пользовательских настроек в отчетах на СКД. Определение состава пользовательских настроек для разделов в целом и для отдельных элементов, для всего отчета и для отдельных группировок. Видимость функциональных опций в отчетах на СКД.

09.07.2019    5775    ids79    0       

Подсистема "Варианты отчетов". Используете ли Вы ее правильно? 207

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Работа с интерфейсом БСП (Библиотека стандартных подсистем)

Небольшая история про использование подсистемы "Варианты отчетов" из БСП. Используете ли Вы ее правильно?

04.06.2019    13615    YPermitin    49       

Расшифровка отчета на СКД с детализацией по выбранному полю на основе БСП 91

Статья Программист Нет файла v8 v8::УФ v8::СКД 1cv8.cf Россия Бесплатно (free) Практика программирования Работа с интерфейсом Разработка

В данной статье рассмотрим механизм работы с расшифровкой отчета, созданного при помощи системы компоновки данных, в управляемом приложении. Показывать буду на примере реальной задачи. Условие: использовать имеющиеся в конфигурации механизмы БСП, с минимальными и "правильными" изменениями. Расшифровка должны быть двух видов на каждом поле: 1. Открывать ссылочный объект 2. Открывать новую форму с детализацией табличной части документа. Собственно ради второго пункта и писалась статья, в основном для себя, чтобы не забыть.

14.05.2019    7044    Viktor_Ermakov    6       

Свой макет оформления отчета 33

Статья Программист Нет файла v8 v8::СКД Россия Windows Бесплатно (free) Работа с интерфейсом

Пример создания и оформления и применения своего (пользовательского ) макета оформления для СКД.

24.04.2019    4375    olegpkc    5       

Динамический вывод таблицы значений на форму 35

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Работа с интерфейсом

Вывести на форму таблицу значений, а потом на её место другую, третью, четвёртую? Не вопрос.

11.01.2019    5508    Vlad1917    26       

Прикладной пример переработки стандартной формы РМК - Розница 74

Статья Программист Нет файла v8 Розница УУ Кассовые операции Розничная торговля Бесплатно (free) Работа с интерфейсом

Простой пример, как с помощью программного изменения шрифтов элементов формы достичь наилучшего результата отображения на примере формы РМК.

04.10.2018    10662    asdfgcom    56       

Cправочная информация. Картинки. 16

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Работа с интерфейсом

Справочную информацию мало кто любит писать, но вот захотелось. И что с этим делать?

06.06.2018    6319    aspirator23    2       

Итоги в динамическом списке 47

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Работа с интерфейсом

Предлагаю вариант, как быстро сделать итоги в динамическом списке, например в форме списка журнала документов.

28.05.2018    8876    CXY    16       

Программное управление обычными формами документов и справочников в УПП/КА 32

Статья Программист Нет файла v8 v8::УФ КА1 УПП1 Россия Бесплатно (free) Работа с интерфейсом

Если с программным изменением управляемых форм 1С все более или менее понятно, то с программированием обычных форм примеров не так уж много в сети. А уж примеров готовых решений совсем не видно. В данной статье я покажу, как можно реализовать аналог "управляемых" форм в своих конфигурациях с обычными формами и забыть о сложностях обновлений форм.

09.05.2018    8324    dima_home    7       

Решение проблемы отображения интерфейса Такси на экранах с маленьким разрешением 26

Статья Программист Нет файла v8 v8::УФ Беларусь Windows Бесплатно (free) Работа с интерфейсом

Решение возникшей проблемы при переходе с интерфейса 8.2 на интерфейс Такси на экранах с маленьким разрешением.

06.04.2018    9679    Drak87    18       

Красивые графики. Пошаговая инструкция (Highstock) 121

Статья Программист Нет файла v8 Бесплатно (free) Работа с интерфейсом

Данный подход опробован на библиотеках: Нighcharts и Highstock. Для работы будет необходима 1С и браузер Google Chrome. Чукча не писатель (первая публикация).

22.11.2017    14071    Degrement    20       

Меняем стандартную форму выбора для реквизита формы на свою форму с запросом 51

Статья Программист Нет файла v8 Россия Бесплатно (free) Практика программирования Работа с интерфейсом

Алгоритм действий для смены стандартной формы выбора для реквизита формы на свою форму со своей выборкой данных и возвратом нескольких параметров в вызывающую форму

30.09.2017    15658    ah7777777    24       

"Мигаем" интерфейсом, или цепочки асинхронных вызовов 71

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Работа с интерфейсом

Как, не блокируя интерфейс, привлечь внимание пользователя к интерфейсным элементам. Или, попросту говоря, "мигнуть" чем-то.

06.09.2017    12505    Chrizt    13       

"Восстановить положение окна" - не помогает. Как я решил проблему. 28

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Работа с интерфейсом

Как получилось решить проблему глюков отображения формы документа.

28.05.2017    46044    niko11s    44       

Как добавить/убрать кота в отчет? 77

Статья Программист Нет файла v8 БП3.0 Бесплатно (free) Работа с интерфейсом

Кот в отчете: кому-то нравится, кого-то жутко бесит. Как избавиться, заменить, оставить (нужное подчеркнуть)?

12.05.2017    22983    starik-2005    16       

Итоги в динамическом списке 46

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Работа с интерфейсом

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

03.04.2017    20803    Восьмой    34       

Исправление проблем со встраиванием внешних отчетов в УНФ 1.6 12

Статья Программист Нет файла v8 УНФ Россия Бесплатно (free) Работа с интерфейсом

В УНФ 1.6 (тестил на версии 1.6.7.43) существуют следующие проблемы: 1. при встраивании доп. отчета в базу, он не отображается, пока не собьешь фильтр подсистемы 2. при встраивании доп. отчета в базу, отсутствует команда «Дополнительные отчеты» (по аналогии с командной «Дополнительные обработки») . В статье описывается решение перечисленных проблем.

16.11.2016    11382    TheRealStanly    3       

Как "перемотать" динамический список в начало при открытии? (или некоторые нюансы получения данных динамического списка) 57

Статья Программист Нет файла v8 Бесплатно (free) Работа с интерфейсом

В современных интерфейсах (новостях, социальных сетях и прочим) принято размещать новые данные сверху, более старые - внизу. К сожалению, в 1C сделано несколько по-другому - по умолчанию списки документов отсортированы по возрастанию даты и далее возможно два варианта: либо список при открытии проматывается в конец, либо список может запоминать "последнюю" текущую строку.

03.11.2016    18987    Fragster    25       

Программное создание графических схем (v.2): API для ГрафическойСхемы 73

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Работа с интерфейсом Универсальные функции

Пример динамического создания графических схем, добавления элементов любых видов. Любые схемы без бизнес-процессов. Программная работа со схемой. Отличие от существующей статьи в том, что здесь используется объектная модель. Исправил и упростил некоторые моменты - результат соответствует схеме, созданной руками. Добавил возможность рисования произвольных форм для существующих фигур.

27.09.2016    16817    serg_infostart    15       

Автоматическое добавление новых реквизитов на форму (УФ) 38

Статья Программист Нет файла v8 v8::УФ Бесплатно (free) Работа с интерфейсом Универсальные функции

Идея такая: Программист добавил реквизит в объект. В комментарии этого реквизита прописал некое спец. слово (можно не матерное). На форму объекта новый реквизит далее попадает автоматом в спец. группу "Дополнительно".

03.08.2016    16122    Патриот    23       

Управляемые формы: Поле HTML Документа и веб-клиент 56

Статья Программист Нет файла v8 Россия Бесплатно (free) Практика программирования Работа с интерфейсом

Взаимодействие javascript и интерфейса 1С дает огромные возможности для реализации нестандартных функций. Раньше можно было напрямую вызывать функции JavaScript через DOM объект document Поля HTML документа. В современных браузерах эта возможность ушла. Более того, в веб-клиенте появляется тип ВнешнийОбъект, который вообще нигде не описан. На Инфостарте были предложения вызывать JavaScript через fireEvent, но это очень неудобно. Предлагаю свой вариант решения.

18.07.2016    23965    compguru    10       

Как вывести динамическое представление для пустого значения (в таблице)? 23

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Работа с интерфейсом

Есть таблица. Часть полей в ней заполняется автоматически, а часть - должен заполнить пользователь. Нужно подсказать пользователю, что именно в какую ячейку вводить - для этого выведем серым текст подсказки внутри каждой незаполненной ячейки. На поиски решения этой задачки я потратил половину субботы. Надеюсь, моя небольшая заметка поможет кому то провести выходные более продуктивно)

29.03.2016    9648    weissfeuer    9       

Выделение документов в динамическом списке 20

Статья Программист Нет файла v8 Бесплатно (free) Работа с интерфейсом

Допустим, пользователю конфигурации на управляемых формах захотелось выделять документы в списке привычным образом и производить какие-то манипуляции с выделенными документами. Например, делать на их основании какие-то документы.

01.02.2016    15710    Sardukar    7       

Три приёма, позволяющие сделать интерфейс конфигураций 1С на управляемых формах удобнее при большом шрифте 52

Статья Программист Нет файла v8 УНФ ERP2 БП3.0 Windows Бесплатно (free) Работа с интерфейсом Универсальные функции

С появлением управляемых форм вообще и БП 3.0 в частности пользователи, которые не хотят портить своё зрение рассматриванием мелкого шрифта, оказались в невыгодном положении. Многих элементов на экране в "тяжёлых" документах вообще оказалось не видно. Все попытки решить вопрос штатными средствами настройки предприятия оказались неэффективны. Вот несколько приёмов, которые буквально в два щелчка мышкой и парой строк кода помогут решить проблему.

05.11.2015    14916    H-Labs    11       

Как скрыть "пустые группы" в списке выбора справочника при отборе 46

Статья Программист Нет файла v8 Бесплатно (free) Работа с интерфейсом

Когда требуется открыть список справочника с отбором, например, по определённой группе, видны также все остальные группы с пустым содержимым. Мой способ избавления от ненужных групп ниже.

29.10.2015    25456    shevelyov    25       

Открытие форм нескольких новых документов в тонком и толстом клиенте, УФ 23

Статья Программист Нет файла v8 v8::УФ 1cv8.cf Windows Бесплатно (free) Работа с интерфейсом

Если Вам необходимо создать несколько документов, а затем открыть их формы для пользователя.

1 стартмани

29.09.2015    17942    Wezoowy    13       

Параметры сеанса. 47

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Практика программирования Работа с интерфейсом

Параметры сеанса - это объекты метаданных конфигурации. Поговорим об их назначении и принципах работы с ними.

06.09.2015    55131    niko11s    8       

Шкала в строке состояния 51

Статья Программист Нет файла v8 Windows Бесплатно (free) Работа с интерфейсом

Простая шкала, не требующая дополнительных форм и элементов управления

31.08.2015    13370    Ivon    26       

Назначение сочетания клавиш для кнопок командной панели (Обычные формы) 13

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Практика программирования Работа с интерфейсом

Назначение сочетания клавиш кнопкам командной панели Формы списка/выбора для любой конфигурации (Обычные формы)

07.08.2015    14956    bld    7       

Развитие управляемого интерфейса в 1С 8.2 - 1С 8.3 55

Статья Программист Нет файла v8 Windows Бесплатно (free) Практика программирования Математика и алгоритмы Работа с интерфейсом

К управляемым формам, которые появились в 8.2, я до сих пор относился презрительно. Считал это неудачной попыткой 1С следовать модным тенденциям в разработке интерфейсов и прогибом для возможности работать через браузер. Я считал, что 1С пожертвовала простотой разработки в угоду веб-доступу. Но после курсов Арутюнова Сергея по управляемому интерфейсу в июле 2015 года в УЦ1 я поменял ненависть на любовь. Звучит парадоксально, но это так. А теперь подробнее…

27.07.2015    34968    fixin    103       

Идея или как сохранить ЦВЕТ, ШРИФТ, ОФОРМЛЕНИЕ пользователя 25

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Работа с интерфейсом

Простой и оригинальный способ сохранять ЦВЕТОВУЮ СХЕМУ и ОФОРМЛЕНИЕ пользователей. Как сохранить ЦВЕТ

22.06.2015    21372    Tatitutu    12       

Недокументированное использование стандартных обработок из меню "Все функции". 902

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Практика программирования Работа с интерфейсом

Рассмотрены возможности произвольного использования стандартных функций, вызываемых из меню платформы "Все функции" - "Стандартные" (Активные пользователи, Журнал регистрации, Поиск ссылок на объект, Проведение документов ...).

19.06.2015    100322    ekaruk    121       

Быстрый ввод строковых значений в поля составного типа 63

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Работа с интерфейсом

Когда нужно дать пользователю возможность вводить с клавиатуры строковые значения в поле ввода составного типа

04.06.2015    17139    Cyberhawk    14       

Личный опыт эскплуатации интерфейса "Такси" 11

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Работа с интерфейсом

Уважаемые коллеги, предлагаю вам мой личный опыт использования интерфейса "Такси"

07.02.2015    15248    Marik    30       

Как перенести форму документа (справочника, ...) из одного документа (справочника, ...) в другой похожий документ (справочник, ...) 54

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Практика программирования Работа с интерфейсом

При попытке изменить Тип Реквизита «Объект» все элементы формы теряли путь к данным, ладно бы «поля ввода» (можно было выбрать заново «путь к данным»), но с табличными частями вообще труба, при выборе в «Таблице» все колонки в этом элементе банально удалялись. Можно, конечно, потратить кучу времени и вручную продублировать все то, что есть в форме оригинала, но я нашел другой путь!

26.11.2014    14220    RomanBor    18       

Создание интерфейса со всеми блокировками прав пользователя 20

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Работа с интерфейсом

Создание интерфейса (напр. Продавец) со всеми блокировками прав пользователя (доступ к конфигуратору, меню Операции, Все функции, правам пользователей в меню сервис и др.)

10.10.2014    12265    ~ADm!t_@vd~    8       

Свернуть с учетом уровня дерево значений на управляемой форме 11

Статья Программист Нет файла v8 1cv8.cf Россия Windows Бесплатно (free) Работа с интерфейсом

Набор процедур, которые сворачивают дерево значений на управляемой форме до определенного уровня

03.10.2014    12941    ivashka    2       

Добавление дополнительных отчетов и обработок в тонком клиенте. 44

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Работа с интерфейсом

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

30.09.2014    62737    John_d    14