Организация выбора месяца из списка

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

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

58
Пришлось столкнуться с такой проблемой, как выбор месяца из ниспадающего списка (с элементами вида "НазваниеМесяца Год") с возможностью изменения года. Хочу предложить вариант реализации данного механизма, может кому и пригодится)

Итак, мы имеем некий объект с реквизитом "Месяц" с типом "Строка", который находится у нас на управляемой форме, куда и будет вписываться название месяца и год. Прежде всего, при открытии формы необходимо сформировать список выбора (например, на текущий год):

&НаКлиенте
Процедура ПриОткрытии(Отказ)


    СформироватьСписокВыбораМесяца(Год(ТекущаяДата()));


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

Сама процедура формирования будет следующей:

Процедура СформироватьСписокВыбораМесяца(Год)
    
    Элементы.Месяц.СписокВыбора.Очистить();
    Элементы.Месяц.СписокВыбора.Добавить(Формат(Год-1, "ЧГ=0")); //для смены года
    Для к = 1 По 12  Цикл
        СформДата = Дата(Год, к, 1);
        Наим = Формат(СформДата, "ДФ = ММММ_гггг");
        Наим = СтрЗаменить(Наим, "_", " ");
        Элементы.Месяц.СписокВыбора.Добавить(Наим);    
    КонецЦикла;
    Элементы.Месяц.СписокВыбора.Добавить(Формат(Год+1, "ЧГ=0")); //для смены года
    

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

Далее организуем выбор из списка. Для этого нам понадобится событие нашего элемента "НачалоВыбораИзСписка":

&НаКлиенте
Процедура МесяцНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)


    Если Объект.Месяц  "" Тогда

        //реквизит уже заполнен, нужно формировать список для года, соответствующего заполнению
        ВыбрГод = Число(Прав(Объект.Месяц, 4));
        СформироватьСписокВыбораМесяца(ВыбрГод);
    КонецЕсли;
    
    СтандартнаяОбработка = Ложь;
    ВыбранноеЗначение = Строка(ЭтаФорма.ВыбратьИзСписка(Элемент.СписокВыбора, Элемент));
    Если ВыбранноеЗначение  "" Тогда
        Если СтрДлина(ВыбранноеЗначение)=4 Тогда

            //выбрано значение, которое соответствует смене года в списке
            Пока СтрДлина(ВыбранноеЗначение) = 4 Цикл

                //цикл продолжается до тех пор, пока мы не выберем месяц
                ВыбрГод = Число(ВыбранноеЗначение);
                СформироватьСписокВыбораМесяца(ВыбрГод);
                ВыбранноеЗначение = Строка(ЭтаФорма.ВыбратьИзСписка(Элемент.СписокВыбора, Элемент));                    
            КонецЦикла;
        КонецЕсли;
        Если ВыбранноеЗначение  "" Тогда

             //выбрали месяц, а не пустое значение, запишем его

            //если выбрали пустое значение, то в реквизите месяц сохранится значение, которое было до выбора
            Объект.Месяц = ВыбранноеЗначение;
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры

Далее можно делать с этим значением, что угодно. Например, нам нужно в некий реквизит подставить конец выбранного месяца. Тогда мы имеем реквизит объекта "КонецМесяца" с типом дата, создаем реквизит формы "Месяц" с типом строка и помещаем связанный с ним элемент на форму. Далее реализуем вышеописанный механизм с некоторыми изменениями:

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    
  
    Если ЗначениеЗаполнено(Объект.КонецМесяца) Тогда
        Месяц = Формат(Объект.КонецМесяца, "ДФ = ММММ");

        //формируем список на год, соответствующий заполненному реквизиту

        СформироватьСписокВыбораМесяца(Год(Объект.КонецМесяца));
    Иначе
        Месяц = ""; 

        //формируем список на текущий год

        СформироватьСписокВыбораМесяца(Год(ТекущаяДата()));
    КонецЕсли;
    

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


Событие "НачалоВыбораИзСписка" изменяем так, чтобы заполнялся реквизит "КонецМесяца". Помним, что "Месяц" - реквизит формы, а не объекта, поэтому убираем перед ним "Объект." и заполняем реквизит "КонецМесяца":

