// Имеем два атрибута, связанных с формой: // Шаблон - фрагмент серийного номера для поиска; // Список - таблица значений результатов поиска. функция Выбрать_серийные_номера (тип_документа) возврат "ВЫБРАТЬ | СерийныйНомер.Представление КАК СерийныйНомер, | Ссылка |ИЗ | Документ." + тип_документа + ".СерийныеНомера |ГДЕ | СерийныйНомер.Код ПОДОБНО &Шаблон"; конецфункции // Поиск фрагмента серийного номера во всех документах, // имеющих табличную часть "СерийныеНомера". процедура Поиск (шаблон) запрос = Новый Запрос; запрос.УстановитьПараметр ("Шаблон", "%" + шаблон + "%"); запрос.Текст = Выбрать_серийные_номера ("АвансовыйОтчет") + " ОБЪЕДИНИТЬ ВСЕ " + Выбрать_серийные_номера ("ВозвратТоваровОтПокупателя") + " ОБЪЕДИНИТЬ ВСЕ " + Выбрать_серийные_номера ("ВозвратТоваровПоставщику") + " ОБЪЕДИНИТЬ ВСЕ " + Выбрать_серийные_номера ("ВозвратТоваровПоставщикуИзНТТ") + " ОБЪЕДИНИТЬ ВСЕ " + Выбрать_серийные_номера ("ОприходованиеТоваров") + " ОБЪЕДИНИТЬ ВСЕ " + Выбрать_серийные_номера ("ОтчетКомиссионераОПродажах") + " ОБЪЕДИНИТЬ ВСЕ " + Выбрать_серийные_номера ("ОтчетОРозничныхПродажах") + " ОБЪЕДИНИТЬ ВСЕ " + Выбрать_серийные_номера ("ОтчетПроизводстваЗаСмену") + " ОБЪЕДИНИТЬ ВСЕ " + Выбрать_серийные_номера ("ПоступлениеТоваровИзПереработки") + " ОБЪЕДИНИТЬ ВСЕ " + Выбрать_серийные_номера ("ПоступлениеТоваровУслуг") + " ОБЪЕДИНИТЬ ВСЕ " + Выбрать_серийные_номера ("ПоступлениеТоваровУслугВНТТ") + " ОБЪЕДИНИТЬ ВСЕ " + Выбрать_серийные_номера ("РеализацияТоваровУслуг") + " ОБЪЕДИНИТЬ ВСЕ " + Выбрать_серийные_номера ("ЧекККМ"); выборка = запрос.Выполнить().Выбрать(); пока выборка.Следующий() цикл // Добавляем найденный документ в список отображения. документ = выборка.Ссылка; запись = Список.Добавить(); запись.СерийныйНомер = выборка.СерийныйНомер; запись.Ссылка = документ; запись.Документ = документ.Метаданные().Синоним; запись.НомерДокумента = документ.Номер; запись.Дата = документ.Дата; конеццикла; конецпроцедуры // Нажата кнопка "Искать". процедура Искать_нажатие (Элемент) Список.Очистить(); ш = ВРег (СокрЛП (Шаблон)); если ш <> "" тогда Поиск (ш); конецесли; конецпроцедуры // Двойной щелчок на строке таблицы. процедура Двойной_щелчок (элемент, строка, колонка, стандартная_обработка) форма = строка.Ссылка.ПолучитьФорму(); форма.Открыть(); конецпроцедуры // Нажата кнопка "Открыть документ". процедура Открыть_документ (Кнопка) строка = ЭлементыФормы.Список.ТекущаяСтрока; если строка <> Неопределено тогда форма = строка.Ссылка.ПолучитьФорму(); форма.Открыть(); конецесли; конецпроцедуры