Небольшой пакет функций для использования в обработках (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/

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


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

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

См. также

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

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

21.05.2024    27798    dimanich70    83    

151

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

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

1 стартмани

18.03.2024    4725    5    John_d    11    

57

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

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

12.02.2024    29547    atdonya    25    

58

Универсальные функции Программист Платформа 1С v8.3 Бесплатно (free)

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

30.11.2023    6323    ke.92@mail.ru    17    

65

WEB-интеграция Универсальные функции Механизмы платформы 1С Программист Платформа 1С v8.3 1C:Бухгалтерия Бесплатно (free)

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

28.08.2023    17404    YA_418728146    8    

170

Пакетная печать Печатные формы Адаптация типовых решений Универсальные функции Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Абонемент ($m)

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

2 стартмани

22.08.2023    4561    76    progmaster    11    

4

Инструментарий разработчика Универсальные функции Платформа 1С v8.3 1C:Бухгалтерия 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

Копирует в буфер значения из списков, из ячеек отчетов, таблиц, настроек списков, других отборов и вставляет в выбранную настройку отбора. Работает с Объект не найден. Работает как в одной так и между разными базами 1С. Использует комбинации [Alt+C] Копировать список, [Alt+V] Вставить список. Также для копирования данных используется стандартная [Ctrl+C] (например из открытого xls, mxl, doc и т.п. файла скопировать список наименований)

1 стартмани

13.10.2022    19479    186    sapervodichka    112    

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