&НаКлиенте
Процедура МесяцНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)


    Если Месяц  "" Тогда

        //реквизит уже заполнен, нужно формировать список для года, соответствующего заполнению
        ВыбрГод = Число(Прав(Месяц, 4));
        СформироватьСписокВыбораМесяца(ВыбрГод);
    КонецЕсли;
    
    СтандартнаяОбработка = Ложь;
    ВыбранноеЗначение = Строка(ЭтаФорма.ВыбратьИзСписка(Элемент.СписокВыбора, Элемент));
    Если ВыбранноеЗначение  "" Тогда
        Если СтрДлина(ВыбранноеЗначение)=4 Тогда

            //выбрано значение, которое соответствует смене года в списке
            Пока СтрДлина(ВыбранноеЗначение) = 4 Цикл

                //цикл продолжается до тех пор, пока мы не выберем месяц
                ВыбрГод = Число(ВыбранноеЗначение);
                СформироватьСписокВыбораМесяца(ВыбрГод);
                ВыбранноеЗначение = Строка(ЭтаФорма.ВыбратьИзСписка(Элемент.СписокВыбора, Элемент));                    
            КонецЦикла;
        КонецЕсли;
        Если ВыбранноеЗначение  "" Тогда

             //выбрали месяц, а не пустое значение, запишем его

            //если выбрали пустое значение, то в реквизите месяц сохранится значение, которое было до выбора
            Месяц = ВыбранноеЗначение;

            НомМесяца = (Найти("янвфевмарапрмайиюниюлавгсеноктноядек",Нрег(Лев(ВыбранноеЗначение,3)))+2)/3; //получаем номер месяца
            ВыбрГод = Число(Прав(ВыбранноеЗначение, 4));
            Объект.КонецМесяца = КонецМесяца(Дата(ВыбрГод, НомМесяца, 1));


        КонецЕсли;
    КонецЕсли;
КонецПроцедуры


Собственно вот и все) Вы также можете скачать обработку с примером: //infostart.ru/public/download.php?file=167551

58

Скачать файлы

Наименование Файл Версия Размер
Выбор месяца из списка (модальный режим)
.epf 6,56Kb
07.02.17
119
.epf 6,56Kb 119 Скачать
Выбор месяца из списка (немодальный режим)
.epf 6,96Kb
07.02.17
22
.epf 6,96Kb 22 Скачать

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

Комментарии
Избранное Подписка Сортировка: Древо
1. vipq7 05.02.14 16:00 Сейчас в теме
Спасибо, удобная штука...
2. RocKeR_13 688 06.02.14 12:42 Сейчас в теме
(1) vipq7, рад, что пригодилось)
3. alexandr851c 24 06.03.14 14:00 Сейчас в теме
Очень выручили. Огромное спасибо !!!
4. RocKeR_13 688 06.03.14 14:18 Сейчас в теме
(3) alexandr851c, честно говоря, когда публиковал, не думал, что многих заинтересует)) На здоровье)
5. karapuzzzz 63 30.08.14 01:36 Сейчас в теме
Спасибо. Идея с переходом между годами мне понравилась. Реализовал у себя с адаптированием под обычное приложение.

Единственное замечание в том, что обычно за период принимают не конец месяца, а начало.
6. RocKeR_13 688 31.08.14 21:43 Сейчас в теме
(5) karapuzzzz, пожалуйста) ну как у вас не знаю, сколько ни делал доработок отчетов - везде нужен был именно конец месяца в качестве конца периода
7. nytlenc 03.09.15 08:27 Сейчас в теме
Спасибо! Респект. Очень пригодилось!
8. RocKeR_13 688 03.09.15 16:57 Сейчас в теме
(7) nytlenc, рад, что пригодилось! Успехов вам)
9. dsitiy 17.02.16 17:03 Сейчас в теме
А при нажатии на строчку с годом ничего не должно происходить?
Я думал откроются месяца с предыдущим годом.
10. Anchoret 35 16.03.16 17:10 Сейчас в теме
Спасибо за пример, очень помог.

(9) Orlanxxx, происходит, если сделать все правильно.
Я в условиях сначала поставил равенство (=) и у меня тоже ничего не происходило при выборе года.
Изменил на (<>) и все в порядке стало.
11. Makushimo 154 17.03.16 15:58 Сейчас в теме
Если выбрать год, потом еще раз год
то вылетает с ошибкой
надо в рекурсию заворачивать

однозначно плюс
12. Yuriy.MW 22 02.02.17 16:07 Сейчас в теме
Чуток подкорректировал процедуры.
Месяц - строка, реквизит формы
ПериодРегистрации - Дата, реквизит объекта

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
	 Месяц = Формат(Объект.ПериодРегистрации, "ДФ='MMMM yyyy'");
	
КонецПроцедуры

&НаКлиенте
Процедура СформироватьСписокВыбораМесяца(Год)
    
    Элементы.Месяц.СписокВыбора.Очистить();
    Элементы.Месяц.СписокВыбора.Добавить(Дата(Год-1, 1, 1), Формат(Год-1, "ЧГ=0")); //для смены года
    Для к = 1 По 12  Цикл
        СформДата = Дата(Год, к, 1);
        Элементы.Месяц.СписокВыбора.Добавить(СформДата, Формат(СформДата, "ДФ='MMMM yyyy'"));    
    КонецЦикла;
    Элементы.Месяц.СписокВыбора.Добавить(Дата(Год+1, 1, 1), Формат(Год+1, "ЧГ=0")); //для смены года    

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

