Имя: Пароль:
1C
 
Рарус Автохозяйство не проводится документ...
Ø
0 Leman
 
02.11.06
14:48
Вопрос вобщем вот в чем:
вот на этом месте в модуле документа ЗаправочнаяВедомость(для тех кто знает конфу, для остальных пофиг это не особо и важно) ругается на меня.
(Сразу оговорка чтобы не совать сюда весь код, ни кто ж не будет разбираться, ТаблицаТМЦ - Таблица значений заполненная из ТЧ дока,
ТаблПоТовару - Таблица значений заполненная из регистра выгрузкой итогов.
И там и там нужный товар есть, строчки кода приведены из тела цикла в котором перебираем строки из ТаблицаТМЦ.)
кусок кода:
СтрТов = "";
Если ТаблПоТовару.НайтиЗначение(ТаблицаТМЦ.Товар,СтрТов, "Товар")=1 Тогда
   КолВо = ТаблицаТМЦ.Количество;
   СуммаТов = 0;
   Регистр.ПартииТоваров.Склад = Склад;
   Пока ТаблПоТовару.ПолучитьЗначение(СтрТов,"Товар") = ТаблицаТМЦ.Товар Цикл
Ругается на последнюю строку, говоря что: Номер за пределами значения!
Не пойму че за фигня, до сего дня все работало и не ругалось и вдруг..
Если че, спрашивайте мелочи, уточню.
Памагите.....
1 sdaf
 
02.11.06
14:51
очевидно что СтрТов больше чем строк в ТЗ или равна 0
самое простое (без возни) сделать через попытку/исключение, но неизвестно где косяк может вылезти, а по хорошему надо в отладчике смотреть
2 Leman
 
02.11.06
14:53
Т.е. метод НайтиЗначение() срабатывает, переменной СтрТов значение номера строки присваивается, но следом метод ПолучитьЗначение() в этой же ТЗ эту же строку не находит... Че за ерунда??
3 Leman
 
02.11.06
14:55
(1) в отладчике смотрел, и таблицы открывал.... все нормально с виду, все есть и там и там в конкретном случае нужный товар стоит сразу в первой строке СтрТов = 1
4 KUBIK
 
02.11.06
15:16
Попробуй открыть документ и внимательно пролистай ТЧ. Наверняка есть пустая строчка (как правило либо в начале тч или в конце = так юзеры иногда лохматяться)
5 Leman
 
02.11.06
15:18
(4) да Бог с ними лохматятся, главное таблицы то заполнены и метод НайтиЗначение() срабатывает. пофиг пустые строки если б они и были, кстати их нет.
6 Leman
 
02.11.06
15:26
Ребята, не ломайте голову, я все нашел. Спасибо всем кто не поленился ответить
7 lalex23
 
02.11.06
15:56
(6) разная номенклатура с одинаковыми наименованиями?
8 Leman
 
02.11.06
17:38
нет, косяк в партионном учете. остатки считались неправильно, допер когда отладчиком по циклу прошелся.
9 lalex23
 
02.11.06
18:03
а ты глянь, там сортировка ТЗ по коду идёт или по Номенклатуре, а то я такой косяк отлавливал - несколько товаров с одинаковым наименованием в этой ТЗ шли вперемешку, т.е. движения по партиям не всегда выполнялись, часа два убил на эту траблу
10 Leman
 
02.11.06
18:56
да там другая хрень. остатки хранятся в одном регистре, партии в другом, кто-то че то накосячил и теперь то с этим не идет. Под списание количество система берет данные из первого регистра, и там все правильно, а итоговый остаток по партиям минусовой. Вот тут и косяк.
А цикл наращивают простым прибавлением а не перебором строк, вот и получается что надо больше строк а взять негде :)) а ищется там не наименование там объектная колонка
Ошибка? Это не ошибка, это системная функция.