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

31.08.15

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

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

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

Процедура ШкалаВСтрокеСостояния(ТекЗапись, Записей, ПоказыватьПроцент = Истина, ПоказыватьПозицию = Истина, СвойТекстВКонце = "") Экспорт
	Текст = СокрЛП(СвойТекстВКонце);
	Если НЕ Текст = "" Тогда Текст = " " + Текст; КонецЕсли;
	Точки = "....................................................................................................";
	Черточки = "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!";
	Процент = ТекЗапись/Записей * 100;
	Если ПоказыватьПроцент = Истина Тогда
		ПроцентТекст = Формат(Процент, "ЧДЦ=1; ЧН=0,0");
	Иначе
		ПроцентТекст = "";
	КонецЕсли;
	Если ПоказыватьПозицию = Истина Тогда
		Позиция = Формат(ТекЗапись, "ЧН=0; ЧГ=") + "/" + Формат(Записей, "ЧН=0; ЧГ=");
	Иначе
		Позиция = "";
	КонецЕсли;
	Шкала = Лев(Лев(Черточки, Цел(Процент)) + Точки, 100);
	Если ПоказыватьПозицию И ПоказыватьПроцент Тогда
		Состояние(Шкала + " (" + ПроцентТекст + "% - " + Позиция + ")" + Текст);
	ИначеЕсли ПоказыватьПозицию Тогда
		Состояние(Шкала + " (" + Позиция + ")" + Текст);
	ИначеЕсли ПоказыватьПроцент Тогда
		Состояние(Шкала + " (" + ПроцентТекст + "%)" + Текст);
	Иначе
		Состояние(Шкала + Текст);
	КонецЕсли;
КонецПроцедуры

шкала прогресс прогрессбар

См. также

Богатый редактор картинок, хранимых в базе, с возможностью РИСОВАНИЯ. Редактор внешних файлов картинок. Объект, расширяющий возможности работы с картинками из встроенного языка (Три в одном) + Обработка «Стандартизация картинок»

Работа с интерфейсом Рабочее место Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Обработка предназначена для редактирования картинок в режиме «Предприятие», с возможностью РИСОВАТЬ на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). Обработка позволяет редактировать как картинки, хранимые в базе, так и графические файлы с диска на файловой системе. Помимо базовых функций (изменение размеров, преобразование формата, обрезание картинки, повороты и т.п.) – редактор имеет богатый набор инструментов для рисования. Доступна функция вставки изображения из буфера обмена. Также обработка может быть использована из встроенного языка как объект для редактирования картинок. Объект может быть использован: на стороне клиента, на стороне сервера, из внешнего соединения. Данная обработка будет особенно полезна тем, кто вносит картинки в базу (изображения номенклатуры, фотографии физических лиц и т.п.). Функционал реализуется с использованием JavaScript и бесплатного ПО ImageMagick (без использования внешних компонент).

6000 руб.

16.01.2015    61792    43    59    

80

[Расширения] Динамическое управление видимостью и доступностью элементов форм (УФ) (8.3.6+)

Работа с интерфейсом Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Механизм «Динамическое управление доступом к элементам форм объектов 1С8» предназначен для обеспечения возможности оперативного управления видимостью и доступностью элементов форм документов и справочников продуктов фирмы «1С» «1С:Предприятие 8». Решение универсальное, встраивается в любую конфигурацию с минимальными доработками, что позволяет без проблем обновлять типовые решения.

5000 руб.

14.01.2016    54394    16    21    

42

Управление дашбордами

Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Обработка предназначена для создания и управления дашбордами.

2400 руб.

29.06.2020    16695    21    4    

35

Новогоднее оформление для 1С

Работа с интерфейсом Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Бесплатно (free)

Добавьте новогоднего настроения! Расширение создает декорацию в виде гирлянды на некоторых формах объектов.

27.12.2023    10732    750    elcoan    45    

106

Конструктор HTML, CSS и javascript

Инструментарий разработчика Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

2 стартмани

10.04.2023    9606    151    acces969    31    

118

Модель состояния для MVC

Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

"MVC плохо применима в 1С" - познакомьтесь с моделью состояния и, возможно, ваше мнение поменяется! Представленное решение является эволюционным развитием идеи реализации MVC для 1С. В новой версии добавлены DSL для описания модели состояния, а также параметризация свойств параметров и элементов формы.

1 стартмани

05.07.2022    3663    kalyaka    2    

27

Табло очереди заказов на экран телевизора

WEB-интеграция Работа с интерфейсом Платформа 1С v8.3 1С:Розница 2 Платные (руб)

Связка из веб-приложения и расширения для 1С: Розница 2.3.

3600 руб.

29.04.2022    12077    1    5    

10
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. cargobird 306 31.08.15 21:01 Сейчас в теме
(0), еще бы пакетный вывод сюда (по 50, по 500 и т.д.). При большом количестве значений постоянный вывод информации в строку состояния замедляет работу, а так бы в самой процедуре решать, выводить на данном значении строку состояния или нет.
madonov; gubanoff; ogre2007; +3 Ответить
3. Ivon 673 31.08.15 22:51 Сейчас в теме
(1) cargobird, Вообще это можно сделать и вне процедуры, а на процедуру подавать значения, кратные нужным. Хотя код несложный, можно самому доделать.
8. cargobird 306 01.09.15 10:22 Сейчас в теме
(1), Кого пакетный вывод интересует...
Процедура СчетчикВСостояние(Нумератор, Делитель = 500, Всего = 0) Экспорт
	// предназначена для вызова из любого цикла
	// выводит в строку состояния значение Нумератора, если Нумератор нацело делится на Делитель
	// когда задан параметр Всего дополнительно выводится текущий процент выполнения от Всего
	// обязательно! перед циклом задать значение нумератора равное 0 (Нумератор = 0;)
	// Вариант вызова 1: СчетчикВСостояние(Нумератор); - вывод в строке состояния числа с шагом 500
	// Вариант вызова 2: СчетчикВСостояние(Нумератор, 200); - вывод в строке состояния числа с шагом 200
	// Вариант вызова 3: СчетчикВСостояние(Нумератор, 300, ТЗ.Количество()); - вывод в строке состояния числа с шагом 300 и процента от количества строк ТЗ
	#Если Клиент Тогда
	Если Делитель < 0 Тогда
		Возврат;
	КонецЕсли;
	Нумератор = Нумератор + 1;
	Если Цел(Нумератор / Делитель) = Нумератор / Делитель Тогда
		Состояние(Строка(Нумератор) + ?(Всего = 0, "", " (" + Формат((Нумератор / Всего) * 100, "ЧДЦ=2") + "%)"));
	КонецЕсли;
	#КонецЕсли
КонецПроцедуры
Показать
9. Ivon 673 01.09.15 14:53 Сейчас в теме
(8) cargobird,
я бы заменил
Цел(Нумератор / Делитель) = Нумератор / Делитель

на
Нумератор % Делитель = 0

И быстрее и правильнее.
ojiojiowka; cargobird; +2 Ответить
10. cargobird 306 01.09.15 15:26 Сейчас в теме
(9) век живи, век учись, не видел такой конструкции, спасибо)
2. Diversus 2306 31.08.15 22:50 Сейчас в теме
Давно, давно делал обработку пример микрографики в динамическом списке
Советую использовать не восклицательный знак, а как в обработке красивые спецсимволы.
4. Ivon 673 31.08.15 22:53 Сейчас в теме
(2) Diversus, Сама идея пришла спонтанно, изначально не было цели писать что-то в этом роде. Символы подбирал так, чтобы они в итоге сложились в прогресс-бар.
5. Alex_E 2353 31.08.15 23:17 Сейчас в теме
Главное - это для обычного приложения, для управляемого символов придумывать не надо :-)
13jaguar; +1 Ответить
6. rare-avis 729 01.09.15 02:15 Сейчас в теме
Клёво! Очень интересно наблюдать за появлением простых вещей - понимаешь, что она элементарная, и удивляешься - почему раньше до этого ни кто не додумался, в том числе и я. А потом начинается "copy-past"... На счет замедления правильно (и как было сказано, решается кратностью), но идея интересная.
altu71; adhocprog; +2 Ответить
18. denis_aka_wolf 79 03.09.15 05:46 Сейчас в теме
(6) rare-avis, уже не один раз писалось и в различных обработках встречается
21. Yashazz 4709 03.09.15 11:59 Сейчас в теме
(6), (7), вообще это лютый баян. Мы так ещё в ячейках таблиц значений на 7.7 делали имитацию прогресс-баров, вот как (13) пишет. Посему мне не вполне понятны восторги.
22. nSpirit2 03.09.15 13:57 Сейчас в теме
(21) Yashazz, А какже крутая анимация из Доса с меняющимися символами "-" " /" " |" " \" " -" вот это сила прогресбара
25. Ivon 673 10.03.16 14:52 Сейчас в теме
24. RustIG 1351 06.09.15 19:10 Сейчас в теме
(21)
Посему мне не вполне понятны восторги

вполне понятны, если принимать людей такими какие они есть. пришло время, когда новое поколение не знает семерку... я начинал программировать в 2008 году и сразу на 8.1, так что я тоже отношу себя к новому поколению...
cargobird; +1 Ответить
7. Igorro82IT 77 01.09.15 07:32 Сейчас в теме
Все гениальное- ПРОСТО!
Ничего сверхъестественного, но позитивно и информативно. Спасибо за идею, статью и код!
Обязательно буду использовать в личных наработках.
11. nSpirit2 01.09.15 17:22 Сейчас в теме
Я так понимаю это для обычного приложения ?
14. Ivon 673 01.09.15 18:38 Сейчас в теме
(11) nSpirit2, Только для обычного.
16. hillsnake 35 02.09.15 11:10 Сейчас в теме
(14) а кто подскажет, что с управляемым?
стандартную если честно даже включать не хочется ... сразу тормоза..
19. Ivon 673 03.09.15 10:28 Сейчас в теме
(16) ЛеваРоскошный, Это только для толстого клиента. Для управляемых форм нужно придумывать что-то другое.
20. Alex_E 2353 03.09.15 10:46 Сейчас в теме
(19)
Для управляемых форм нужно придумывать что-то другое.
- там синтаксис помощник уже все придумал:
Глобальный контекст (Global context)
Состояние (Status)
Синтаксис:

Состояние(<ТекстСообщения>, <Прогресс>, <Пояснение>, <Картинка>)
- передаем в параметр <Прогресс> кратное 100 значение - получаем градусник в окне состояния...
life-wayfarer; RustIG; +2 Ответить
12. lrs 27 01.09.15 17:40 Сейчас в теме
Вот ссылка на публикацию, на более изящное решение:
http://infostart.ru/public/59581/
15. Ivon 673 01.09.15 18:41 Сейчас в теме
(12) lrs, Ваше решение выводит только индикатор и процент. В моем варианте можно выводить так же и другую информацию.
13. 3.14159 94 01.09.15 18:06 Сейчас в теме
когда-то давным-давно, еще на 1С7.7 глобальную функцию делал... только вместо точек и восклицаний использовал ||||-----------------
17. Tilirxs 03.09.15 00:26 Сейчас в теме
Супер, Спасибо помогло
23. dnikolaev 177 03.09.15 15:57 Сейчас в теме
Оставьте свое сообщение