&НаКлиенте
Процедура МесяцНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)
	
	Если ЗначениеЗаполнено(Объект.ПериодРегистрации) Тогда
		текМесяц = Объект.ПериодРегистрации;
	Иначе
		текМесяц = ТекущаяДата();
	КонецЕсли;
	СформироватьСписокВыбораМесяца(Год(текМесяц));
	
	СтандартнаяОбработка = Ложь;
	ВыбранноеЗначение = ЭтаФорма.ВыбратьИзСписка(Элемент.СписокВыбора, Элемент, Элемент.СписокВыбора.НайтиПоЗначению(текМесяц));
	Пока ВыбранноеЗначение <> Неопределено И СтрДлина(ВыбранноеЗначение.Представление) = 4 Цикл
		//цикл продолжается до тех пор, пока мы не выберем месяц
		СформироватьСписокВыбораМесяца(Год(ВыбранноеЗначение.Значение));
		ВыбранноеЗначение = ЭтаФорма.ВыбратьИзСписка(Элемент.СписокВыбора, Элемент);                    
	КонецЦикла;
	
	Если ВыбранноеЗначение <> Неопределено Тогда
		Месяц = ВыбранноеЗначение.Представление;
		Объект.ПериодРегистрации = ВыбранноеЗначение.Значение;
	КонецЕсли;
	
