Как прервать выполнение обработки?

1. Chiro 14.10.09 23:52 Сейчас в теме
В 7-ке нажимал Esc и радовался. А что если в 8-ке нечаянно нажал "Сформировать" отчет по всем товарам по всем фирмам по всем складам с детализацией по документам за период с 010101 по ТекДата :) Кто знает, разъясните мне этот вопрос, пожалуиста
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. anig99 2855 15.10.09 00:11 Сейчас в теме
если в обработке прописано, то ctrl+Break
3. Chiro 15.10.09 00:19 Сейчас в теме
А как прописать такое прерывание в обработке? И влечет ли такое прерывание нежелательные последствия?
4. I_G_O_R 70 15.10.09 00:36 Сейчас в теме
(3) ОбработкаПрерыванияПользователя(), там где поставить эту функцию тупо остановится код, так что о последствиях можно догадаться
5. anig99 2855 15.10.09 08:02 Сейчас в теме
(3) а какие нежелательные последствия? обработка тупо прекратит работу, сервер не взорвется. На проведение документов, думаю, лучше не ставить. В крайнем случае только если записи в одной транзакции...
6. Chiro 15.10.09 09:57 Сейчас в теме
7. user1119934 04.02.21 10:17 Сейчас в теме
Предлагаю изящное решение с применением рекурсии

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

&НаСервере
Процедура ВыборОтделенийВИерархии(Подразделение)
	
	СписокОтделений.Добавить( Подразделение );           //  Выводим сразу в Список Значений
	
	Запрос = Новый Запрос;
	Текст = 
	"ВЫБРАТЬ РАЗЛИЧНЫЕ
	|		Отделения.Ссылка  КАК Ссылка
	|			ИЗ
	|		Справочник.СтруктураПредприятия КАК Отделения
	|       	ГДЕ
	|       Отделения.Родитель =  &Подразделение         // Выбираем подразделения у которых исходное является родителем
	|";
	
	Запрос.УстановитьПараметр("Подразделение", Подразделение);
		
	Запрос.Текст = Текст;
	РезультатЗапроса = Запрос.Выполнить().Выбрать();
	
	Если РезультатЗапроса.Количество() > 0 Тогда
		Пока РезультатЗапроса.Следующий() Цикл		
			ВыборОтделенийВИерархии(РезультатЗапроса.Ссылка);	//   В каждом из подчиненных подразделений в свою очередь ищем вложенных
		КонецЦикла;
	КонецЕсли;		
КонецПроцедуры
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот