Имя: Пароль:
1C
1C 7.7
v7: ТЗ.НайтиЗначение Находит значение только в одном случае
0 ---Fix---
 
17.04.12
09:34
Все значения в заполненной таблице есть, т.е постредством метода ВыбратьСтроку я их вижу.
Данный код рабочий, но если, в процедуре Тест(), значение при поиске изменить на любое другое от 1 до 12 разумеется.

Сообщить(ТЗГлавная.Периоды.НайтиЗначение(8, НужнаяСтрока, "НомерПериода"));

то уже возвращает 0. Типы данных числовые и вроде совпадают, не могу понять в чем дело помогите пожалуйста.

Процедура ЗаполнитьТаблицуПериодов(пТаблицаПериодов)
   пТаблицаПериодов.НоваяКолонка("НомерПериода", "Число", 2);
   пТаблицаПериодов.НоваяКолонка("ВидыТеплаСПараметрами", "ТаблицаЗначений");

   пТаблицаПериодов.УдалитьСтроки();
                                   
   Для а=1 По 12 Цикл
       пТаблицаПериодов.НоваяСтрока();
       пТаблицаПериодов.НомерПериода = а;
       //КопияТЗ = СоздатьОбъект("ТаблицаЗначений");
       //ЗаполнитьТаблицуВидовТеплаСПараметрами(КопияТЗ);
       //пТаблицаПериодов.ВидыТеплаСПараметрами = КопияТЗ;
   КонецЦикла;        
   
КонецПроцедуры

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

Процедура Тест()
   ТЗГлавная = СоздатьОбъект("ТаблицаЗначений");
   ТЗГлавная.НоваяКолонка("Слой", "Число", 8);
   ТЗГлавная.НоваяКолонка("Периоды", "ТаблицаЗначений");
   ЗаполнитьГлавнуюТаблицу(ТЗГлавная);

   НужнаяСтрока = "";
   ТЗГлавная.НайтиЗначение(99000000, НужнаяСтрока, "Слой");
   ТЗГлавная.ПолучитьСтрокуПоНомеру(НужнаяСтрока);
   Сообщить(ТЗГлавная.Периоды.НайтиЗначение(9, НужнаяСтрока, "НомерПериода"));
   ТЗГлавная.Периоды.ВыбратьСтроку();
КонецПроцедуры
1 ДенисЧ
 
17.04.12
09:37
Продам Синтакс-Помощник. Дорого.
Научу его читать. Очень дорого.
Научу понимать то, что прочитали. Немеряно дорого.
Понимание выполняемых процессов - бесценно.
2 viktor_vv
 
17.04.12
09:43
А так?

 ТЗГлавная.ПолучитьСтрокуПоНомеру(НужнаяСтрока);
НужнаяСтрока = 0 ;
   Сообщить(ТЗГлавная.Периоды.НайтиЗначение(9, НужнаяСтрока, "НомерПериода"));
3 andrewks
 
17.04.12
09:45
(1) Есть вещи, котоые нельзя купить. Для всего остального есть Мастер-кард  :)
4 dk
 
17.04.12
09:45
(2)+1
нужно сбросить НужнаяСтрока = 0 перед вторым поиском
5 ---Fix---
 
17.04.12
09:49
(2),(4) Спасибо огромное! не обратил внимание в СП на это.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.