КонецПроцедуры
Показать
13. Ганс 07.02.17 12:57 Сейчас в теме
УТ11.3 не работает что-то! ((
14. RocKeR_13 688 07.02.17 13:27 Сейчас в теме
(13) да теперь модальные окна запрещены, выложу позже исправленный вариант.
Примерный код реализации теперь будет такой:

&НаКлиенте
Процедура МесяцНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)
	
    СтандартнаяОбработка = Ложь;
	Если Месяц <> "" Тогда

        //реквизит уже заполнен, нужно формировать список для года, соответствующего заполнению
        ВыбрГод = Число(Прав(Месяц, 4));
        СформироватьСписокВыбораМесяца(ВыбрГод);
    КонецЕсли;
    
    СтандартнаяОбработка = Ложь;
    ВыбранноеЗначение = Строка(ЭтаФорма.ВыбратьИзСписка(Элемент.СписокВыбора, Элемент));
    Если ВыбранноеЗначение <> "" Тогда
        Если СтрДлина(ВыбранноеЗначение)=4 Тогда

            //выбрано значение, которое соответствует смене года в списке
            Пока СтрДлина(ВыбранноеЗначение) = 4 Цикл

                //цикл продолжается до тех пор, пока мы не выберем месяц
                ВыбрГод = Число(ВыбранноеЗначение);
                СформироватьСписокВыбораМесяца(ВыбрГод);
                ВыбранноеЗначение = Строка(ЭтаФорма.ВыбратьИзСписка(Элемент.СписокВыбора, Элемент));                    
            КонецЦикла;
        КонецЕсли;
        Если ВыбранноеЗначение <> "" Тогда

             //выбрали месяц, а не пустое значение, запишем его

            //если выбрали пустое значение, то в реквизите месяц сохранится значение, которое было до выбора
            Месяц = ВыбранноеЗначение;

            НомМесяца = (Найти("янвфевмарапрмайиюниюлавгсеноктноядек",Нрег(Лев(ВыбранноеЗначение,3)))+2)/3; //получаем номер месяца
            ВыбрГод = Число(Прав(ВыбранноеЗначение, 4));
            Объект.КонецМесяца = КонецМесяца(Дата(ВыбрГод, НомМесяца, 1));


        КонецЕсли;
    КонецЕсли;	
КонецПроцедуры

&НаКлиенте
Процедура МесяцНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	
    СтандартнаяОбработка = Ложь;
	Если Месяц <> "" Тогда

        //реквизит уже заполнен, нужно формировать список для года, соответствующего заполнению
        ВыбрГод = Число(Прав(Месяц, 4));
        СформироватьСписокВыбораМесяца(ВыбрГод);
    КонецЕсли;
    
	Оповещение = Новый ОписаниеОповещения("ПослеВыбораМесяцаИзСписка", ЭтотОбъект);
	ПоказатьВыборИзСписка(Оповещение, Элементы.Месяц.СписокВыбора, Элементы.Месяц);
	
КонецПроцедуры

&НаКлиенте
Процедура ПослеВыбораМесяцаИзСписка(Результат, ДП) Экспорт
	
	ВыбранноеЗначение = Результат.Значение;
	
    Если ВыбранноеЗначение <> "" Тогда
        Если СтрДлина(ВыбранноеЗначение)=4 Тогда

            //выбрано значение, которое соответствует смене года в списке
			//Пока СтрДлина(ВыбранноеЗначение) = 4 Цикл

                //цикл продолжается до тех пор, пока мы не выберем месяц
                ВыбрГод = Число(ВыбранноеЗначение);
                СформироватьСписокВыбораМесяца(ВыбрГод);
				Оповещение = Новый ОписаниеОповещения("ПослеВыбораМесяцаИзСписка", ЭтотОбъект);
				ПоказатьВыборИзСписка(Оповещение, Элементы.Месяц.СписокВыбора, Элементы.Месяц);
				Возврат;
			//КонецЦикла;
        ИначеЕсли ВыбранноеЗначение <> "" Тогда

             //выбрали месяц, а не пустое значение, запишем его

            //если выбрали пустое значение, то в реквизите месяц сохранится значение, которое было до выбора
            Месяц = ВыбранноеЗначение;

            НомМесяца = (Найти("янвфевмарапрмайиюниюлавгсеноктноядек",Нрег(Лев(ВыбранноеЗначение,3)))+2)/3; //получаем номер месяца
            ВыбрГод = Число(Прав(ВыбранноеЗначение, 4));
            Объект.КонецМесяца = КонецМесяца(Дата(ВыбрГод, НомМесяца, 1));


        КонецЕсли;
    КонецЕсли;		
	
КонецПроцедуры

Процедура СформироватьСписокВыбораМесяца(Год)
	
	Элементы.Месяц.СписокВыбора.Очистить();
	Элементы.Месяц.СписокВыбора.Добавить(Формат(Год-1, "ЧГ=0"));
	Для к = 1 По 12  Цикл
		СформДата = Дата(Год, к, 1);
		Наим = Формат(СформДата, "ДФ = ММММ_гггг");
		Наим = СтрЗаменить(Наим, "_", " ");
		Элементы.Месяц.СписокВыбора.Добавить(Наим);	
	КонецЦикла; 
	Элементы.Месяц.СписокВыбора.Добавить(Формат(Год+1, "ЧГ=0"));
	

КонецПроцедуры
Показать


И при открытии:
    Если ЗначениеЗаполнено(Объект.КонецМесяца) Тогда
        Месяц = Формат(Объект.КонецМесяца, "ДФ = ММММ");

        //формируем список на год, соответствующий заполненному реквизиту

        СформироватьСписокВыбораМесяца(Год(Объект.КонецМесяца));
    Иначе
        Месяц = ""; 

        //формируем список на текущий год

        СформироватьСписокВыбораМесяца(Год(ТекущаяДата()));
    КонецЕсли;
Показать
15. vnagapov 28.06.17 10:38 Сейчас в теме
Я думаю, что так еще проще

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	Месяц = Формат(Объект.ПериодРегистрации, "ДФ='MMMM yyyy'");
	СформироватьСписокВыбораМесяца(Год(Объект.ПериодРегистрации));
КонецПроцедуры

Процедура СформироватьСписокВыбораМесяца(Год)
    
    Элементы.Месяц.СписокВыбора.Очистить();
    Элементы.Месяц.СписокВыбора.Добавить(Формат(Год-1, "ЧГ=0"));
    Для к = 1 По 12  Цикл
        СформДата = Дата(Год, к, 1);
        Наим = Формат(СформДата, "ДФ = ММММ_гггг");
        Наим = СтрЗаменить(Наим, "_", " ");
        Элементы.Месяц.СписокВыбора.Добавить(Наим);    
    КонецЦикла; 
    Элементы.Месяц.СписокВыбора.Добавить(Формат(Год+1, "ЧГ=0"));
КонецПроцедуры


&НаКлиенте
Процедура МесяцПриИзменении(Элемент)
	Если Месяц <> "" Тогда
		Если СтрДлина(Месяц)=4 Тогда 
			СформироватьСписокВыбораМесяца(Число(Месяц));
			Объект.ПериодРегистрации = НачалоМесяца(Дата(Число(Месяц), 1, 1));
			Месяц = Формат(Объект.ПериодРегистрации, "ДФ='MMMM yyyy'");
		Иначе
			НомМесяца = (Найти("янвфевмарапрмайиюниюлавгсеноктноядек",Нрег(Лев(Месяц,3)))+2)/3; //получаем номер месяца
			ВыбрГод = Число(Прав(Месяц, 4));
			Объект.ПериодРегистрации = НачалоМесяца(Дата(ВыбрГод, НомМесяца, 1));
		КонецЕсли;	
	КонецЕсли;
КонецПроцедуры
Показать
Lapitskiy; alexlesley; +2 Ответить
16. user805602 07.09.18 09:16 Сейчас в теме
Если Месяц "" Тогда

Если ВыбранноеЗначение "" Тогда

Пропущен, знак..
Оставьте свое сообщение

См. также

Альтернативный способ добавления элементов и реквизитов на формы 29

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 ERP2 УТ11 Россия Абонемент ($m) Работа с интерфейсом

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

1 стартмани

09.09.2019    2363    4    bmk74    0       

Удобный выбор из таблицы/дерева в УФ 61

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Практика программирования Работа с интерфейсом Разработка

Выбор из таблицы значений или дерева значений в выпадающем списке рядом с полем ввода - УФ, быстро и просто!

1 стартмани

12.08.2019    2879    4    Yashazz    18       

[Механизм интерфейса] Свой флажок (чекбокс) 109

Инструменты и обработки Программист Конфигурация (md, cf) v8 1cv8.cf Абонемент ($m) Работа с интерфейсом

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

1 стартмани

09.08.2019    4094    4    rpgshnik    37       

Отбор на управляемой форме из списка значений 41

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Практика программирования Работа с интерфейсом Разработка

Пример простого удобного отбора любых данных ссылочного типа на управляемой форме. Работа обработки проверена на релизе: 1С:Предприятие 8.3.13.1513.

1 стартмани

09.08.2019    4186    4    nagaitseff    6       

Изменяющееся контекстное меню в 1С 8.3 44

Статья Программист Архив с данными v8 v8::УФ Абонемент ($m) Практика программирования Разработка Работа с интерфейсом

В одной практической задаче мне пришлось разрабатывать контекстное меню таблицы управляемой формы, которое должно было меняться в зависимости от данных, находящихся в этой таблице. Ниже приведен мой способ решения этой задачи.

1 стартмани

06.08.2019    4225    1    signum2009    14       

"Мобильный ТСД" - инвентаризация и сбор штрихкодов для iOS и Android 21

Инструменты и обработки Программист Пользователь Расширение (cfe) v8 v8::Mobile Розница УНФ ERP2 УТ11 КА2 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика УУ Монитор заказов Оптовая торговля Розничная торговля Ценообразование, анализ цен Абонемент ($m) Внешние источники данных Сканер штрих-кода Терминал сбора данных Работа с интерфейсом Мобильная разработка

Простой мобильный терминал сбора данных для iOS и Android, не требующий сложных настроек и установки дополнительных программ. Для выгрузки базы штрихкодов и загрузки собранных штрихкодов в документы учетной системы используется Яндекс Диск или облачный сервис и расширение конфигурации. Работает с конфигурациями Розница 2, УНФ 1.6, УТ 11, ERP, КА2.

3 стартмани

22.04.2019    9674    51    suepifanov    61       

Шпаргалка разработчика для работы с формами 23

Отчеты и формы Программист Архив с данными v8 Россия Абонемент ($m) Работа с интерфейсом

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

3 стартмани

31.10.2018    7821    68    ELAM    3       

Открывашка ячеек таблиц 85

Инструменты и обработки Программист Расширение (cfe) v8 1cv8.cf Абонемент ($m) Работа с интерфейсом

Глобальное сочетание клавиш для открытия объекта по ссылке из текущей ячейки любой таблицы в большинстве управляемых форм

1 стартмани

27.10.2018    9202    11    tormozit    28       

Визуализация событий на временной шкале средствами "Поле HTML документа" 165

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Работа с интерфейсом

Интересный способ наглядно отобразить события на временной шкале. Например, может быть применен для красивого вывода документов по клиенту. Тестировалось на платформе 8.3.12.1469

1 стартмани

31.07.2018    13835    127    Plotks2017    24       

Продвинутое рисование в табличном документе (стрелок и не только) 73

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 Абонемент ($m) Практика программирования Работа с интерфейсом

Вспоминаем геометрию и основы компьютерной графики. Матрицы и аффинные преобразования на плоскости.

1 стартмани

24.07.2018    8049    16    WalterMort    27       

Работа с данными выбора 38

Инструменты и обработки Программист Архив с данными v8 Россия Абонемент ($m) Практика программирования Работа с интерфейсом

В управляемом интерфейсе заложена мощная возможность описывать связи реквизитов формы через параметры. Установка параметров связей позволяет ограничить выбор данных так, чтобы целостность данных была обеспечена на этапе ввода. Однако без дополнительного программирования задать можно только самые простые связи. Такие условия связи, как зависимость от реквизита через точку или зависимость через дополнительное отношение, заданное в регистре сведений - уже задать без программирования не получится.

1 стартмани

17.07.2018    19591    13    kalyaka    15       

Управление состоянием формы через конечный автомат 81

Статья Программист Конфигурация (md, cf) v8 Россия Абонемент ($m) Практика программирования Работа с интерфейсом

Взаимодействие пользователя с интерфейсом приводит к изменению состояния формы и её элементов. Элементы отражают текущее состояние формы через свойства: видимости, доступности, оформления, текста заголовка и т.д. Даже при небольшом количестве элементов количество возможных состояний формы может быть достаточно большим. Необходимость учета всех состояний формы порождает сложные алгоритмы настройки элементов. В статье рассматривается алгоритмическое решение перехода к состоянию формы с использованием функционального подхода на основе декларативного описания

1 стартмани

19.06.2018    9905    11    kalyaka    35       

Иерархическая диаграмма 42

Инструменты и обработки Программист Бизнес-аналитик Руководитель проекта Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Работа с интерфейсом

Концепция диаграммы по иерархической структуре данных, например по номенклатуре (продажи или остатки на складах).

2 стартмани

17.06.2018    7129    14    DrAku1a    4       

Программная работа с графическими схемами. Готовое решение 39

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Инструментарий разработчика Универсальные обработки Работа с интерфейсом

Работоспособное, проверенное на практике, простое и удобное программное управление графическими схемами.

1 стартмани

18.02.2018    11373    16    Yashazz    13       

Тестирование интерфейса в обычном приложении 8.2 при помощи SikuliX 105

Инструменты и обработки Системный администратор Программист Архив с данными v8 1cv8.cf Windows Абонемент ($m) Инструментарий разработчика Работа с интерфейсом

Как же не хватает клиента тестирования на платформе 8.2. Не кликнешь на кнопку, не выберешь из списка, не проверишь видит ли надпись пользователь. Воспользуемся внешним инструментом SikuliX, который позволит нам протестировать функционал форм. Данный инструмент легко встраивается в линию сборки и может "дружить" с уже известным многим Open-source продуктами.

1 стартмани

03.01.2018    19554    2    kraynev-navi    40       

Программное формирование форматированной строки в стиле html+inline CSS 52

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Работа с интерфейсом Инструментарий разработчика

Если вам приходилось работать с форматированными строками программно, то вы знаете, какая это боль. Данное решение облегчает программное формирование таких строк.

1 стартмани

18.11.2017    19168    24    bonv    5       

Размеры управляемой формы 100

Статья Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Практика программирования Работа с интерфейсом Универсальные функции

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

1 стартмани

08.10.2017    17558    46    json    8       

Программное создание элементов графической схемы (через XSLT) 57

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Практика программирования Работа с интерфейсом

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

1 стартмани

20.07.2017    13859    49    lazarenko    16       

Расширенная настройка динамического списка УФ 115

Инструменты и обработки Программист Расширение (cfe) v8 v8::УФ 1cv8.cf Абонемент ($m) Работа с интерфейсом

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

1 стартмани

31.05.2017    24127    143    tormozit    20       

Простой редактор плана помещения JavaScript 100

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Windows Абонемент ($m) Практика программирования Работа с интерфейсом

На ресурсе сейчас очень много решений, которые позволяют редактировать карты, используя географические схемы. Так же много решений, которые позволяют редактировать объекты онлайн веб-карт. Мне же нужно было простое решение, для того чтобы расставить квадратные объекты на плане, показать их пользователю. Ну и распечатать, опять же. Я решил написать простенький редактор на JavaScript с использованием библиотеки Raphael.

1 стартмани

23.11.2016    14829    91    igel9780    16       

Настройка начальной страницы (Рабочего стола) 47

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Работа с интерфейсом Рабочее место Универсальные обработки

Альтернатива стандартной настройке начальной страницы. В типовой доступны лишь те формы, что явно "разрешены" разработчиком в режиме конфигуратора. Эта обработка позволяет собрать "Рабочий стол" из любых подходящих форм в пользовательском режиме. Без программирования. БСП не используется. Не расширение. Универсальна, т.е. подойдет для любой конфигурации (в т.ч. самописной).

2 стартмани

19.10.2016    24165    186    Erne100    24       

[Расширение] Стартовые страницы. Автозапуск форм при старте 1С. (8.3.9+, без доработки конфигурации) 51

Инструменты и обработки no Расширение (cfe) v8 1cv8.cf Абонемент ($m) Инструментарий разработчика Работа с интерфейсом

Уверен, что в большинстве случаев список справочников, отчетов, обработок (объектов 1С в целом), к которому обращаются пользователи после запуска конфигурации 1С, раз от раза меняется не сильно. Так почему бы немного не упростить процесс открытия часто используемых форм? Данное расширение позволяет настроить автоматическое открытие различных форм объектов сразу после запуска 1С. Список форм настраивается индивидуально для каждого пользователя. Работает на платформе 8.3.9, без доработки конфигурации.

1 стартмани

03.10.2016    15878    78    Artem-B    19       

Конструктор условного оформления 40

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Инструментарий разработчика Работа с интерфейсом

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

1 стартмани

27.09.2016    12727    15    Fragster    6       

HTTP-сервис: отчеты [Расширение] 122

Инструменты и обработки Системный администратор Программист Расширение (cfe) v8 1cv8.cf Абонемент ($m) Практика программирования Работа с интерфейсом

Это HTTP-сервис, который возвращает почти любой отчет в HTML, XLSX или в JSON. Сохраните вариант отчета, получите на него ссылку и можно получить данные без захода в 1С. Работает в конфигурациях на основе БСП 2.3.3+, для отчетов на СКД и в 1С 8.3.8+

2 стартмани

30.08.2016    18868    125    Stepa86    15       

Простые радости жизни программиста 1С: выбор типа значения 51

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Практика программирования Работа с интерфейсом

Предлагаемая в работе обработка включает обычную и управляемую формы, которые максимально точно реализуют функциональность системного диалога выбора типа в толстом клиенте обычное приложение (включая оформление диалога). Эти формы имеют дополнительные интерфейсные удобства и могут быть использованы в качестве альтернативных диалогов выбора типа.

1 стартмани

17.02.2016    38473    45    yuraos    17       

Визуальный редактор цветовых схем подсветки синтаксиса 1С + импорт схем Visual Studio 43

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8 1cv8.cf Windows Абонемент ($m) Работа с интерфейсом

Данная обработка призвана облегчить настройку рабочего места программиста 1С, а именно улучшить визуальное восприятие кода, уменьшить утомляемость, и, как следствие, увеличить общую производительность труда!

1 стартмани

29.01.2016    11473    74    ram3    27       

Передача реквизитов объекта из основной формы в дополнительную и обратно на управляемых формах 91

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Windows Абонемент ($m) Работа с интерфейсом

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

1 стартмани

02.11.2015    22200    8    Wolex    29       

Инструмент для создания веб приложений на основе 1С REST сервиса 67

Инструменты и обработки Программист Пользователь Приложение (exe) v8 1cv8.cf Windows Абонемент ($m) Инструментарий разработчика WEB Работа с интерфейсом

Обзор платформы-конструктора для создания веб-приложений, использующих в качестве источника базы данных 1С

1 стартмани

13.10.2015    21320    82    dmzubr    23       

Асинхронная загрузка данных на Управляемую Форму. Прогресс бар (УФ 8.3). Индикация состояния процесса 78

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Работа с интерфейсом Универсальные функции Внешние источники данных

Часто бывает, что возникает необходимость загрузить множество данных из разнообразных источников в определенную форму или рабочее место. В процессе загрузки пользователь в неведении — информация готовится или нет. Прием позволяет загружать данные из нескольких источников асинхронно, не блокируя форму\интерфейс, а также отображать ошибки и состояние прогресса. По мере готовности данных, они будут отображены на форме

1 стартмани

09.10.2015    28713    133    pbazeliuk    6       

Визуальный html редактор на управляемых формах 64

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) WEB Работа с интерфейсом

Мы рассмотрим некоторые особенности и возможности подключения сторонних визуальных html редакторов на javascript - TinyMCE, CK Editor. С помощью приложенной обработки Вы сможете попробовать в действии полноценный и удобный визуальный html редактор, а при желании перенести подобный функционал к себе.

1 стартмани

30.09.2015    20674    183    ivanov660    26       

NativeDraw: Компонента рисования для 1С [V2.6.2] 106

Инструменты и обработки Программист Компонента, плагин (dll, vbs,..) v8 1cv8.cf Windows Абонемент ($m) Разработка внешних компонент Работа с интерфейсом

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

1 стартмани

13.07.2015    39504    421    ПерваяСистема    140       

Универсальное настраиваемое рабочее место (Версия 2.0) 52

Инструменты и обработки Системный администратор Программист Конфигурация (md, cf) v8 1cv8.cf Абонемент ($m) Универсальные обработки Работа с интерфейсом Рабочее место

При работе очень часто штатные интерфейсы 1С бывают неудобны в силу разной специфики работы каждого пользователя, а также конфигурация обычно "обрастает" новыми обработками, отчетами, документами и справочниками, которые требуются для работы организации, а в стандартных меню их, естественно, нет. Это особенно относится к толстому клиенту (например, программы УПП, УТ10.3 и пр.). Делать свои интерфейсы - не всегда спасает: то, что нужно одному пользователю, другому совершенно не надо, даже если у них одинаковые функциональные обязанности. Открывать все через меню "Операции" тоже неудобно: у нас, например, за несколько лет работы добавилось столько нового и специфичного, что уже и не помнишь, что и для чего. Поэтому родилась идея сделать что-то удобное и универсальное, что и получилось в результате: пользователь сам, не прибегая к помощи программиста, может сделать удобное меню для себя и всегда изменить, если требуется. И без всяких изменений конфигурации...

