Имя: Пароль:
1C
1C 7.7
v7: Расчет сеьбестоимости товара по OlE
0 AlexKhab
 
09.03.13
18:43
Добрый день. Пишку пенеренос по Ole из 7-ки в 8-ку. Столкулся с проблемой расчета себестоимости. Почему я не могу получить номер строки в записи регистра?

Код Следующий:

Пока ДокОЛЕ.ПолучитьСтроку() = 1 Цикл
               
                   
                   СебНомен = 0;
                   д=v7.CreateObject("Документ");
                   р=v7.CreateObject("Регистр.ПартииНаличие");
                   Если д.НайтиПоНомеру(ДокОЛЕ.НомерДок ,ДокОЛЕ.ДатаДок,"Реализация")=1 Тогда
                       Если р.ВыбратьДвиженияДокумента(д)=1 Тогда
                           Пока р.ПолучитьДвижение()=1 цикл
                               Если (р.НомерСтроки = ДокОЛЕ.НомерСтроки)  Тогда
                                   СебНомен = СебНомен + р.СуммаУпр;
                               КонецЕсли;    
                           КонецЦикла;
                       КонецЕсли;
                   КонецЕсли;
Под отладчиком р.НомерСтроки выдает Неопределено. А при просмотре движений документа у данного регистра номер строки заполнен.
1 EugeniaK
 
09.03.13
20:00
(0) Не знаю, что такое "ПолучитьДвижение".
Но, возможно, после того, как получил выборку движений, нужно спозиционироваться на какой-нибудь строке.
Иначе номер какой строки должен выдаваться?
2 sanja26
 
09.03.13
20:04
у выборки есть номер строки?
3 Злопчинский
 
09.03.13
20:10
сначала попробовать переписать так
р.ВыбратьДвиженияДокумента(д.ТекущийДокумент())
4 Cthulhu
 
10.03.13
00:35
в ОЛЕ-контексте сильно желательно (и даже обязательно - заведи такое правило, оно полезное) все методы и ключевые слова использовать исключительно в англик-транскрипции.
5 Dolly_EV
 
11.03.13
03:52
НомерСтроки - для объекта "Регистр" - метод, так что пиши "р.НомерСтроки()" и будет тебе щастие. Ну и (3) не забудь
6 ЧеловекДуши
 
11.03.13
06:00
(0) Потому что нет записей :)


НомерСтроки()  (для регистра)
LineNum()
Синтаксис:
НомерСтроки()
Назначение:
Возвращает номер строки документа, по которой было выбрано движение.
Замечание:
Метод  можно использовать только для объектов, созданных функцией СоздатьОбъект.


************
//А вот эта функция должна отрабатывать при проведения документа :)

ПривязыватьСтроку(<?>);
LinkLine(<?>);
Синтаксис:
ПривязыватьСтроку(<НомерСтроки>)
Назначение:
Записать номер строки документа в движении регистра.
Параметры:
<НомерСтроки> - номер строки Документа.
Замечание:
Метод доступен только в Модуле документа в предопределенной процедуре ОбработкаПроведения.
Метод можно применять только к регистрам, непосредственно доступным в локальном контексте Модуля документа.