Небольшой пакет функций для использования в обработках (8.x)

25.11.08

Разработка - Универсальные функции

В состав пакета входит небольшое число функций, предназначенных для индикации и протоколирования выполняемых операций (в том числе иерархических).
Данный пакет не притендует на уникальность, "нетленку" и пр., однако я использую его во всех своих творениях. Пакет предназначен для использования в основном в обработках, выполняющих длительные операции.
Тексты функций и пример использования: //infostart.ru/profile/18122/projects/2824/

Первый набор функций - флаги начала / окончания процессов:
Функция НачалоПроцесса(НаименованиеПроцесса = "", ОбработчикПрерывания = "", ПараметрыОбработчика = Неопределено)
Процедура ОкончаниеПроцесса()

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

Второй набор - процедуры для визуализации процесса выполнения операций:
Функция мСоздатьПрогрессор(Описание="", ВсегоШагов=0, НеВычислятьВремя=Ложь, ЭлементФормы=Неопределено, Кратность = 1)
Процедура мОбновитьПрогрессор(прогрессор, ДопИнформация="")

Предназначены для вывода информации (%, счетчик, оставшееся время) в строку состояния, либо в указанный элемент формы.

Третий набор - служебные функции, среди которых следует отметить:
Процедура мСообщить(Сообщение, Знач Важность = Неопределено)

Процедура повторяет по назначению встроенную "Сообщить", с тем отличием, что учитывает уровень процесса.

Также используется переменная:
Перем мИмяФайлаЛога;

При указании имени файла, функция мСообщить() будет дублировать сообщения в указанный файл


Пример использования процедур (результаты - на скриншотах):
Процедура ОсновныеДействияФормыТест(Кнопка)
	Процесс = НачалоПроцесса("Вход в процедуру", "ЭлементыФормы.СтрокаПрогрессора.Заголовок = """"");
	ОбщийПрогрессор = мСоздатьПрогрессор(Процесс.Наименование, 3, , ЭлементыФормы.СтрокаПрогрессора);
	Для н = 0 по 3 Цикл
		мОбновитьПрогрессор(ОбщийПрогрессор, "Шаг №: " + н);
		мСообщить("	Шаг внешнего цикла №: " + н);
		Процесс = НачалоПроцесса("Вложенный цикл");
		Прогрессор = мСоздатьПрогрессор("Тест прогрессора", 5);
		Для к = 0 по 5 Цикл
			мОбновитьПрогрессор(Прогрессор);
			мСообщить("	Шаг внутреннего цикла №: " + к);
			Пауза(2);
		КонецЦикла;
		ОкончаниеПроцесса();
	КонецЦикла;
	ОкончаниеПроцесса();
	ЭлементыФормы.СтрокаПрогрессора.Заголовок = "";
КонецПроцедуры


Тексты функций и пример использования: //infostart.ru/profile/18122/projects/2824/

Далее результаты использования:


Пример вложеных сообщений и двух прогрессоров

Пример реакции на прерывание пользователем (элемент формы выделен, т.к. очищен автоматически после прерывания)

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Загрузка и выгрузка в Excel Универсальные функции Программист 1С:Предприятие 8 Россия Бесплатно (free)

Описанный ниже подход позволяет в три шага заполнять формулы в Excel файлы, вне зависимости от ОС сервера (MS Windows Server или Linux). Подход подразумевает отказ от работы с COM-объектом в пользу работы через "объектную модель документа" (DOM).

30.10.2025    3395    Abysswalker    8    

45

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

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

14.05.2025    6312    DeerCven    15    

57

Универсальные функции Программист 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

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

21.05.2024    48635    dimanich70    83    

169

Универсальные функции Программист 1С:Предприятие 8 1C:Бухгалтерия Абонемент ($m)

Задача: вставить картинку из буфера обмена на форму средствами платформы 1С.

1 стартмани

18.03.2024    7285    6    John_d    13    

59

Универсальные функции Программист Стажер 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

Пришлось помучиться с GUID-ами немного, решил поделиться опытом, мало ли кому пригодится.

12.02.2024    60795    atdonya    31    

69

Универсальные функции Программист 1С:Предприятие 8 Бесплатно (free)

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

30.11.2023    9077    ke.92@mail.ru    17    

68
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ValeriVP 1371 21.11.08 20:31 Сейчас в теме
не, ну не успел положить, уже плюсуют :)
2. artbear 1584 24.11.08 08:48 Сейчас в теме
ИМХО - в названии или описании нужно упомянуть, что это для 8 или 8.1
3. ValeriVP 1371 25.11.08 12:29 Сейчас в теме
4. 26.11.08 07:49 Сейчас в теме
Кривовато, если уж использовать пакет функий, то зачем оформлять отступы пробелами? Программа сама должна считать уровнь и вставлять нужное число табов.
5. ValeriVP 1371 26.11.08 10:42 Сейчас в теме
(4) как это не странно, но эти функции так и делают
Для отправки сообщения требуется регистрация/авторизация