Имя: Пароль:
1C
1C 7.7
v7: Получить значение субконто проводки 8.2
0 eshtrey
 
21.10.15
10:16
Подключаюсь по COM из 7.7 к 8.2. Хочу получить движения некоторых документов. Документы выбираю запросом. Из движений по бух. счетам не могу получить значения субконто Дт и Кт. Ругается на Проводка1с8.СубконтоДт.Получить(...), но в 8ке такая конструкция отрабатывает без ошибок.

v8 = Коннектор.Connect("File=");
Запрос = v8.NewObject("Запрос");                          
Запрос.Текст = "
|ВЫБРАТЬ
|   ВыпискаБанка.Ссылка
|ИЗ
|   Документ.ВыпискаБанка КАК ВыпискаБанка
|ГДЕ
|   (ВыпискаБанка.Организация.Код = &КодОрганизации)
|И (ВыпискаБанка.Дата МЕЖДУ &НачДата И &КонДата)
|    И (ВыпискаБанка.Проведен)
";
Запрос.УстановитьПараметр("НачДата", НачДата);
Запрос.УстановитьПараметр("КонДата", КонДата);
Запрос.УстановитьПараметр("КодОрганизации", ВыбОрганизация);
Результат = Запрос.Выполнить().Выгрузить();
ТЗ.НоваяКолонка("Документ", "Строка");
Для Сч = 0 По Результат.Количество() - 1 Цикл
   ТЗ.НоваяСтрока();
   СтрокаТЧ = Результат.Получить(Сч);
   ТЗ.Документ = СокрЛП(СтрокаТЧ.Ссылка.Номер) + " от " + СокрЛП(СтрокаТЧ.Ссылка.Дата);
        
   Движения = СтрокаТЧ.Ссылка.ПолучитьОбъект().Движения.Основной;
   Движения.Прочитать();  
   Проводки = Движения.Выгрузить();
   Для Пр = 0 По Проводки.Количество() - 1 Цикл
    Проводка1с8 = Проводки.Получить(Пр);
    Сообщить(Проводка1с8.СчетДт.Код + " - " + Проводка1с8.СчетКт.Код + "   " + Проводка1с8.Сумма);
    ТаблицаСубконтоДт = Проводка1с8.СчетДт.ВидыСубконто;
    Для К = 1 По ТаблицаСубконтоДт.Количество() Цикл
        ТекущаяСтрока = ТаблицаСубконтоДт.Получить(К);
        Сообщить("Субконто Дт"+ТекущаяСтрока.НомерСтроки +" - "+Проводка1с8.СубконтоДт.Получить(ТекущаяСтрока.ВидСубконто));
    КонецЦикла;
  КонецЦикла;
КонецЦикла;
1 lxndr
 
21.10.15
10:35
смени
Проводка1с8.СубконтоДт.Получить(ТекущаяСтрока.ВидСубконто)

На

Проводка1с8.СубконтоДт.[ТекущаяСтрока.ВидСубконто]
2 eshtrey
 
21.10.15
10:42
(1)такой вариант выдает ошибку в конфигураторе
Сообщить("Субконто Дт"+ТекущаяСтрока.НомерСтроки +" - "+Проводка1с8.СубконтоДт<<?>>[ТекущаяСтрока.ВидСубконто]);
{D:\Obrabotki\Соединение77_82.ert(49)}: Ожидается символ ')'

я так тоже пробовал
3 eshtrey
 
21.10.15
14:54
никто не вытягивал субконто из 8ки?
4 mc lammer
 
21.10.15
14:59
ТекущаяСтрока = ТаблицаСубконтоДт.Получить(К);
попробуй замени на

ТекущаяСтрока = ТаблицаСубконтоДт.Получить(К-1);
5 eshtrey
 
21.10.15
15:06
Поле агрегатного объекта не обнаружено (СубконтоДт)
6 HawkEye
 
21.10.15
15:53
(3) я так делал

ДокБП.счетЗатрат = База.ПланыСчетов.Хозрасчетный.НайтиПоКоду(СчетЗатрат);
        ДокБП.ПодразделениеЗатрат = глмВернутьПоКоду8(База, База.Справочники.ПодразделенияОрганизаций, Подразделение.КодВБух8, Подразделение.Наименование);
        
колсубконто = ДокБП.счетЗатрат.ВидыСубконто.Количество();
для сч = 1 по колсубконто Цикл      
   если сч = 1 Тогда
    ДокБП.Субконто1 = ДокБП.счетЗатрат.ВидыСубконто.Получить(сч - 1).ВидСубконто.ТипЗначения.привестиЗначение(ДокБП.Субконто1);
   ИначеЕсли сч = 2 Тогда
        ДокБП.Субконто2 = ДокБП.счетЗатрат.ВидыСубконто.Получить(сч - 1).ВидСубконто.ТипЗначения.привестиЗначение(ДокБП.Субконто2);
   Иначе
    ДокБП.Субконто3 = ДокБП.счетЗатрат.ВидыСубконто.Получить(сч - 1).ВидСубконто.ТипЗначения.привестиЗначение(ДокБП.Субконто3);
   КонецЕсли;
КонецЦикла;
7 HawkEye
 
21.10.15
15:54
да... ну и вначале

ВидДока = База.Документы.ТребованиеНакладная;
        СоздалиНовый = 0;
        Если СокрЛП(номерБух8) <> "" Тогда
            //есть номер бух
            док = ВидДока.НайтиПоНомеру(номерБух8,ДатаДок);
            Если док.пустая() = -1 Тогда
                создалиновый = 1;  
                ДокБП = ВидДока.СоздатьДокумент();
                ДокБП.Номер = номерБух8;  
            Иначе
                ДокБП = Док.ПолучитьОбъект();  
            КонецЕсли;
        Иначе
            создалиновый = 1;  
            ДокБП = ВидДока.СоздатьДокумент();
        КонецЕсли;////СОЗДАЕМНОВЫЙ
8 eshtrey
 
21.10.15
16:28
так мне надо получить значение субконто из проводки(движения)
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс