Рассмотрим распространенный вопрос разработчиков и администраторов 1С: почему при вызове диалогового окна «Проведение документов» из меню «Операции» в режиме обычного приложения не получается найти соответствующую форму или обработку в конфигураторе?
Выясним причину такого поведения платформы, проанализируем ограничения системного механизма и разберем практические альтернативы для реализации аналогичного или более гибкого функционала.
Диалоговое окно «Проведение документов» является системным механизмом ядра платформы «1С:Предприятие». Оно жестко встроено в платформу для режима обычного приложения и не представляет собой объект метаданных (обработку или форму) внутри конкретной конфигурации.
По этой причине поиск по дереву конфигурации, а также глобальный поиск по имени или заголовку окна не дают никаких результатов. Изменить исходный код этой формы или отредактировать ее макет напрямую в конфигураторе невозможно.
Использование встроенного окна проведения имеет ряд существенных ограничений, о которых следует помнить при эксплуатации системы:
Если требуется расширить функционал перепроведения документов или перенести его в управляемый интерфейс, рассмотрим несколько проверенных подходов.
1. Использование функций Библиотеки стандартных подсистем (БСП)
В современных конфигурациях на управляемых формах стандартный системный диалог заменен тиражными обработками, такими как «Групповое проведение документов» или «Групповое изменение реквизитов».
Для программного проведения массива документов в БСП предусмотрен специальный метод общего модуля:
ОбщегоНазначенияВызовСервера.ПровестиДокументы(МассивДокументов)
2. Создание собственной внешней обработки
Разберем создание собственной внешней обработки. Это позволяет гибко настраивать отборы, обрабатывать исключения и прошивать бизнес-логику компании.
Простейший алгоритм проведения выбранных документов в цикле выглядит следующим образом:
Для Каждого СсылкаНаДокумент Из МассивДокументов Цикл
Попытка
ДокументОбъект = СсылкаНаДокумент.ПолучитьОбъект();
ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
Исключение
// Обработка ошибки проведения конкретного документа
Сообщить("Ошибка при проведении документа: " + Строка(СсылкаНаДокумент));
КонецПопытки;
КонецЦикла;
3. Многопоточное перепроведение с помощью фоновых заданий
При необходимости перепровести гигабайты данных за короткий технологический перерыв рекомендуется распараллеливать процессы. Массив документов разбивается на независимые порции (например, по организациям или периодам), и каждая порция передается в отдельное фоновое задание через объект ФоновыеЗадачи.