Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Номер за пределами значения!
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
Flexy
Всем Добрый День.
Платформа 7.7 027, Конфа ТИС 010.Вдоль и поперек дописанная.
Странная проблема появилась.
Внешний отчет "Выполнение плана Торговыми Агентами", который до сегодняшнего дня работал как надо, стал выбивать ошибку:

Количество = Число(тзТовары.ПолучитьЗначение(Стр,"Количество"));
{C:\DOCUMENTS AND SETTINGS\ADMIN\РАБОЧИЙ СТОЛ\ПРОДАЖИТОРГОВЫМИПОПЛАНУ (1).ERT(153)}: Номер за пределами значения!

Пока Запрос.Группировка(2) = 1 Цикл
            КоличествоСумма = 0;
            // Заполнение полей Контрагент        
            ТЗ2.УдалитьСтроки();
            Счетчик = 0;
            Пока Запрос.Группировка(3) = 1 Цикл  
                Счетчик = Счетчик + 1;
                Стр = "";
                тзТовары.НайтиЗначение(Запрос.Товар,Стр,"Товар");
                Количество = Число(тзТовары.ПолучитьЗначение(Стр,"Количество")); //Что-то тут не так =(
                Если Запрос.Количество >= Количество Тогда
                    КоличествоСумма = КоличествоСумма + Запрос.Количество;
                    ТЗ2.НоваяСтрока();
                    ТЗ2.Количество = КоличествоСумма;
                КонецЕсли;
            КонецЦикла;

Выручайте, Уважаемые icon_beer17.gif
mister-x
Думаю, що проблема:
тзТовары.НайтиЗначение(Запрос.Товар,Стр,"Товар");

не знаходить товар у тзТовары, тобто цей метод вертає 0 і звичайно тоді:
Количество = Число(тзТовары.ПолучитьЗначение(Стр,"Количество"));

видає вищеописану помилку.
Але все-таки я б відлагоджувачем пройшовся - і глянув значення змінних: що там вертається і передається.
GreenFox
Цитата(mister-x @ 05.05.11, 15:48) необходимо зарегистрироваться для просмотра ссылки
Думаю, що проблема:
тзТовары.НайтиЗначение(Запрос.Товар,Стр,"Товар");

не знаходить товар у тзТовары, тобто цей метод вертає 0 і звичайно тоді:
Количество = Число(тзТовары.ПолучитьЗначение(Стр,"Количество"));

видає вищеописану помилку.
Але все-таки я б відлагоджувачем пройшовся - і глянув значення змінних: що там вертається і передається.


Поддерживаю, скорее всего при поиске искомого товара в таблице нет и переменная Стр равна 0, соответственно получить значение и возвращает ощибку.

Поставте проверку
если Стр <> 0 тогда
     Количество = Число(тзТовары.ПолучитьЗначение(Стр,"Количество"));
иначе
     Сообщить("Товар "+СокрЛП(Запрос.Товар)+" не найден");
     Продолжить;
конецесли;
Valerka
Имхо, адекватная проверка будет выглядеть так

Если тзТовары.НайтиЗначение(Запрос.Товар,Стр,"Товар") = 1 Тогда
...


И все ошибки пропадут.
Flexy
Всем спасибо.Проблему решил уже давно, но забыл отписаться.
Ошибку выбивало т.к. ТЗ была пустая, в случае выбора группы товара а не конкретного элемента.
Проверял таким же способом, как привел ув. Valerka выше.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.