|
v7: Выборка из ДБФ | ☑ | ||
---|---|---|---|---|
0
work92
05.01.13
✎
09:41
|
Включаю и Зависает выборка что изменить в коде
Процедура Выполнить() Таб=СоздатьОбъект("Таблица") ; Таб.ИсходнаяТаблица("Таблица"); ДБФ= создатьОбъект("XBASE"); ДБФ.ОткрытьФайл("D:\Проверка ДБФ\Магазин.dbf"); Сумма=0; ДБФ.Первая(); Пока ДБФ.ВКонце()=0 Цикл Если ДБФ.NAme_=852 Тогда Сумм=Сумма+ДБФ.SUM_; Имя=ДБФ.Name_; Таб.Вывестисекцию("Строка"); ДБФ.Следующая(); КонецЕсли; КонецЦикла; Таб.Показать(); КонецПроцедуры |
|||
1
work92
05.01.13
✎
09:42
|
проблема в этой части
Пока ДБФ.ВКонце()=0 Цикл Если ДБФ.NAme_=852 Тогда Сумм=Сумма+ДБФ.SUM_; Имя=ДБФ.Name_; Таб.Вывестисекцию("Строка"); ДБФ.Следующая(); КонецЕсли; КонецЦикла; |
|||
2
vinogradъ
05.01.13
✎
09:54
|
ДБФ.Следующая(); вынеси из условия
|
|||
3
snegovik
05.01.13
✎
09:56
|
У тебя ДБФ.Следующая() стоит в условии, которое наверняка не выполняется в первой строке ДБФ. Поэтому и цикл крутится на первой строке.
|
|||
4
work92
05.01.13
✎
10:17
|
Не выводит данные а открывает пустую таблицу
|
|||
5
work92
05.01.13
✎
10:17
|
Процедура Выполнить()
Таб=СоздатьОбъект("Таблица") ; Таб.ИсходнаяТаблица("Таблица"); ДБФ= создатьОбъект("XBASE"); ДБФ.ОткрытьФайл("D:\Проверка ДБФ\Магазин.dbf"); Сумма=0; ДБФ.Первая(); Пока ДБФ.ВКонце()=0 Цикл Если ДБФ.NAme_=852 Тогда // Сумм=Сумма+ДБФ.SUM_; Имя=ДБФ.Name_; КонецЕсли; ДБФ.Следующая(); Таб.Вывестисекцию("Строка"); КонецЦикла; Таб.Показать(); КонецПроцедуры |
|||
6
Mikeware
05.01.13
✎
10:19
|
(5) открой для себя отладчик...
|
|||
7
snegovik
05.01.13
✎
10:20
|
Если ДБФ.NAme_=852 Тогда
// Сумм=Сумма+ДБФ.SUM_; Имя=ДБФ.Name_; //Добавь эту строку: Сообщить(Имя); //Запусти процедуру, что выдаст в сообщениях? |
|||
8
snegovik
05.01.13
✎
10:20
|
(6) Рано ему ещё отладчик открывать.
|
|||
9
work92
05.01.13
✎
10:23
|
не сообщает
|
|||
10
work92
05.01.13
✎
10:23
|
что делать
|
|||
11
work92
05.01.13
✎
10:24
|
Процедура Выполнить()
Таб=СоздатьОбъект("Таблица") ; Таб.ИсходнаяТаблица("Таблица"); ДБФ= создатьОбъект("XBASE"); ДБФ.ОткрытьФайл("D:\Проверка ДБФ\Магазин.dbf"); Сумма=0; ДБФ.Первая(); Пока ДБФ.ВКонце()=0 Цикл Если СОкрЛП(ДБФ.NAme_)=852 Тогда // Сумм=Сумма+ДБФ.SUM_; Имя=ДБФ.Name_; КонецЕсли; ДБФ.Следующая(); Таб.Вывестисекцию("Строка"); КонецЦикла; Сообщить(Имя); Таб.Показать(); КонецПроцедуры |
|||
12
Mikeware
05.01.13
✎
10:24
|
(10) возьми лист бумаги формата А4, и напиши заявление об увольнении в связи с профнепригодностью...
|
|||
13
snegovik
05.01.13
✎
10:31
|
(11) Ты тролль, что ли? Я же написал, куда поставить Сообщить(Имя); - сразу после Имя=ДБФ.Name_.
|
|||
14
vinogradъ
05.01.13
✎
10:31
|
(11) Мне было бы стыдно с таким обращаться на форум. Такие косяки нужно самому решать, иначе дальше заниматься "программированием" в 1С не стоит.
|
|||
15
Chai Nic
05.01.13
✎
10:52
|
(14) У всех было такое время, когда код на незнакомом языке программирования представляется набором заклинаний, никак между собой не связанных.. это проходит.
|
|||
16
snegovik
05.01.13
✎
10:54
|
(15) Он на мисте уже полгода, я в свое время при полугодовом стаже уже успел две базы порушить))
|
|||
17
vinogradъ
05.01.13
✎
11:01
|
(11) Если СокрЛП(ДБФ.NAme_) = "852" Тогда
и Таб.Вывестисекцию("Строка"); внутрь условия поставь |
|||
18
PALESIA
05.01.13
✎
19:21
|
(6) когда-то я открыл для себя отладчик ... потом открыл Сообщить() и забыл про отладчик)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |