Подскажите как сделать отбор из табличной части

midif

Member
16.08.2007
6
0
#1
Здравствуйте... Подскажите как сделать отбор по значению
пример:
есть документ "Люди", в нём есть табличная часть с некоторыми полями, к примеру "Прививка" и "Дата прививки". Как правильно сделать отбор по названию прививки(допустим "Корь") и по диапазону дат. (1С v7.7)
 
J

jcnby

Гость
#3
Выгружай табличную часть документа в ТаблицуЗначений. А дальше уже получай что тебе необходимо.
Док.ВыгрузитьТабличнуюЧасть(НашаТЗ,(тут колонки которые выгружаем));
Дальше делаешь Цикл на ТЗ
Код:
Для Ы=1 По ТЗ.КоличествоСтрок() Цикл
Если Прививка=ПривикаКакая-то Тогда
Если (датаНаша=>какая-тоДатаНачало) И (какая-тоДатаКонец=<ДатаНаша) Тогда
чета-тама с ней
КонецЕсли;
КонецЕсли;
КонецЦикла;
Либо как говарит Вит
 

midif

Member
16.08.2007
6
0
#4
[codebox]
Процедура Г()
Перем а;
Перем счётчик;
Перем прививка1;
Перем НашаТЗ;
счётчик=0;
дЛюди=СоздатьОбъект("Документ.Люди");
ТЗ=дЛюди.ВыгрузитьТабличнуюЧасть(НашаТЗ);
Для а=1 По ТЗ.КоличествоСтрок() Цикл
Если НашаТЗ.Прививка="Корь" Тогда
Сообщить("привет");
КонецЕсли;
КонецЦикла;
КонецПроцедуры
[/codebox]
:) как я понял, так сделал, но по моему я чего то не понимаю
 
J

jcnby

Гость
#5
Похзиционироваться на документ конкретный нада

ну во превых переменные пишутся в модуле а не в процедуре!
во вторых:
Код:
дЛюди=СоздатьОбъект("Документ.Люди");
- ТУТ МЫ ЕЩЕ НЕ ВЫБРАЛИ НАШ ДОКУМЕНТ! Поетому нада выбрать, дописываем:
если не из модуля документа дЛюди, То:

Код:
дЛюди.Выбрать(,"Журнал.имяЖурнала.дЛюди",);
и не забудем про ТЗ!
Код:
НашаТЗ=СоздатьОбъект("ТаблицаЗначений");
- либо на форму кидаем!

делаем там колонки соотвествующие колонкам табличной части:

Код:
НашаТЗ.НоваяКолонка("прививка");
нашаТЗ.НоваяКолонка("ДатаПрививки");
далее

Код:
если дЛюди.Выбран()=1 Тогда
дЛюди.ВыгрузитьТабличнуюЧасть(НашаТЗ,);
а вот теперь уже:
Код:
Для Ы=1 По НашаТЗ.КоличествоСтрок() Цикл
Если НашаТЗ.Прививка="Корь"Тогда
Если (НашаТЗ.ДатаПрививки=>какая-тоДатаНачало) И (какая-тоДатаКонец=<НашаТЗ.датаПрививки) Тогда
что-то тама-тама
КонецЕсли;
КонецЕсли;
КонецЦикла;
Проще сделать ЗАПРОСОМ ( для тебя)
 
K

kaa

Гость
#6
Здравствуйте... Подскажите как сделать отбор по значению
пример:
есть документ "Люди", в нём есть табличная часть с некоторыми полями, к примеру "Прививка" и "Дата прививки". Как правильно сделать отбор по названию прививки(допустим "Корь") и по диапазону дат. (1С v7.7)
ПерПрививка = //или с формы или найти
ПерДатаПрививки = //или с формы или найти
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса ="
|Период с НачДата по КонДата;
|Док = Документ.Люди.ТекущийДокумент;
|Прививка = Документ.Люди.Прививка;
|ДатаПрививки = Документ.Люди.ДатаПрививки;
|Группировка Док;
|Условие (Прививка = ПерПрививка );//или в если по группам
|Условие (ДатаПрививки = ПерДатаПривики);
|";

и т.д.