Имя: Пароль:
1C
1С v8
Переборка в 7.7 и в 8.1
0 Uchenica74
 
19.11.13
13:14
Добрый день! Подскажите пожалуйста ошибку в переборке. Подключаюсь из 8.1 к 7.7, прописываю следующее:

Д = V7.CreateObject("Документ.aЗакрытиеПЛ_ГАс");
ПЛ = V7.CreateObject("Документ.aПЛ_ГАс");
            
Если Д.ВыбратьДокументы(ДатаНач, ДатаКон)=1 Тогда
                
Пока Д.ПолучитьДокумент()=1 Цикл
                    
    Если Д.Проведен()<>1 Тогда
    Продолжить;
    КонецЕсли;
                    
    Если Д.ПЛ.Выбран()=0 Тогда
    Сообщить("Для документа от "+Д.ДатаДок+" №"+Д.НомерДок+" не указан путевой лист");
    Продолжить;
    КонецЕсли;
                    
    ТЗ.НоваяСтрока();
    Первый=1;
    Д.ПЛ.ВыбратьСтроки();
Пока Д.ПЛ.ПолучитьСтроку()=1 Цикл
                            ТЗ.ПробегСГрузом=ТЗ.ПробегСГрузом+Д.ПЛ.ПробегСГрузом;
                            ТЗ.ПеревезеноВсего=ТЗ.ПеревезеноВсего+Д.ПЛ.Груз;
                            ТЗ.ПеревезеноНаПрицепе=ТЗ.ПеревезеноНаПрицепе+Д.ПЛ.Груз1+Д.ПЛ.Груз2;
                            ТЗ.ВыполненоТКм=ТЗ.ВыполненоТКм+Д.ПЛ.Груз*Д.ПЛ.ПробегСГрузом;
Если Первый=1 Тогда
                                ТЗ.Заказчик=Д.ПЛ.Контрагент.Наименование;
                                ТЗ.АдресПодачи=Д.ПЛ.АдресПодачи.Наименование;
                                Первый=0;
КонецЕсли;
КонецЦикла;          
КонецЕсли;

Знаю точно что у документа ПЛ заполнена таблица, но при переборке все значения равны 0. Возможно я не указываю таблицу или еще что то. Не могу понять.
1 cyberandr
 
19.11.13
13:22
С форматом дат все нормально?
2 mdocs
 
19.11.13
13:25
ПЛ.НайтиДокумент(Д.ПЛ);
ПЛ.ВыбратьСтроки();
бла бла бла
3 Uchenica74
 
19.11.13
13:26
(1) с форматом все ок, т.к. ниже я из этого документа вывожу другие поля, т.е. в выборку все правильно попадает, таблица только никак не поддается. При этом я заполняю ТЗ(ТЗ.ПробегСГрузом=ТЗ.ПробегСГрузом+Д.ПЛ.ПробегСГрузом;
...) и ее обрабатываю так же и с ней проблем нет:

ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку()=1 Цикл...


Есть разница ТЗ - это таблица, а вот ПЛ - это документ в котором есть таблица
4 Uchenica74
 
19.11.13
13:27
(2) на данную строчку (ПЛ.НайтиДокумент(Д.ПЛ); ) ссылается что метод не обнаружен, поэтому решила сделать через Д.ПЛ....
5 mdocs
 
19.11.13
13:28
замени
ПЛ = V7.CreateObject("Документ.aПЛ_ГАс");
на
ПЛ = V7.CreateObject("Документ");
6 1dvd
 
19.11.13
13:30
ПЛ.НайтиДокумент(Д.ПЛ.ТекущийДокумент());
7 1dvd
 
19.11.13
13:31
(4) >> (ПЛ.НайтиДокумент(Д.ПЛ); ) ссылается что метод не обнаружен

не верю. Приведи полный текст ошибки
8 dk
 
19.11.13
13:39
про отладчик уже было?
9 Uchenica74
 
19.11.13
13:44
(7)ПЛ.НайтиДокумент(Д.ПЛ)    {(1)}: Метод объекта не обнаружен (НайтиДокумент)
10 Uchenica74
 
19.11.13
13:57
Так вообще зацикливается, не понятно почему и при этом все значения равны 0

Если Д.ПЛ.ВыбратьСтроки()=1 Тогда
                        Д.ПЛ.ВыбратьСтроки();

Пока Д.ПЛ.ПолучитьСтроку()=1 Цикл
                            ТЗ.ПробегСГрузом=ТЗ.ПробегСГрузом+Д.ПЛ.ПробегСГрузом;
                            ТЗ.ПеревезеноВсего=ТЗ.ПеревезеноВсего+Д.ПЛ.Груз;
                            ТЗ.ПеревезеноНаПрицепе=ТЗ.ПеревезеноНаПрицепе+Д.ПЛ.Груз1+Д.ПЛ.Груз2;
                            ТЗ.ВыполненоТКм=ТЗ.ВыполненоТКм+Д.ПЛ.Груз*Д.ПЛ.ПробегСГрузом;
                            Если Первый=1 Тогда
                                ТЗ.Заказчик=Д.ПЛ.Контрагент.Наименование;
                                ТЗ.АдресПодачи=Д.ПЛ.АдресПодачи.Наименование;
                                Первый=0;
                            КонецЕсли;
КонецЦикла;          
КонецЕсли;
11 dk
 
19.11.13
14:07
(10) не надо через 2 точки в 1с работать

Д.ПЛ.ВыбратьСтроки()=1

лучше так

МойДок = Д.ПЛ;
МойДок.ВыбратьСтроки()=1

----
что за бред?

Если Д.ПЛ.ВыбратьСтроки()=1 Тогда
                        Д.ПЛ.ВыбратьСтроки();

----
отладчиком умеешь пользоваться?
12 dk
 
19.11.13
14:11
фотка хде?
13 Uchenica74
 
19.11.13
14:16
(11) Отладчиком умею пользоваться. Строку заметила - убрала. По поводу 2-х точек - меняю код, проверяю.
Независимо от того, куда вы едете — это в гору и против ветра!