3 стартмани

13.06.2015    11967    120    yuraskid    29       

Кнопки управления группировками табличного документа для управляемых форм 23

Инструменты и обработки Программист Внешний отчет (ert,erf) v8 1cv8.cf Абонемент ($m) Работа с интерфейсом

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

1 стартмани

02.06.2015    21625    31    unichkin    9       

Управляемая форма 1С 8.2 (8.3) – работа с деревом значений и таблицей значений. Часть I (Основы) 64

Инструменты и обработки Программист Архив с данными v8 1cv8.cf Windows Абонемент ($m) Практика программирования Работа с интерфейсом

Как известно, в платформе 1С 8.1 не составляло никакого труда связать дерево значений с табличным полем на форме, единственное, что при этом нужно было не забыть, так это СоздатьКолонки(). В управляемом приложении 1С 8.2 (8.3) сделать это не так просто, как кажется на первый взгляд. В данной статье речь пойдет о программном создании дерева значений (таблицы значений) на управляемой форме в управляемом приложении 1С

2 стартмани

14.05.2015    69610    25    ll13    13       

[БП 3.0] [ЗУП 3.1 ] [БГУ 2.0] [УТ 11.4 ] [Расширения] Отключение регламента, оповещений и пр. 43

Инструменты и обработки Системный администратор Программист Расширение (cfe) v8 v8::БУ БП3.0 Россия Windows Абонемент ($m) Работа с интерфейсом

