Имя: Пароль:
1C
1С v8
Поиск по ТЧ на форме.
0 YurAnt
 
19.07.13
08:00
Доброго времени суток всем.
1) Есть ТЧ на форме, в ней список с одной из колонок "НаименованиеПодразделения".

2) Есть выгруженая запросом ТЗ.

Делаю следующее: перебирая строки ТЗ, беру значение колонки "Подразделение" из выборки, осуществляю по нему поиск в ТЧ на форме, и если значения равны - заполняю реквизит ТЧ "Премия" соответствующим значением из выборки.

Выглядит как-то так:

Функция ВыгрузитьСправкаОЗПКонтр() Экспорт
   ТекстЗапроса = "ВЫБРАТЬ РАЗЛИЧНЫЕ
                  |    СправкаОЗПКонтрактниковСрезПоследних.НомерСтроки КАК НомерСтроки,
                  |    СправкаОЗПКонтрактниковСрезПоследних.Период КАК Период,
                  |    СправкаОЗПКонтрактниковСрезПоследних.Подразделение КАК Подразделение,
                  |    СправкаОЗПКонтрактниковСрезПоследних.ФИО КАК ФИО,
                  |    СправкаОЗПКонтрактниковСрезПоследних.ВТомЧислеПремия КАК Премия
                  |ИЗ
                  |    РегистрСведений.СправкаОЗПКонтрактников.СрезПоследних КАК СправкаОЗПКонтрактниковСрезПоследних
                  |
                  |УПОРЯДОЧИТЬ ПО
                  |    НомерСтроки
                  |АВТОУПОРЯДОЧИВАНИЕ";
   Запрос=Новый Запрос(ТекстЗапроса);
   выборка=запрос.Выполнить().Выбрать();
   Возврат выборка;
КонецФункции    

Функция ВыборкаСправкаОЗПКонтрВТЗ(ВыборкаСправкаОЗПКонтр) Экспорт
       ТЗСправкаОЗПКонтр = Новый ТаблицаЗначений;
       ТЗСправкаОЗПКонтр.Колонки.Добавить("НомерСтроки");
       ТЗСправкаОЗПКонтр.Колонки.Добавить("Период");
       ТЗСправкаОЗПКонтр.Колонки.Добавить("ФИО");
       ТЗСправкаОЗПКонтр.Колонки.Добавить("Подразделение");
       ТЗСправкаОЗПКонтр.Колонки.Добавить("Премия");
       Пока ВыборкаСправкаОЗПКонтр.Следующий() Цикл
           НовСтрокаТЗ = ТЗСправкаОЗПКонтр.Добавить();
           НовСтрокаТЗ.НомерСтроки = ВыборкаСправкаОЗПКонтр.НомерСтроки;
           НовСтрокаТЗ.Период = ВыборкаСправкаОЗПКонтр.Период;
           НовСтрокаТЗ.ФИО = ВыборкаСправкаОЗПКонтр.ФИО;
           НовСтрокаТЗ.Подразделение = ВыборкаСправкаОЗПКонтр.Подразделение;
           НовСтрокаТЗ.Премия = ВыборкаСправкаОЗПКонтр.Премия;
       КонецЦикла;
   Возврат ТЗСправкаОЗПКонтр;
КонецФункции

Процедура ПересчетСправкаОЗПКонтр(ТабСправкаОЗПКонтр) Экспорт
   Для НомерСтроки = 0 По ТабСправкаОЗПКонтр.Количество()-1 Цикл
       ТекСтрокаПодразделение = ТабСправкаОЗПКонтр[НомерСтроки].Подразделение;
       ПодразделениеСсылка = Справочники.Подразделения.НайтиПоНаименованию(ТекСтрокаПодразделение);
       СтрокаРасчетФота = СправкаРасчетФОТа.Найти(ПодразделениеСсылка, "НаименованиеПодразделения");
       СтрокаРасчетФотаНомерСтроки = СтрокаРасчетФота.НомерСтроки;
       //СправкаРасчетФОТа.Найти(ПодразделениеСсылка, "НаименованиеПодразделения").ПремияПоКонтрактуРуб
       //СправкаРасчетФОТа[СтрокаРасчетФотаНомерСтроки].ПремияПоКонтрактуРуб = ТабСправкаОЗПКонтр[НомерСтроки].Премия;
   КонецЦикла;
КонецПроцедуры

Собственно ругается на последнюю процедуру

Значение не является значением объектного типа (НомерСтроки)
       СтрокаРасчетФотаНомерСтроки = СтрокаРасчетФота.НомерСтроки;

Значения и там и там число... не могу в толк взять почему такая конструкция не срабатывает ?

СтрокаРасчетФота = СправкаРасчетФОТа.Найти(ПодразделениеСсылка, "НаименованиеПодразделения");
       СтрокаРасчетФотаНомерСтроки = СтрокаРасчетФота.НомерСтроки;

Благодарен за любые советы, с ув. YurAnt.
1 YurAnt
 
19.07.13
08:04
PS все действо происходит в модуле объекта.
2 YurAnt
 
19.07.13
08:10
Отбой) Строки имеют свойство заканчиваться.
:)
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший