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

 
proj/1c/serial.txt · Последние изменения: 2008/04/24 05:00
 
Copyright (C) 1996-2013 Serge Vakulenko
serge@vak.ru