БСП 2.3 и БСП 3.0: Просто про выполнение внешней обработки в фоне (c индикацией прогресса выполнения)

Публикация № 525648 18.05.16

Разработка - Инструментарий разработчика

фоновое выполнение внешняя обработка длительная операция БСП

Простое пояснение о том, как сделать внешнюю обработку с фоновым выполнением и индикацией процесса для любой конфигурации на основе БСП 2.3.2. UPDATE 20/09/19: добавлен вариант обработки с индикацией процента выполнения и статусом выполнения для БСП 3.0.

Не секрет, что после запуска "тяжелой" обработки хочется продолжать работать в программе, а также "видеть" время от времени сам процесс выполнения. Для простого пояснения, как это реализовано, и предназначена эта статья. Если ваша конфигурация не на БСП 2.3.2, можно сразу перейти, например, на эту статью //infostart.ru/public/157706/ 

Важно! Обработка должна использоваться только через штатный механизм БСП "Дополнительные отчеты и обработки".

Код модуля обработки

Примечание: обработку можно запустить как из формы (см. представление команды "Открыть форму и выполнить в фоне с индикацией") так и сразу на сервере (см представление команды "Выполняем на сервере"). Запуск непосредственно на сервере можно сделать по расписанию.

// Возвращает сведения о внешней обработке.
Функция СведенияОВнешнейОбработке() Экспорт
	ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
	ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
	ПараметрыРегистрации.Версия = "2.1";
	ПараметрыРегистрации.БезопасныйРежим = Истина;
	
	НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
	НоваяКоманда.Представление = НСтр("ru = 'Выполняем на сервере'");
	НоваяКоманда.Идентификатор = "ВыполнениеНаСервереОбработку";
	НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
	НоваяКоманда.ПоказыватьОповещение = Истина;
	
	НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
	НоваяКоманда.Представление = НСтр("ru = 'Открыть форму и выполнить в фоне с индикацией'");
	НоваяКоманда.Идентификатор = "ОткрытьФормуОбработку";
	НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
	НоваяКоманда.ПоказыватьОповещение = Ложь;
	
	Возврат ПараметрыРегистрации;
КонецФункции

// Интерфейс для выполнения команд обработки.
Процедура ВыполнитьКоманду(ИмяКоманды,ПараметрыВыполнения) Экспорт
	ДатаЗавершенияВМиллисекундах = ТекущаяУниверсальнаяДатаВМиллисекундах() + 1000*10;
	
	Попытка
		СтандартныеПодсистемыКлиентСервер.ВывестиОповещение(
		ПараметрыВыполнения.РезультатВыполнения,
		НСтр("ru = 'Выполнена длит. операция!'"),,
		БиблиотекаКартинок.Успешно32);
	Исключение
		СтандартныеПодсистемыКлиентСервер.ВывестиИнформациюОбОшибке(
		ПараметрыВыполнения.РезультатВыполнения,
		СтрШаблон(НСтр("ru = 'Ошибка выполнения команды ""%1""'"), ИмяКоманды),
		ИнформацияОбОшибке());
		Возврат;
	КонецПопытки;
	
	 //Имитация длительной операции - вместо этого вставте свой код который будет выполняться на сервере в фоне
	Пока ТекущаяУниверсальнаяДатаВМиллисекундах() < ДатаЗавершенияВМиллисекундах Цикл
	КонецЦикла;
КонецПроцедуры

Код модуля формы обработки

Важно добавить в форму эти параметры:

  • ДополнительнаяОбработкаСсылка (тип "СправочникСсылка.ДополнительныеОтчетыИОбработки").
  • ИдентификаторКоманды (тип "Строка")

.. и эти реквизиты:

  • ОбъектСсылка (тип "СправочникСсылка.ДополнительныеОтчетыИОбработки")
  • ИдентификаторКоманды (тип "Строка")
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	ОбъектСсылка = Параметры.ДополнительнаяОбработкаСсылка;
	ИдентификаторКоманды = Параметры.ИдентификаторКоманды;
КонецПроцедуры

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

&НаКлиенте
Процедура Фигачить(Команда)
	ПараметрыКоманды = Новый Структура("ДополнительнаяОбработкаСсылка, СопровождающийТекст");
	ПараметрыКоманды.ДополнительнаяОбработкаСсылка = ОбъектСсылка;
	ПараметрыКоманды.СопровождающийТекст = НСтр("ru = 'Выполняем из формы в фоне...'");
	Состояние(ПараметрыКоманды.СопровождающийТекст);
	ДополнительныеОтчетыИОбработкиКлиент.ВыполнитьКомандуВФоне(ИдентификаторКоманды, ПараметрыКоманды, ЭтаФорма);	
КонецПроцедуры

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

&НаСервере
Функция ВыполнитьКомандуНапрямую(ИдентификаторКоманды, ПараметрыКоманды)
	Возврат ДополнительныеОтчетыИОбработки.ВыполнитьКомандуИзФормыВнешнегоОбъекта(ИдентификаторКоманды, ПараметрыКоманды, ЭтаФорма);
КонецФункции

Примечание: для формы нужно назначить обработчики событий для процедур "ПриСозданииНаСервере" и "ОбработкаВыбора".

Вот, собственно, и все...

З.Ы. Для тех, кому недостаточно "простого" описания и кто хочет подробно разобраться в предмете - см. описание с ИТС

 

UPDATE 20/09/19: добавил вариант обработки с индикацией процента выполнения и статусом выполнения для БСП 3.0.

Немного тут подсмотрел

Модуль обработки:

Процедура ВыполнитьКоманду(ИмяКоманды, ПараметрыВыполнения) Экспорт
	
	Если ИмяКоманды = "ОткрытьФормуОбработку" Тогда
		
		ВремяФиниша = ТекущаяДатаСеанса() + 100;
		Пока ТекущаяДатаСеанса() < ВремяФиниша Цикл
			Процент = 100 - (ВремяФиниша - ТекущаяДатаСеанса());
			Если НЕ (Процент % 10)  Тогда
				ДлительныеОперации.СообщитьПрогресс(Процент, СтрШаблон("Выполнено %1 процентов: пример параметра команды = %2", Процент,ПараметрыВыполнения.СвойПараметр));
			КонецЕсли;
		КонецЦикла; 
		
	КонецЕсли;
	
КонецПроцедуры

Модуль формы:

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

&НаКлиенте
Процедура Фигачить(Команда)
	
	СопровождающийТекст = НСтр("ru = 'Выполняется обработка данных'");
	Обработчик = Новый ОписаниеОповещения("ПослеЗавершенияДлительнойОперации", ЭтотОбъект, СопровождающийТекст);

	Если ЗначениеЗаполнено(Параметры.ДополнительнаяОбработкаСсылка) Тогда
		НастройкиОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтаФорма);
		НастройкиОжидания.ВыводитьПрогрессВыполнения = Истина;
		НастройкиОжидания.ВыводитьСообщения = Истина;
		НастройкиОжидания.ТекстСообщения = НСтр("ru = 'Выполняется обработка данных...'");
		
		ВыполняемаяКоманда = Новый Структура("Ссылка, Идентификатор, СвойПараметр", Параметры.ДополнительнаяОбработкаСсылка, Параметры.ИдентификаторКоманды, "это мой параметр (фоновое)");
		
		ОперацияВФоне = ФигачитьВФоне(ВыполняемаяКоманда, УникальныйИдентификатор);
		ДлительныеОперацииКлиент.ОжидатьЗавершение(ОперацияВФоне, Обработчик, НастройкиОжидания);
		
	Иначе
		Параметры.ИдентификаторКоманды = "ОткрытьФормуОбработку";
		ПараметрыКоманды = ДополнительныеОтчетыИОбработкиКлиент.ПараметрыВыполненияКомандыВФоне(Параметры.ДополнительнаяОбработкаСсылка);
		ПараметрыКоманды.СопровождающийТекст = СопровождающийТекст + "...";
		ПараметрыКоманды.Вставить("СвойПараметр","это мой параметр");
		Операция = ВыполнитьКомандуНапрямую(ПараметрыКоманды);
		ВыполнитьОбработкуОповещения(Обработчик, Операция);
	КонецЕсли;

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

#Область СлужебныеПроцедурыИФункции

&НаСервере
Функция ВыполнитьКомандуНапрямую(ПараметрыКоманды)
	Операция = Новый Структура("Статус, КраткоеПредставлениеОшибки, ПодробноеПредставлениеОшибки");
	Попытка
		ДополнительныеОтчетыИОбработки.ВыполнитьКомандуИзФормыВнешнегоОбъекта(
			Параметры.ИдентификаторКоманды,
			ПараметрыКоманды,
			ЭтотОбъект);
		Операция.Статус = "Выполнено";
	Исключение
		Операция.КраткоеПредставлениеОшибки   = КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
		Операция.ПодробноеПредставлениеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
	КонецПопытки;
	Возврат Операция;
КонецФункции

&НаКлиенте
Процедура ПослеЗавершенияДлительнойОперации(Операция, СопровождающийТекст) Экспорт
	Если Операция.Статус = "Выполнено" Тогда
		ПоказатьОповещениеПользователя(НСтр("ru = 'Успешное завершение'"), , СопровождающийТекст, БиблиотекаКартинок.Успешно32);
	Иначе
		ПоказатьПредупреждение(, Операция.КраткоеПредставлениеОшибки);
	КонецЕсли;
КонецПроцедуры

#КонецОбласти

 

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

Наименование Файл Версия Размер
старый вариант для БСП 2.3

.epf 7,86Kb
143
.epf 7,86Kb 143 Скачать
новый вариант для БСП 3.0

.epf 7,80Kb
111
.epf 7,80Kb 111 Скачать

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Fragster 1119 19.05.16 11:50 Сейчас в теме
Добавьте в пример вывод прогресс-бара
2. rozer 299 19.05.16 17:22 Сейчас в теме
(1) Fragster, можно конечно как тут http://infostart.ru/public/458778/ но пришлось бы снимать с поддержки для добавления своей общей формы. Другого способа более легкого не знаю )
3. Fragster 1119 19.05.16 17:38 Сейчас в теме
(2) Зачем? есть же "ДлительныеОперации.СообщитьПрогресс" и ".ПрочитатьПрогресс", а отображать прогресс можно в своей форме с обработчиком ожидания? Или в данном случае это неприменимо?
Дмитрий74Чел; +1 Ответить
4. rozer 299 19.05.16 19:22 Сейчас в теме
(3) хм, посмотрю на досуге...
6. rozer 299 21.05.16 16:03 Сейчас в теме
(3) Fragster, у меня не получилось с индикатором в этом случае.
Дело в том что нет возможности получить "ИдентификаторЗадания" для использования
ДлительныеОперации.ПрочитатьПрогресс(ФоновоеЗаданиеИдентификатор)
.

Вот если используется "ДлительныеОперации.ЗапуститьВыполнениеВФоне" тогда да это получиться:

РезультатФоновогоЗадания = ДлительныеОперации.ЗапуститьВыполнениеВФоне(
				УникальныйИдентификатор,
				"МойМодуль.МояФоноваяПроцедура",
				ПараметрыЗадания,
				ПараметрыЗадания.НаименованиеЗадания);
			
ФоновоеЗаданиеИдентификатор  = РезультатФоновогоЗадания.ИдентификаторЗадания;


Но это не для внешних обработок - остается только как в http://infostart.ru/public/159607/ самому запускать фоновое оповещать через "СообщениеПользователю" и "ловить" в форме в "обработчике ожидания".
5. rozer 299 20.05.16 10:37 Сейчас в теме
если запустить эту обработку в последней версии БП 3.0 то вместо "крутящегося колесика" - этот
веселый котэ )))
Настоящий подарок бухгалтерам )
Atori-kun; TeMochkiN; invertex; +3 Ответить
9. 1vasia1 15 27.05.16 15:35 Сейчас в теме
(5) И правда котэ в картинки "ДлительнаяОперация48" добавили :)
10. config 162 27.05.16 15:41 Сейчас в теме
(5) бухгалтерия ЛИЧНО звонила и благодарила за "такого замечательного котика"
7. aldor188 11 25.05.16 08:48 Сейчас в теме
А что за процедура Фигачить()? Она не используется по коду.
8. rozer 299 25.05.16 10:30 Сейчас в теме
(7) это обработчик команды формы обработки
11. aaudin90 02.06.16 10:58 Сейчас в теме
(8) есть опыт работы с длительными операциями для внешних отчетов? Делаем через набор данных "объект" и стандартная обработка в процедуре ПриКомпоновкеРезультата = ложь, поэтому стандартное скдшное фоновое задание не работает.
12. rozer 299 02.06.16 12:40 Сейчас в теме
(11) aaudin90,
внешних отчетов



а зачем - отчет сервер смотрит ? ))
13. aaudin90 02.06.16 12:52 Сейчас в теме
Отчет делается около 60 секунд, хотелось бы его каким то образом перевести в фон.
14. rozer 299 02.06.16 13:48 Сейчас в теме
(13) aaudin90, примерно так: сделайте на сервере программный вывод из ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент в табл документ, заполните в РезультатВыполнения табл.документ и на клиенте "ловите" этот РезультатВыполнения и демонстрируете его пользователю...
15. aaudin90 03.06.16 05:35 Сейчас в теме
(14) спасибо за совет, но все таки отказались от идеи использования набора данных объект)
16. user595572_katigugu 02.08.16 20:04 Сейчас в теме
Здравствуйте! Что-то не могу допереть, как передать параметры в серверную экспортную процедуру ВыполнитьКоманду. Т.е., если длительная операция содержит выполнение запроса к базе, значения параметров вводятся через форму, как их подтянуть в процедуру? День протупил. :) Буду очень признателен за помощь. Заранее спасибо.
17. rozer 299 03.08.16 10:29 Сейчас в теме
(16) user595572_katigugu, поместить в "ПараметрыКоманды " в Фигачить()
например:
ПараметрыКоманды .Вставить("струкНастроек", РеквизитФормыВЗначение("Объект").ПолучитьСтруктуруНастроекСервер());


и получать в ВыполнитьКоманду(ИмяКоманды,ПараметрыВыполнения)
например:
ПараметрыНастроекВФорме=ПараметрыВыполненияКоманды.струкНастроек;

vasiliy_b; Дмитрий74Чел; +2 Ответить
18. user595572_katigugu 09.08.16 13:49 Сейчас в теме
25. vasiliy_b 282 01.12.17 12:43 Сейчас в теме
А есть идеи как передать ТЧ в фоновое задание?

Пробовал передать данные через ПоместитьВоВременноеХранилище. Но именно при фоновом запуске данные уже не получить.
PS: Пробовал использовать все три Варианта помещения данных, но ни один не заработал. Т.е на сервере ПолучитьИзВременногоХранилища всегда получается значение = неопределено.
26. rozer 299 02.12.17 12:39 Сейчас в теме
(25) ну не знаю, может не серилизуемые данные и если не по идентификатору формы то один серв вызов живет ВХ. Попробуй параметр сеанса...
27. vasiliy_b 282 02.12.17 17:31 Сейчас в теме
(26), точно не сериализуемые данные, пока выкрутился функцией ЗначениеВСтрокуВнутр и обратно, но данное решение мне не очень нравится.
А можешь поподробней про способ через параметр сеанса? типа помещать в какой-то из параметров данные и потом их оттуда забирать?
28. rozer 299 02.12.17 21:49 Сейчас в теме
19. Yackov 97 15.11.16 09:57 Сейчас в теме
На новом релизе бухгалтерии обработка перестала работать
20. rozer 299 13.02.17 08:24 Сейчас в теме
(19) ну видимо БСП поменяли как обычно...
21. Дмитрий74Чел 224 02.03.17 16:40 Сейчас в теме
Вопрос: а как отлаживать фоновое? Отладчик не хочет заходить в созданный объект-обработку. Останавливается на Объект.Выполнить(ИмяКоманды,ПараметрыВыполнения)
23. zarankony 288 02.03.17 17:27 Сейчас в теме
(21)Отладку к сожалению можно делать только поставив галку на форме для отладки и по ней запускать процедуру непосредственно, не через фоновое задание. Если кто знает другой способ- мне и самому будет интересно узнать.
55. Xershi 991 23.01.20 12:27 Сейчас в теме
(23) открываем форму и кнопкой запускаем то что 1С запустить регламентом. Опять же эмуляция вызова.
22. zarankony 288 02.03.17 17:07 Сейчас в теме
Рассказываю рабочий способ: запускаем фоновое задание
Результат = ВыполнитьЗапускВФонеНаСервере();	
ИдентификаторЗадания = Результат.ИдентификаторЗадания;


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

Дальше для прогресс бара нам понадобится из запущенного сеанса выводить сообщения нужного нам формата, например "Прогресс=32". в основной обработке получаем эти сообщения и интерпретируем(парсим) через ПолучитьСообщенияПользователю() так:
ПодключитьОбработчикОжидания("ВыводСообщений",1,Ложь);

И
&НаКлиенте
Процедура ВыводСообщений()
	Рез=ВыводСообщенийНаСервере();
	Если Рез=Ложь Тогда
		ОтключитьОбработчикОжидания("ВыводСообщений");
		ПоказатьПредупреждение(,"Процесс завершен");
	КонецЕсли;
	Состояние("Наш процесс",Прогресс);
КонецПроцедуры

