Отбор
|
Реквизит
|
Значение
|
|
|
|
|
|
|
|
|
|
|
Номер
|
Дата
|
Документ
|
Сумма
|
|
|
|
|
|
&НаКлиенте
Процедура ТипДокументаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
Если (Объект.НачальнаяДата = Дата(1,1,1,0,0,0)) И (Объект.КонечнаяДата = Дата(1,1,1,0,0,0)) Тогда
ОтветПользователя = Вопрос("Не выбран период! Установить Даты?",РежимДиалогаВопрос.ОКОтмена);
Иначе
ОтображениеВыпадающегоСписка();
КонецЕсли;
Если ОтветПользователя <> КодВозвратаДиалога.ОК Тогда
ОтветПользователя = Неопределено;
ОтображениеВыпадающегоСписка();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОтображениеВыпадающегоСписка()
Если Объект.КонечнаяДата = Дата(1,1,1,0,0,0) Тогда
Объект.КонечнаяДата = ТекущаяДата();
КонецЕсли;
ВидыДокументовИзБазы = ВыборДокументовИмя();
Если ВидыДокументовИзБазы.Количество()=0 Тогда
Предупреждение("Документов в базе не обнаружено");
ЭтаФорма.Закрыть();
Иначе
ВыборВидаДокумента=ВыбратьИзСписка(ВидыДокументовИзБазы,Элементы.ТипДокумента);
СписокВыбраныхДокументов = ВыборДокументов(Строка(ВыборВидаДокумента));
Если СписокВыбраныхДокументов.Количество()=0 Тогда
Предупреждение("Документов "+ВыборВидаДокумента.Значение+" в базе не обнаружено");
Иначе
ЗаполнениеТаблици1НаСервере(СписокВыбраныхДокументов);
КонецЕсли;
КонецЕсли
КонецПроцедуры // ОтображениеВыпадающегоСписка()
&НаСервере
Функция ВыборДокументовИмя()
СписокИменДокуменов = Новый СписокЗначений;
Для Каждого ИмяДокумента Из Метаданные.Документы Цикл
СписокИменДокуменов.Добавить(ИмяДокумента.Имя);
КонецЦикла;
Возврат СписокИменДокуменов;
КонецФункции // ВыборДокументов()
&НаСервере
Функция ВыборДокументов(ИмяДокумента)
СписокДокументов = Новый СписокЗначений;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| "+ИмяДокумента+".Ссылка
|ИЗ
| Документ."+ИмяДокумента+" КАК "+ИмяДокумента+"
|ГДЕ
| (НЕ "+ИмяДокумента+".ПометкаУдаления)";
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
СписокДокументов.Добавить(ВыборкаДетальныеЗаписи.Ссылка);
КонецЦикла;
Возврат СписокДокументов;
КонецФункции // ВыборДокуменов()
&НаСервере
Процедура ЗаполнениеТаблици1НаСервере(СписокДокументов)
ТаблицаВыбраныхДокументов1 = Новый ТаблицаЗначений;
ТаблицаВыбраныхДокументов1.Колонки.Добавить("Отбор");
ТаблицаВыбраныхДокументов1.Колонки.Добавить("Реквизит");
ТаблицаВыбраныхДокументов1.Колонки.Добавить("Значение");
ТаблицаВыбраныхДокументов1.Колонки.Добавить("Дата");
ТаблицаВыбраныхДокументов1.Колонки.Добавить("Сумма");
Для Каждого Документ Из СписокДокументов Цикл
СтрокаТаблици = ТаблицаВыбраныхДокументов1.Добавить();
СтрокаТаблици.Отбор = Документ.Пометка;
СтрокаТаблици.Реквизит = Документ.Значение.Ссылка;
СтрокаТаблици.Значение = Документ.Значение.Контрагент;
СтрокаТаблици.Дата = Документ.Значение.Дата;
СтрокаТаблици.Сумма = Документ.Значение.СуммаДокумента;
КонецЦикла;
ЗначениеВДанныеФормы(ТаблицаВыбраныхДокументов1,Таблица1);
КонецПроцедуры // ЗаполнениеТаблици1НаСервере()
&НаКлиенте
Процедура Отчет(Команда)
//ЗаполнениеТаблици2НаСервере(данные);
КонецПроцедуры
&НаСервере
Процедура ЗаполнениеТаблици2НаСервере(Данные)
КонецПроцедуры // ЗаполнениеТаблици2НаСервере()
Реквизиты Внешней обработки:
ОЛЕГ
вс, 18/11/2012 - 23:01
guru
пн, 19/11/2012 - 00:00
ОЛЕГ
пн, 19/11/2012 - 21:31
guru
вт, 20/11/2012 - 01:28
ОЛЕГ
пт, 23/11/2012 - 20:25