Облегчить жисть БП 3.0 отключением всякого разного можно! Обработка позволяет отключить ряд оповещений, регламентных заданий (подробно описано в http://infostart.ru/public/303564/). Кроме того, позволяет более подробную настройку использования: - Регламентных и фоновых заданий; - Информации для форм; - Задач бухгалтера (где они есть). 21.01.2019 Версии с новым режимом совсместимости для основных конфигураций С удовольствием выслушаю (по возможности реализую) сообщество, что ещё можно сделать, чтобы программа работала по шустрее.

1 стартмани

04.03.2015    22327    131    Alex_E    17       

Подсистема "Планировщик" (версия 1.1) 138

Отчеты и формы no Конфигурация (md, cf) v8 1cv8.cf Россия Абонемент ($m) Практика программирования WEB Работа с интерфейсом

Конфигурация с подсистемой "Планировщик" (календарь). Бесплатная открытая версия для свободного использования не включает двустороннюю интеграцию с сервисом Google и Outlook.com.

5 стартмани

02.03.2015    55672    463    vandalsvq    62       

Анимация фона элементов на форме в стиле JQuery 75

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Работа с интерфейсом

К сожалению, у платформы 1С не так много красивостей, которыми обычно сдабривают формы обычных web-страниц. Нам недоступны эффекты JQuery и других javascript-библиотек. А иногда хочется сделать необычно, красиво и удобно.

1 стартмани

18.02.2015    13867    27    kraynev-navi    9       

Произвольное размещение и добавление кнопок на управляемых формах пользователем 37

Инструменты и обработки Программист Конфигурация (md, cf) v8 1cv8.cf Windows Абонемент ($m) Инструментарий разработчика Работа с интерфейсом

Иногда нам нужно чтобы пользователи могли сами рисовать себе формы в режиме 1С Предприятия, добавлять на них необходимые кнопки, назначать на эти кнопки объекты, размещать эти кнопки на форме произвольно. На управляемых формах даже в конфигураторе нет возможности произвольно размещать кнопки на форме. Чтобы исправить эту оплошность предлагаю вам свое решение данной проблемы.

1 стартмани

07.11.2014    16167    43    tvixeg    14       

[ТАКСИ] Шаблон внешней обработки...и не только 207

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Универсальные обработки Работа с интерфейсом Универсальные функции

Обработка предназначена для лентяев, к каковым, в первую очередь, отношу себя. Это в некотором роде шпаргалка в виде шаблона внешней обработки. Для создания новой копируем эту, удаляем ненужное, вставляем нужное - получаем результат. Чем ваять с нуля, каждый раз прописывая одно и то же, проще использовать заготовку, подобную этой... 24.11.2018 - Версия 1.21 - что-то добавил, что-то поправил.... 16.04.2019 - По просьбам трудящихся (немногочисленным, правда) оставил последнюю версию 1.21, дабы не было путаницы... 17.04.2019 - Версия 1.22 Вернул пример сохранения табличного документа в разных форматах и чтения DBF из версии 1.16 (как потерялось - сам не понял)

2 стартмани

22.09.2014    46004    687    Alex_E    27       

Визуализация и интерактивное изменение дерева значений. 68

Инструменты и обработки no Внешняя обработка (ert,epf) v8 1cv8.cf Windows Абонемент ($m) Практика программирования Универсальные обработки Работа с интерфейсом

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

1 стартмани

01.08.2014    16764    99    Belkin_Sergey    27       

Локализация конфигурации с помощью Google 13

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Windows Абонемент ($m) Инструментарий разработчика Работа с интерфейсом

Обработка позволяет выполнять перевод интерфейсов в любой конфигурации 1С средствами Google. За основу взята обработка: http://infostart.ru/public/190890/

1 стартмани

06.06.2014    15412    32    x-tremeall    6       

Прогресс-бар длительных серверных операций (БСП) 45

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Инструментарий разработчика Работа с интерфейсом

Простой и удобный шаблон для подобного рода задач в виде внешней обработки. Используется технология, предлагаемая в БСП (Библиотеке Стандартных Подсистем), практически без ноу-хау. Доработано таким образом, что обработка может быть как встроенной в конфигурацию, так и внешней.

1 стартмани

23.04.2014    24028    255    herfis    14       

Алгоритмы. Часть 1.1. Динамические соединения. 186

Инструменты и обработки Программист Конфигурация (md, cf) v8 1cv8.cf Абонемент ($m) Работа с интерфейсом

Конспект первой лекции из свежего курса Принстонского университета США за 2014 год. Вольный перевод с английского с реализацией примеров на 1С. Курс в целом достаточно интересный и полезный для общего развития. Перевел и адаптировал только первую лекцию (в 1 части 11 лекций, 2 часть - еще не завершена преподавателями). Первоисточник на английском - https://www.coursera.org/course/algs4partI. Если сообщество посчитает материал полезным - займусь переводом следующих лекций (но это довольно трудоемко). Enjoy! :)

1 стартмани

04.04.2014    27763    23    Aleksey.Bochkov    33       

HTML редактор для 1С (1С HTML IDE) 74

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Windows Абонемент ($m) Работа с интерфейсом

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

1 стартмани

20.02.2014    25483    170    Nikola23    28       

Изучаем мобильную платформу 8.3.4: геопозиционирование 155

Инструменты и обработки Программист Архив с данными v8 v8::Mobile Android Абонемент ($m) Работа с интерфейсом

Блеск и нищета geo-инструментов мобильной платформы 8.3.4. Пишем письмо турецкому султану. Но Чекин, как в Foursquare уже реально!

1 стартмани

14.02.2014    57150    198    barelpro    43       

Графический индикатор процесса в табличной части на Управляемых формах 50

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 Россия Windows Абонемент ($m) Работа с интерфейсом

Графический индикатор процесса на Управляемых формах, для любой ячейки в табличной части формы

1 стартмани

04.02.2014    18399    88    amyd    25