Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 мар 2024, 01:14

Выборка

Автор dmd22, 22 ноя 2011, 21:08

0 Пользователей и 1 гость просматривают эту тему.

dmd22

Здравствуйте!Я только учусь 1с. Нужна помощь.....
Формируется реестр док-ов...

Процедура КнопкаВыполнитьНажатие(Кнопка)
   
МетаданныеОбъектов = Метаданные["Документы"];
ТабДокумент = новый ТабличныйДокумент;
Макет = ПолучитьМакет("Реестр");
ОбластьМакета=Макет.ПолучитьОбласть("Заголовок");
ОбластьМакета.Параметры.ТекстЗаголовка=("Реестр документов с   " + НачПериода + "  по  " + КонПериода);
ТабДокумент.Вывести(ОбластьМакета);
ОбластьМакета=Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьСтроки=Макет.ПолучитьОбласть("Строка");
ТабДокумент.Вывести(ОбластьМакета);

НомерСтроки=0;
Для СЧ=0 по Метаданные.Документы.   Количество()-1 Цикл
   МетаданныеОбъектов=Метаданные.Документы.Получить(сч);
   Выборка=Документы[МетаданныеОбъектов.Имя].Выбрать(НачПериода,КонПериода);

   Пока Выборка.Следующий() Цикл
      Наимен=МетаданныеОбъектов.ПолноеИмя();
      НомерСтроки=НомерСтроки+1;
      Дата=Выборка.Дата;   
      Если Выборка.Проведен Тогда
         Статус="Проведен"
      ИначеЕсли (Выборка.Проведен=0) и (Выборка.ПометкаУдаления=0) Тогда
         Статус="НеПроведен"
      ИначеЕсли Выборка.ПометкаУдаления=1 Тогда
         Статус="Помечен на удаление"   
      КонецЕсли;
      
      ОбластьСтроки.Параметры.Номерстроки=НомерСтроки;
      ОбластьСтроки.Параметры.Наимен=Наимен;
      ОбластьСтроки.Параметры.Дата=Дата;
      ОбластьСтроки.Параметры.Статус=Статус;
   ТабДокумент.Вывести(ОбластьСтроки);      
   КонецЦикла;
   

   ТабДокумент.Показать();   

КонецЦикла;
   
КонецПроцедуры



Все формируется отлично,но также нужно сделать отбор флажками по проведенным\непроведенным\помеченным на удаление объектам....в 7.7 был меотд УстановитьФилтр....здесь ничего похожего найти не могу....Заранее спасибо

dmd22

Цитата: dmd22 от 22 ноя 2011, 21:08
Здравствуйте!Я только учусь 1с. Нужна помощь.....
Формируется реестр док-ов...

Процедура КнопкаВыполнитьНажатие(Кнопка)
   
МетаданныеОбъектов = Метаданные["Документы"];
ТабДокумент = новый ТабличныйДокумент;
Макет = ПолучитьМакет("Реестр");
ОбластьМакета=Макет.ПолучитьОбласть("Заголовок");
ОбластьМакета.Параметры.ТекстЗаголовка=("Реестр документов с   " + НачПериода + "  по  " + КонПериода);
ТабДокумент.Вывести(ОбластьМакета);
ОбластьМакета=Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьСтроки=Макет.ПолучитьОбласть("Строка");
ТабДокумент.Вывести(ОбластьМакета);

НомерСтроки=0;
Для СЧ=0 по Метаданные.Документы.   Количество()-1 Цикл
   МетаданныеОбъектов=Метаданные.Документы.Получить(сч);
   Выборка=Документы[МетаданныеОбъектов.Имя].Выбрать(НачПериода,КонПериода);

   Пока Выборка.Следующий() Цикл
      Наимен=МетаданныеОбъектов.ПолноеИмя();
      НомерСтроки=НомерСтроки+1;
      Дата=Выборка.Дата;   
      Если Выборка.Проведен Тогда
         Статус="Проведен"
      ИначеЕсли (Выборка.Проведен=0) и (Выборка.ПометкаУдаления=0) Тогда
         Статус="НеПроведен"
      ИначеЕсли Выборка.ПометкаУдаления=1 Тогда
         Статус="Помечен на удаление"   
      КонецЕсли;
      
      ОбластьСтроки.Параметры.Номерстроки=НомерСтроки;
      ОбластьСтроки.Параметры.Наимен=Наимен;
      ОбластьСтроки.Параметры.Дата=Дата;
      ОбластьСтроки.Параметры.Статус=Статус;
   ТабДокумент.Вывести(ОбластьСтроки);      
   КонецЦикла;
   

   ТабДокумент.Показать();   

КонецЦикла;
   
КонецПроцедуры



Все формируется отлично,но также нужно сделать отбор флажками по проведенным\непроведенным\помеченным на удаление объектам....в 7.7 был меотд УстановитьФилтр....здесь ничего похожего найти не могу....Заранее спасибо


dmd22

Здравствуйте!Я только учусь 1с. Нужна помощь.....
Формируется реестр док-ов...




Процедура КнопкаВыполнитьНажатие(Кнопка)

МетаданныеОбъектов = Метаданные["Документы"];
ТабДокумент = новый ТабличныйДокумент;
Макет = ПолучитьМакет("Реестр");
ОбластьМакета=Макет.ПолучитьОбласть("Заголовок");
ОбластьМакета.Параметры.ТекстЗаголовка=("Реестр документов с   " + НачПериода + "  по  " + КонПериода);
ТабДокумент.Вывести(ОбластьМакета);
ОбластьМакета=Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьСтроки=Макет.ПолучитьОбласть("Строка");
ТабДокумент.Вывести(ОбластьМакета);

НомерСтроки=0;
Для СЧ=0 по Метаданные.Документы. Количество()-1 Цикл
МетаданныеОбъектов=Метаданные.Документы.Получить(сч);
Выборка=Документы[МетаданныеОбъектов.Имя].Выбрать(НачПериода,КонПериода);

Пока Выборка.Следующий() Цикл
Наимен=МетаданныеОбъектов.ПолноеИмя();
НомерСтроки=НомерСтроки+1;
Дата=Выборка.Дата;
Если Выборка.Проведен Тогда
Статус="Проведен"
ИначеЕсли (Выборка.Проведен=0) и (Выборка.ПометкаУдаления=0) Тогда
Статус="НеПроведен"
ИначеЕсли Выборка.ПометкаУдаления=1 Тогда
Статус="Помечен на удаление"
КонецЕсли;

ОбластьСтроки.Параметры.Номерстроки=НомерСтроки;
ОбластьСтроки.Параметры.Наимен=Наимен;
ОбластьСтроки.Параметры.Дата=Дата;
ОбластьСтроки.Параметры.Статус=Статус;
ТабДокумент.Вывести(ОбластьСтроки);
КонецЦикла;


ТабДокумент.Показать();

КонецЦикла;

КонецПроцедуры





Все формируется отлично,но также нужно сделать отбор флажками по проведенным\непроведенным\помеченным на удаление объектам....в 7.7 был меотд УстановитьФилтр....здесь ничего похожего найти не могу....Заранее спасибо

sergejK74

В отличии от 7.7 в 8 для таких выборок (где не нужно изменять объект) чаще запросы используются.
Кнопочка Спасибо - слева!

Necropunk

Да, через Метаданные выборки делать - это жесть, перепишите на запрос лучше. Если уж совсем нужно через метаданные, то что-то типа

Запрос = Новый Запрос;
Текст = "";
Для Каждого Документ Из Метаданные.Документы Цикл
    Текст = Текст + "ВЫБРАТЬ Ссылка ИЗ Документ." + Документ.Имя + "ГДЕ " + Документ.Имя + ".ПометкаУдаления = ЛОЖЬ " + " ОБЪЕДИНИТЬ";
КонецЦикла;
Запрос.Текст = Лев(Текст, СтрДлина(Текст) - СтрДлина(" ОБЪЕДИНИТЬ "));"
Выборка = Запрос.Выполнить().Выбрать();

Писал так, в поле, без проверки, могут быть неточности, адаптируйте там, как вам нужно...

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск