Всем приветы!
Делаю отчёт, и пытаюсь при помощи ОЛЕ в него добавить данные из другой базы. Обе базы самописные но на основе ЗиКа.
Я хочу взять данные по Начислениям ЗП и вот как это выглядит:
БазаОле=СоздатьОбъект("V77S.Application");
...
ЖурналЗП = БазаОле.CreateObject("ЖурналРасчетов.Зарплата");
СпрСот = БазаОле.CreateObject("Справочник.Сотрудники");
...
Если СпрСот.НайтиПоКоду(СокрЛП(Сред(ЗначениеГр2.КОД,3))) = 1 Тогда
Сотр = СпрСот.ТекущийЭлемент();
Сообщить(Сотр.Наименование);
ЖурналЗП.ВыбратьЗаписиПоОбъекту(Сотр,НачДата,КонДата);
Пока ЖурналЗП.ПолучитьЗапись() = 1 Цикл
Если ЖурналЗП.ВидРасч.ВходитВГруппу(ГруппаРасчетов.ВсеНачисления)=1 Тогда
ВсегоНачислено = ВсегоНачислено + ЖурналЗП.Результат;
КонецЕсли;
Сообщить(ЖурналЗП.Результат);
КонецЦикла;
КонецЕсли;
ЗПФ1 = ВсегоНачислено;
ГруппаРасчетов.ВсеНачисления
судя по всему Оле не видит что там написано, либо не может с этим работатьЖурналЗП.ВыбратьЗаписиПоОбъекту(Сотр,НачДата,КонДата);
Пока ЖурналЗП.ПолучитьЗапись() = 1 Цикл
Сообщить(ЖурналЗП.Результат);
КонецЦикла;
Здравствуйте. Я с журналами расчетов никогда дела не имел, но судя по всему у Вас не определена (не найдена или не спозиционирована) "ГруппаРасчетов.ВсеНачисления". Это как если бы Вы перебирали элементы какого-нибудь справочника базы ОЛЕ и фильтровали по группе справочника, а в коде эта группа не спозиционирована.
Проверьте типы всех переменных. Возможно там где-то COMОбъект, вместо объекта 1С стоит.
Смотрите: ЖурналЗП - это у вас ОЛЕ объект, тоесть объект другой базы, а в дальше вы проверяете вхождение в группу ГруппаРасчетов.ВсеНачисления, а это уже группа из базы из которой подключаетесь.
Попробуйте так
Если ЖурналЗП.ВидРасч.ВходитВГруппу(БазаОле.ГруппаРасчетов.ВсеНачисления)=1 Тогда
грВсеНач = БазаОле.ГруппаРасчетов.ВсеНачисления;
сли ЖурналЗП.ВидРасч.ВходитВГруппу(грВсеНач)=1 Тогда
igmig65 @ Вчера, 13:13 ,
фухх..
намаялся, конечно, и решение очень странное, но тем не менее рабтает 100%
ЖурналЗП.ВыбратьЗаписиПоОбъекту(Сотр,НачДата,КонДата);
Пока ЖурналЗП.ПолучитьЗапись() = 1 Цикл
для й=1 по БазаОле.Метаданные.ВидРасчета(ЖурналЗП.ВидРасч.Код).ГруппаРасчетов.Количество() цикл
Если БазаОле.Метаданные.ВидРасчета(ЖурналЗП.ВидРасч.Код).ГруппаРасчетов.Получить(й).Идентификатор="ВсеНачисления" тогда
ВсегоНачислено = ВсегоНачислено + ЖурналЗП.Результат;
Сообщить("" + ЖурналЗП.Результат + " " + ЖурналЗП.ВидРасч.Код);
//прервать;
КонецЕсли;
КонецЦикла;
КонецЦикла;
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua