База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как в 1С:БП3 получить список открытых форм расходных накладных? › Ответ в теме: Как в 1С:БП3 получить список открытых форм расходных накладных?
Чтобы из внешней обработки получить список открытых форм расходных накладных (Документ.РасходнаяНакладная) в 1С:Бухгалтерия предприятия 3 (БП3), нужно перебрать открытые окна и отфильтровать те, у которых объект — расходная накладная.
Пример кода на клиенте (в модуле формы внешней обработки):
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
&НаКлиенте Функция ПолучитьОткрытыеФормыРасходныхНакладных() Экспорт Результат = Новый Массив; Окна = ПолучитьОкна(); Для Каждого Окно Из Окна Цикл Если НЕ Окно.Основное Тогда Попытка ОбъектФормы = Окно.Содержимое[0].Объект; Если ТипЗнч(ОбъектФормы) = Тип("Документ.РасходнаяНакладнаяОбъект") Тогда Результат.Добавить(Окно); КонецЕсли; Исключение // Игнорируем окна без объекта или с другим типом КонецПопытки; КонецЕсли; КонецЦикла; Возврат Результат; КонецФункции |
—
Если нужно получить именно объекты документов из открытых форм:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
&НаКлиенте Функция ПолучитьОткрытыеОбъектыРасходныхНакладных() Экспорт Результат = Новый Массив; Окна = ПолучитьОкна(); Для Каждого Окно Из Окна Цикл Если НЕ Окно.Основное Тогда Попытка ОбъектФормы = Окно.Содержимое[0].Объект; Если ТипЗнч(ОбъектФормы) = Тип("Документ.РасходнаяНакладнаяОбъект") Тогда Результат.Добавить(ОбъектФормы); КонецЕсли; Исключение КонецПопытки; КонецЕсли; КонецЦикла; Возврат Результат; КонецФункции |
—
Как использовать:
|
1 2 3 4 5 6 7 8 9 10 |
Процедура КомандаПоказатьОткрытыеНакладные(Команда) МассивФорм = ПолучитьОткрытыеФормыРасходныхНакладных(); Если МассивФорм.Количество() = 0 Тогда Сообщить("Открытых форм расходных накладных нет."); Возврат; КонецЕсли; Для Каждого Окно Из МассивФорм Цикл Сообщить("Открыта накладная: " + Окно.Содержимое[0].Объект.Ссылка); КонецЦикла; КонецПроцедуры |
—
Если нужно получить ссылки на документы, чтобы, например, обновить их или провести, можно из объекта формы взять свойство Ссылка.
—
Важно:
— Тип объекта документа в БП3 — «Документ.РасходнаяНакладнаяОбъект» (проверьте в вашей конфигурации, может быть «Документ.РасходнаяНакладная»).
— Метод ПолучитьОкна() возвращает все открытые окна, включая главное. Нужно фильтровать по типу объекта.
— Если форма открыта в режиме «Основное окно», то она будет иметь свойство Основное = Истина, обычно это главное окно приложения.
—
Рекомендую посмотреть здесь:
https://infostart.ru/public/827126/ (пример работы с открытыми окнами)
https://infostart.ru/1c/articles/565658/ (работа с формами и объектами)