&НаСервере
Функция ВыводСообщенийНаСервере()
	ДлинаЛога = 50000;
	Задание=ФоновыеЗадания.НайтиПоУникальномуИдентификатору(ИдентификаторЗадания);
	Если Задание=Неопределено Тогда
		Возврат Ложь;
	КонецЕсли;
	Сообщения=Задание.ПолучитьСообщенияПользователю(Истина);
		Для Каждого Сообщение ИЗ Сообщения Цикл
			Если Лев(Сообщение.Текст,8)="Прогресс" Тогда
				Прогресс=Число(Сообщение.Текст,2);
								
			Иначе
				
				Лог=Строка(ТекущаяДата())+": "+Сообщение.Текст+Символы.ПС+Лев(Лог,ДлинаЛога);
			КонецЕсли;
			
			
		КонецЦикла;
	Если Задание.Состояние=СостояниеФоновогоЗадания.Активно Тогда
		
		Возврат Истина;
	Иначе
		
		Возврат Ложь;
	КонецЕсли;
КонецФункции
Показать

На форме у меня Переменные ИдентификаторЗадания, Прогресс и Лог(многострочное текстовое поле для вывода прочих служебных сообщений).
29. Xershi 991 12.06.18 17:27 Сейчас в теме
(22) это хорошо написали. Сейчас переписывал обработку, которая использует ключ ОткрытиеФормы, на ВызовСерверногоМетода.
И похоже чтобы регламентное задание разделило процедуру на куски нужна "Модуль.Процедура". Если нет модуля и процедуры, то ничего не выйдет я так понял!
30. zarankony 288 18.06.18 13:00 Сейчас в теме
(29) есть немного извращенный метод получать модули и процедуры из внешней обработки, но это надо передавать её целиком на сервер и сохранять там.
31. Xershi 991 18.06.18 13:15 Сейчас в теме
(30) а вот это уже интересно.
Речь идет именно о подключенной обработке?
Что за метод там используется, БСП?
32. zarankony 288 03.09.18 10:50 Сейчас в теме
(31) Да, БСП. ДлительныеОперации.ВыполнитьПроцедуруМодуляОбъектаОбработки я тут описывал как делать: https://infostart.ru/public/842660/
33. Xershi 991 03.09.18 12:11 Сейчас в теме
(32) публикация не активна!
34. zarankony 288 03.09.18 14:08 Сейчас в теме
40. Xershi 991 07.10.18 15:17 Сейчас в теме
(34) написал вам комментарий по статье, сыровата и тема не раскрыта, если сможете показать, что не так и дополнить статью, то будет отлично!
41. zarankony 288 08.10.18 09:41 Сейчас в теме
(40)ответил Вам там, метод рабочий и используется, думаю дополнить статью можно
24. Xershi 991 21.08.17 19:30 Сейчас в теме
Отличная статья!
Попытка
		СтандартныеПодсистемыКлиентСервер.ВывестиОповещение(
		ПараметрыВыполнения.РезультатВыполнения,
		НСтр("ru = 'Выполнена длит. операция!'"),,
		БиблиотекаКартинок.Успешно32);
	Исключение
		СтандартныеПодсистемыКлиентСервер.ВывестиИнформациюОбОшибке(
		ПараметрыВыполнения.РезультатВыполнения,
		СтрШаблон(НСтр("ru = 'Ошибка выполнения команды ""%1""'"), ИмяКоманды),
		ИнформацияОбОшибке());
		Возврат;
	КонецПопытки;
Показать

Этот код в версии БСП 2.3.5.65 не работает, просто его удалил!
И дописал свой код выполнения задания:
УдалитьДокументыНаСервере(ПараметрыВыполнения.СписокДокументов);

Передав в параметры выполнения список значения интеграция прошла на ура!
А в форме распараллеливание потоков написал:
&НаКлиенте
Процедура УдалитьДокументыВПотоке(Команда)
	
	УдалитьДокументыВПотокеНаСервере();
	
	Кратность = Цел(Объект.ТаблицаПисем.Количество() / Объект.КоличествоПотоков);
	
	СписокДокументов = Новый СписокЗначений;
	
	Счетчик = 1;
	
	Для Каждого Строка Из Объект.ТаблицаПисем Цикл 		
		
		СписокДокументов.Добавить(Строка.Документ); 
		
		Если СписокДокументов.Количество() % Кратность = 0 Тогда
			
			ПараметрыКоманды = Новый Структура();
			ПараметрыКоманды.Вставить("ДополнительнаяОбработкаСсылка", Объект.ОбъектСсылка);
			ПараметрыКоманды.Вставить("СопровождающийТекст", НСтр("ru = 'Регламентное удаление входящих электронных писем в фоне потока " + Счетчик + "...'"));
			ПараметрыКоманды.Вставить("СписокДокументов", СписокДокументов);
			
			ДополнительныеОтчетыИОбработкиКлиент.ВыполнитьКомандуВФоне(Объект.ИдентификаторКоманды, ПараметрыКоманды, ЭтаФорма);
			
			СписокДокументов.Очистить();
			
			Счетчик = Счетчик + 1;
			
		КонецЕсли;                                   					
		
	КонецЦикла;
	
	//Состояние(ПараметрыКоманды.СопровождающийТекст); 
	
КонецПроцедуры
Показать

Правда такой метод делает при не целом делении на 1 поток больше, но зато результат на лицо!
53. platonov.e 127 23.01.20 07:58 Сейчас в теме
(24)
ВыполнитьКомандуВФоне
а это будет работать только если обрабботка подключена в справочнике, если открыть через файл - открыть - то не будет работать?
54. Xershi 991 23.01.20 09:27 Сейчас в теме
(53) там придётся извратиться. Проще через дополнительные сделать.
56. Xershi 991 23.01.20 13:04 Сейчас в теме
(53) в своих наработках у меня работает, если обработка подключена. А копия которую я запускаю через файл вызывает эту подключенную обработку, отлаживать так проще.
А если без подключения, то вам придется сохранить обработку, передать на сервер и вызвать метод из переданной обработки, что согласитесь треш! Но если очень нужно, то можно.
57. platonov.e 127 23.01.20 13:28 Сейчас в теме
(56) ну да я тоже уже вызываю из спраочника)
58. platonov.e 127 23.01.20 16:08 Сейчас в теме
(56) так, а можно сделать чтобы при фоновым выполнении никакое окошко, не статус бар не вылазило? выполнялось себе и ладно.
59. Xershi 991 23.01.20 16:25 Сейчас в теме
(58) да, если запустить на сервере, как любое фоновое задание. Тут же суть в прогрессе, а это клиент.
60. platonov.e 127 10.02.20 14:46 Сейчас в теме
(59) блин, а я не могу на сервере вызвать, есть оповещение...
61. Xershi 991 10.02.20 14:50 Сейчас в теме
(60) для этого запускают второе фоновое задание, которое и выводит результат после завершения первого.
62. platonov.e 127 11.02.20 13:28 Сейчас в теме
(61) а как отследить выполнилось оно или нет, чтобы повторно еще одно не запустить?
63. Xershi 991 11.02.20 13:32 Сейчас в теме
(62) ну код поковыряйте. Там же все уже предусмотрели.
35. login1020 122 20.09.18 11:50 Сейчас в теме
А как вернуть значение из
Процедура ВыполнитьКоманду(ИмяКоманды,ПараметрыВыполнения) Экспорт

или заполнить реквизит обработки/табличную часть?

Выполняю запрос, и через Сообщить() видно что запрос отрабатывает и идёт обход выборки, но заполнение не происходит

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
стр = тч.Добавить();
Сообщить(ВыборкаДетальныеЗаписи.Партнер);
ЗаполнитьЗначенияСвойств(Стр,ВыборкаДетальныеЗаписи);
КонецЦикла;
36. rozer 299 25.09.18 20:17 Сейчас в теме
(35) тч - табчасть объекта ? да все должно ИМХО норм отрабатывать
37. login1020 122 26.09.18 10:40 Сейчас в теме
ТЧ - таб часть объекта, командой "Открыть форму и выполнить в фоне с индикацией"
В фоне отрабатывает запрос, все партнеры через сообщить выводятся, но таб часть
на форме остается пустой
Процедура ВыполнитьКоманду(ИмяКоманды,ПараметрыВыполнения) Экспорт
	ДатаЗавершенияВМиллисекундах = ТекущаяУниверсальнаяДатаВМиллисекундах() + 1000*10;
	
	Попытка
		Сообщить("Успешно");
	Исключение
		Сообщить(ОписаниеОшибки());
		Возврат;
	КонецПопытки;
	
	 //Имитация длительной операции - вместо этого вставте свой код который будет выполняться на сервере в фоне
	Пока ТекущаяУниверсальнаяДатаВМиллисекундах() < ДатаЗавершенияВМиллисекундах Цикл
	КонецЦикла;
	
		Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	Партнеры.Ссылка КАК Партнер,
	|	Партнеры.ДатаРождения КАК ДатаРождения
	|ИЗ
	|	Справочник.Партнеры КАК Партнеры
	|ГДЕ
	|	Партнеры.Ссылка = &ссылка";
	Запрос.УстановитьПараметр("Ссылка",ПараметрыВыполнения.ПараметрПартнёр);

	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		стр  = тч.Добавить();
		стр.Партнер  =  ВыборкаДетальныеЗаписи.Партнер;
		стр.ДатаРождения  = Дата("20180101");
	 	Сообщить(ВыборкаДетальныеЗаписи.Партнер);
	КонецЦикла;
	
КонецПроцедуры
Показать
38. rozer 299 26.09.18 11:01 Сейчас в теме
(37)
на форме остается пустой


ах на форме )
ага это точно так форму тут обновлять намного сложнее чем использовать РеквизитФормыВЗначение() или ДанныеФормыВзначение()
39. kassbar 154 04.10.18 14:41 Сейчас в теме
Процедура ВыполнитьКомандуВФоне(Знач ИдентификаторКоманды, Знач ПараметрыКоманды, Знач Обработчик)
третий параметр это описание оповещения.
почему в него передается "ЭтаФорма" ?
42. Xershi 991 08.10.18 13:35 Сейчас в теме
(0) в своей логике не использовал передачу ТЗ с клиента в фоновое задание. Сейчас это понадобилось.
На форме есть данные формы коллекция. Через серверный вызов преобразовываю в ТЗ и помещаю во временное хранилище.
Как получить потом ТЗ в фоновом задании?
У меня не получилось! Передал адрес ТЗ на клиенте, а когда к нему обратилось фоновое задание, то там ничего не было.
Я так понимаю это особенность работы 1С. Был ли опыт такой работы?
43. kassbar 154 20.10.18 17:13 Сейчас в теме
(42)
Временное хранилище, сформированное в одном сеансе, недоступно из другого сеанса.
Фоновое задание - это и есть другой сеанс. А ТЗ осталась во ВХ клиентского сеанса.
Я сохранял данные во временном файле и передавал в фоновое путь к временному файлу на сервере.
44. Xershi 991 20.10.18 20:09 Сейчас в теме
(43) про это я написал. Решение вопроса, то есть?
45. kassbar 154 20.10.18 20:20 Сейчас в теме
(44) сохраняй в любом хранилище, не связанном с текущим сеансом. Например в хранилище внешней обработки (если это форма внешней обработки), в хранилище настроек конфигурации, в любом регистре сведений где есть ресурс с типом ХранилищеЗначения (например Версии объектов), сохраняй в файл в каталоге темп (если нужно передать файл)
46. Xershi 991 20.10.18 20:23 Сейчас в теме
(45) каким методом?
ПоместитьВоВременноеХранилище(ТекущийСписокВалют, Новый УникальныйИдентификатор())

Я так понимаю этот метод только на сеанс.
47. kassbar 154 20.10.18 20:47 Сейчас в теме
(46) например
ХранилищеОбщихНастроек.Сохранить();
ХранилищеОбщихНастроек.Загрузить();
или
Новый хранилищеЗначения()
48. Xershi 991 20.10.18 21:49 Сейчас в теме
(47)
Новый ХранилищеЗначения()

Отличный вариант! Как раз на клиенте вызываю серверную функцию, которая возвращает тип "ХранилищеЗначения", а далее передаю параметром в клиентский фоновый вызов!
49. kaliuzhnyi 132 22.08.19 09:57 Сейчас в теме
Не забывайте в СведенияОВнешнейОбработке() указывать версию БСП.

ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");


Интересно какая минимальная версия для работы этого метода?
50. rozer 299 20.09.19 15:39 Сейчас в теме
добавил вариант обработки с индикацией процента выполнения и статусом выполнения для БСП 3.0
51. Eret1k 27.09.19 11:48 Сейчас в теме
52. rozer 299 27.09.19 13:23 Сейчас в теме
(51) Да, помогла ваша публикация о чем я собственно и написал )

>>Немного тут подсмотрел

но в дополнение показал как доп. параметры передавать ну и использовал типовые приемы из внешней обработки "ЗаполнениеКонтрагентов" из БСП 3.0.3.
64. burgomister 53 09.04.20 19:01 Сейчас в теме
Полный код для фонового задания... что-то это мне напоминает:
#include
class string
{ private:
int size;
char *ptr;
public:
string() : size(0), ptr(new char('*')) {}
string(const string &s) : size(s.size)
{
ptr = new char[size + 1];
strcpy(ptr, s.ptr);
}
~string()
{
delete [] ptr;
}
friend ostream &operator << (ostream &, const string &);
string &operator = (const char *);
};
ostream &operator << (ostream &stream, const tring &s)
{
return(stream << s.ptr);
}
string &string::operator = (const char *chrs)
{
if(this != &chr)
{
delete [] ptr;
size = strlen(chrs);
ptr = new char[size + 1];
strcpy(ptr, chr);
}
return(*this);
}
int main()
{
string str;
str = 'Hello World';
cout << str << endl;
return(0);
}
Показать
65. zels 170 13.10.20 10:13 Сейчас в теме
Скачал версию для БСП3, запустил в БП3 - ничего не индицируется...
66. zabaluev 458 03.02.21 00:03 Сейчас в теме
(65) Что бы была индикация, надо подключить, как внешнюю обработку в программу.
67. HAMMER_59 235 27.04.21 19:43 Сейчас в теме
Спасибо за статью.

Для себя сделал несколько изменений.
1. Параметр ДополнительнаяОбработкаСсылка отметил как ключевой, ИдентификаторКоманды так и не понял зачем нужен. Событие ПриСозданииНаСервере убрал.
2. Не понял зачем сначала создавать структуру ВыполняемаяКоманда, передавать её на сервер. С таким же успехом можно прямо в серверной функции получить все то же самое. С ИдентификаторомКоманды совсем ничего не понял, у меня заполняется в зависимости от того какую кнопку на форме нажму.
68. a_inves 27.09.21 20:33 Сейчас в теме
"Запуск непосредственно на сервере можно сделать по расписанию."
------------------
А мне программа говорит, что Расписание Непременимо для команд с вариантом запуска "Открытие формы"
(
69. rozer 299 27.09.21 21:57 Сейчас в теме
(68) да, расписание только если не "открытие формы" )
70. JammShoot 19 01.11.22 15:16 Сейчас в теме
в версии 3.0 БСП убрали метод
ДополнительныеОтчетыИОбработкиКлиент.ПоказатьРезультатВыполненияКоманды(ВладелецФормы, РезультатВыполнения);

чем его можно заменить?
71. rozer 299 13.12.22 15:07 Сейчас в теме
(70) в форме обработки смотрите в обработчик этого оповещения
Обработчик = Новый ОписаниеОповещения("ПослеЗавершенияДлительнойОперации", ЭтотОбъект, СопровождающийТекст);
Оставьте свое сообщение

См. также

Функции "слоупока": как заставить открываться "Все функции" в 97 раз быстрее!

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

Наверное, каждый программист 1С (да и не только программист), открывая «Функции для технического специалиста» (ранее «Все функции») на массивных конфигурациях вроде ERP 2.4 и т.п., в своей жизни много раз задавался вопросом – почему же они так долго открываются?? Действительно, в зависимости от мощностей сервера «Все функции» могут открываться от 20 секунд до 2 минут! «Ну, слишком много объектов в конфигурации, огромное количество констант, справочников, документов, регистров… – Отвечали себе страдающие пользователи. – Пока программа обойдёт в цикле все метаданные, пока построит дерево… Тут ничего не поделаешь…». И все они были не правы! Я провёл собственное расследование, которое показало, что 97% времени построения дерева метаданных тратится на…

1 стартмани

09.03.2022    19820    75    XilDen    76    

229

Программное формирование существующих печатных форм

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

Получение списка печатных форм, формирование выбранной печатной формы и сохранение ее в файл.

1 стартмани

17.12.2021    9788    26    RocKeR_13    5    

38

Универсальный редактор данных (УРД)

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

Универсальный редактор данных (УРД) - это лучший инструмент в своем классе, который позволяет редактировать реквизиты и движения объектов

1 стартмани

27.08.2021    14164    202    Adeptus    57    

91

HTTP-клиент

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

Подсистема 1С для работы с HTTP.

1 стартмани

28.07.2021    14647    48    SpaceOfMyHead    48    

89

Подсистема "Показатели объектов"

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

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

2 стартмани

06.03.2021    13252    7    pila86    16    

29

1СПАРК РИСКИ. Сервис оценки благонадежности контрагентов. Промо

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

FormCodeGenerator Программная доработка форм. Часть 2 (Режим работы "Режим сравнения форм") на примере ERP 2.5

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

Данная публикация является продолжением описания функционирования обработки "FormCodeGenerator " в режиме сравнения форм и генерирования кода на основании сравнения. Подходит для перевода уже доработанных форм с интерактивной доработки на программную. Данный режим работы обработки снизит издержки при дальнейших обновлениях конфигураций.

5 стартмани

21.12.2020    17833    30    huxuxuya    11    

36

А1Э - альтернативная стандартная библиотека для 1С

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

Предлагаю широкой общественности расширение А1Э, используемое в нескольких продуктивных базах для выполнения широкого круга задач.

14.08.2020    20901    0    Enigma    47    

174

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

Инструментарий разработчика Анализ учета Платформа 1С v8.3 Запросы Абонемент ($m)

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

2 стартмани

11.08.2020    10156    58    vozhd    4    

19

Консоль кода для управляемых форм

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

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

1 стартмани

17.07.2020    42594    579    salexdv    423    

325

Внешний регламент для 1С

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

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

1 стартмани

05.03.2020    15705    14    moolex    12    

15

Работа с 1С:Аналитика Промо

Онлайн-курс предусматривает изучение возможностей системы “1С:Аналитика”, которая работает как составная часть платформы “1С:Предприятие” и обеспечивает оперативный просмотр и анализ необходимых данных.

4500 рублей

Консоль запросов 9000

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

Простая и удобная консоль запросов 1С для управляемых форм 8.3, работает на любой конфигурации без ее модификации. Возможность использования как внешней обработки или в составе расширения. С перехватом любых запросов и поддержкой всех типов данных во временных таблицах. Анализ плана запроса, запроса на уровне СУБД. Обработка результата кодом.

1 стартмани

24.02.2020    41467    662    kuza2000    167    

174

Конвейер проверки качества кода

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

Jenkinsfile для выполнения проверки качества кода. Собирает информацию с АПК, EDT и BSL-LS. Сопоставляет ошибки с гит-репозиторием, выгруженным ГитКонвертором. Отправляет в Сонар.

3 стартмани

04.09.2019    50356    35    Stepa86    46    

220

Модель объекта

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

Подсистема позволяет описать модель данных объекта, где описана зависимость между реквизитами, и затем использовать эту модель в разных сценариях работы с объектом. Версия платформы: 8.3.6 и выше. С небольшими доработками будет работать на 8.2.

1 стартмани

30.06.2019    23238    2    vadim1980    5    

16

CFU & CFE - reader (версия 3.1).

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

Обработка для анализа файлов обновлений (.cfu) и расширений (.cfe) в режиме предприятия в любой конфигурации для 1С 8.3.+. Основана на разработке https://infostart.ru/public/97194/.

2 стартмани

21.06.2019    15627    43    vandalsvq    12    

27

Видеокурс-практикум: как подготовить и написать ТЗ, ЗНР, ЧТЗ. Промо

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

3 500 рублей

Переводим рутину ручного тестирования 1C на рельсы Jenkins-а и ADD

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

Вы все еще тестируете свои конфигурации 1С вручную? Да вы просто тратите жизнь впустую! В данном туториале попробуем скрестить ADD и jenkins для автоматического запуска тестов.

1 стартмани

03.06.2019    51631    12    ripreal1    92    

182

Универсальный HTTP-сервис на платформе 1С, аля HTTP-сервер с примером

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

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

1 стартмани

13.05.2019    50135    199    Diversus    44    

278

Блин, мы забыли включить регламентные задания…

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

Привет, Инфостарт! Сегодня расскажу, как я решил проблему с выключенными регламентными заданиями в рабочих базах. Желая исключить человеческий фактор и минимизировать количество ошибок, я написал небольшую конфигурацию.  В конфигурации два регламентных задания. Первое периодически подключается к кластеру и сохраняет текущие параметры: имя, Сервер БД, базу СУДБ, блокировки входа и регламентных заданий и т.д. Второе задание периодически проверяет эти параметры на ошибки.

1 стартмани

08.04.2019    33170    22    slozhenikin_com    37    

61

Конструктор мобильного клиента Simple WMS Client: способ создать полноценный ТСД без мобильной разработки. Теперь новая версия - Simple UI (обновлено 14.11.2019)

Оптовая торговля Производство готовой продукции (работ, услуг) Розничная торговля Учет ОС и НМА Учет ТМЦ Инструментарий разработчика Платформа 1С v8.3 Мобильная платформа Бухгалтерский учет Управленческий учет Абонемент ($m)

Simple WMS Client – это визуальный конструктор мобильного клиента для терминала сбора данных(ТСД) или обычного телефона на Android. Приложение работает в онлайн режиме через интернет или WI-FI, постоянно общаясь с базой посредством http-запросов (вариант для 1С-клиента общается с 1С напрямую как обычный клиент). Можно создавать любые конфигурации мобильного клиента с помощью конструктора и обработчиков на языке 1С (НЕ мобильная платформа). Вся логика приложения и интеграции содержится в обработчиках на стороне 1С. Это очень простой способ создать и развернуть клиентскую часть для WMS системы или для любой другой конфигурации 1С (УТ, УПП, ERP, самописной) с минимумом программирования. Например, можно добавить в учетную систему адресное хранение, учет оборудования и любые другие задачи. Приложение умеет работать не только со штрих-кодами, но и с распознаванием голоса от Google. Это бесплатная и открытая система, не требующая обучения, с возможностью быстро получить результат.

5 стартмани

09.01.2019    75375    286    informa1555    246    

206

Легкое и гибкое управление списком доступных баз 1С у пользователей

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

Когда в локальной сети много пользователей, а еще большое количество различных баз и при этом каждому нужны свои, то администрирование этого зоопарка превращается в АД! Этот комплекс позволяет централизованно управлять списком доступных баз в разрезе пользователей. За пару кликов можно добавить или убрать базу у всех пользователей.

7 стартмани

05.12.2018    28974    29    RomikR    11    

17

Распознавание и загрузка документов в 1С Промо

Универсальная программа-обработка для распознавания любых сканов или фото первичных документов в 1С (счета-фактуры, УПД, ТТН, акты и тд). Точность распознания до 98%.

от 11 рублей

Очистка кэша 1С 8 (8.0, 8.1, 8.2, 8.3). Грамотная чистка кэша 1С с сохранением настроек.

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

Эффективное средство для устранения ошибок, возникающих в локальном кэше 1С на клиенте, которым легко сможет воспользоваться пользователь с любым уровнем знаний. Wsf-скрипт, созданный на стандартном языке автоматизации Windows - "WSH JScript", очищает кэш 1С просто, быстро и безопасно. Кроме варианта, очищающего кэш текущего пользователя, имеется также вариант для чистки кэша 1С всех пользователей терминального-сервера.

1 стартмани

04.11.2018    66352    637    Eugen-S    36    

50

Навигатор по конфигурации базы 1С 8.3

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

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

3 стартмани

28.10.2018    57243    518    ROL32    72    

182

Консоль Внедренца v.3.6.2

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

Идея данной обработки заключается в создании простого, функционального и универсального инструментария для внедренцев и программистов 1С, который будет работать как в толстом клиенте на обычных и на управляемых формах, так и в тонком клиенте. Интерфейс и логика работы максимально идентичны у обычных форм и управляемых. Инструментарий включает в себя: Консоль кода, Консоль запросов, Консоль отчетов (СКД), Универсальную обработку объектов, Средства для работы с таблицами базы данных 1С, Редактирование регистров сведений базы, Инструмент по работе с табличными документами - загрузка данных из табличного документа.

1 стартмани

27.08.2018    52153    520    evvakra    42    

181

HTTP Сервисы: Путь к своему сервису. Часть 3

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

Продолжение статьи «HTTP Сервисы: Путь к своему сервису. Часть 2». В предыдущих частях мы использовали только Get, в этой части поговорим о других методах и длительных операциях.

1 стартмани

27.08.2018    75620    96    dsdred    17    

180

Управляемая консоль запросов, отчетов 3.8.9 (расширение, внешняя обработка)

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

Работа с запросом и СКД, Полная поддержка пакетных запросов, временных таблиц, Сравнение результатов, текстов, Разбор структуры запроса в виде дерева, Анализ плана запроса, Групповая обработка

5 стартмани

14.08.2018    154434    3481    Evg-Lylyk    800    

619

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

Позиционирование в помещении с помощью нейросети по сигналу Wi-Fi. Интерактивная карта склада в 1С с показом позиции

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

Данная публикация содержит в себе редактор и интерактивную карту склада или иного помещения, на которой в реальном времени отображается позиция устройства, координаты которого вычисляются по уровням сигнала нескольких роутеров Wi-Fi. В статье и приложенным к ней разработкам предлагаются инструменты и методика для реализации вычисления точной геопозиции внутри помещений с помощью нейронной сети. Конфигурация написана на релизе 1С:Предприятие 8.3.12.1412, клиентское приложение имеет минимальный уровень совместимости SDK -16.

5 стартмани

09.08.2018    44766    35    informa1555    30    

77

Консоль HTTP-запросов с генерацией кода

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

Консоль HTTP-запросов, которая не только выполняет запросы и получает результат их выполнения, но и генерирует необходимый код. Использую на 8.3.11.2899.

1 стартмани

25.05.2018    42705    397    leongl    20    

198

Регистры правил [Расширение]

Инструментарий разработчика Платформа 1С v8.3 Управление правами 1С:Управление торговлей 11 Абонемент ($m)

Регистры правил - права доступа, запрет редактирования, автоподстановка реквизитов и т.д.

10 стартмани

15.03.2018    30894    33    33lab    5    

18

Заполняем по шаблону (по умолчанию)

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

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

1 стартмани

08.02.2018    42519    25    mvxyz    17    

79

Паузы при исполнении кода (Sleep для 1С)

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

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

1 стартмани

28.11.2017    96909    23    swimdog    57    

181

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

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

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

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

1 стартмани

18.11.2017    56301    59    bonv    13    

74

Быстрое удаление неиспользуемых версий 1С:Предприятие 8, кэша метаданных и информационных баз

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

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

1 стартмани

14.11.2017    37401    106    bonv    15    

48

DataReducer — R-консоль для «1С:Предприятия»

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

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

10 стартмани

10.07.2017    31284    3    DataReducer    13    

47

Трансформатор 1С - SQL

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

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

1 стартмани

28.06.2017    52708    442    Synoecium    54    

249

Набор подсистем "Умные таблицы"

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

Данный набор подсистем – прикладная библиотека, призванная помочь программисту 1С быстрее решать ряд типовых задач бизнес-логики, таких как: ведение статусов объектов, отправка почтовых сообщений в определенное время, ведение произвольных таблиц с возможностью редактирования, сохранения и группировки, ориентированные на расчет бюджетных таблиц (план продаж, ретробонусы B2C, проценты по договорам B2B и договорные условия по КАМ), расчет коммерческой политики для бюджетных таблиц, исполнение произвольных алгоритмов с хранением кода в информационной базе, определение рабочих баз, хранение файлов во внешних СУБД (Postgre SQL, MS SQL и MongoDB) и выполнение произвольного кода после изменений ссылочного объекта вне транзакции изменения.

1 стартмани

22.05.2017    46874    119    Silenser    34    

75

Готовые переносы данных из различных конфигураций 1C Промо

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

Автокликер для 1С

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

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

1 стартмани

03.04.2017    45163    87    slava_1c    67    

74

Регулярные выражения – это просто. Построитель и отладчик регулярных выражений

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

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

1 стартмани

13.03.2017    50005    137    romasna    54    

208

Сценарное тестирование в помощь программисту 1С

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

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

1 стартмани

11.11.2016    38185    62    grumagargler    62    

193

Несколько шаблонов для доработки типовых конфигураций

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Абонемент ($m)

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

1 стартмани

03.10.2016    50571    107    json    26    

196

Конструктор-тестер http запросов в 1С

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

Данная обработка позволяет в несколько кликов конструировать http запросы на языке 1С и просматривать результаты их выполнения.

3 стартмани

19.08.2016    56746    342    hlopik    19    

227