Новости для бухгалтера, бухучет, налогообложение, отчетность, ФСБУ, прослеживаемость и маркировка, 1С:Бухгалтерия

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[Прочее]

Повтор вопроса про ОЛЕ

GamSer
читатель
офлайн
Дата регистрации: 03.02.2006
Сообщений: 7
Пост №1
 
03.02.2006 12:42

"V7=СоздатьОбъект("V77.Application");<br>Команда="/d"+ПутьКДанным; <br>Открыта=V7.Initialize(V7.RMTrade,Команда,"NO_SPLASH_SHOW");<br>Импорт=V7.CreateObject("Документ.ДокСТабличнойЧастью");<br>Импорт.ВыбратьДокументы();<br>Док=СоздатьОбъект("Документ.Итоги")<br>Пока Импорт.ПолучитьДокумент()=1 Цикл<br>//Реквизиты шапки здесь все ОК - реквизиты из ОЛЕ достаются и присваиваются<br>Док.ДатаДок=Импорт.ТекущийДокумент().ДатаДок;<br>Док.Начало=Импорт ТекущийДокумент().Начало;<br>//Теперь табличная часть<br>Док.НоваяСтрока();<br>СуммаДолга=0;<br>Импорт.ТекущийДокумент().ВыбратьСтроки();<br>Для Счетчик=1 по Импорт.ТекущийДокумент().КоличествоСтрок() Цикл<br>//Количество строк считает, зараза!<br>//Так же перебирает строки циклом ПОКА Импорт.ТекущийДокумент().ПолучитьСтроку()=1 Цикл<br>Импорт.ТекущийДокумент().ПолучитьСтрокуПоНомеру(Счетчик);<br>//И строку получает т.е. Импорт.ТекущийДокумент().ПолучитьСтрокуПоНомеру(Счетчик)=1<br>//А вот реквизит табличной части - фига с дрыгой<br>//Функция ТипЗначенияСтр(Импорт.ТекущийДокумент().Сумма) возвращает "Число"<br>//А результат = 0 <br>СуммаДолга=СуммаДолга+Импорт.ТекущийДокумент().Сумма; //Равно нулю и так 40 раз<br>КонецЦикла;<br><br>Как добыть реквизит табличной части из ОЛЕ или это глюк навеки? "

ValeraH
читатель
офлайн
Дата регистрации: 31.03.2004
Сообщений: 264
Пост №2
 
03.02.2006 14:17

"А не пробовал:<br>СуммаДолга=СуммаДолга+Импорт.Сумма;<br>-------------<br>У меня давным-давно вот так отлично работает:<br>Пока КопируемыйДокумент.ПолучитьСтроку()=1 Цикл<br>ПеренесенныйДок.Сумма=КопируемыйДокумент.Сумма;<br>где<br>КопируемыйДокумент=ДокДОНОР.ТекущийДокумент();<br>а<br>ДокДОНОР=ДОНОР.EvalExpr("СоздатьОбъект(""""Документ.РасходнаяКредит"""")");<br>соответственно<br>ДОНОР=СоздатьОбъект("V77.Application");"

FirstGuest
читатель
офлайн
Дата регистрации: 28.10.2005
Сообщений: 130
Пост №3
 
05.02.2006 07:36

"Это не глюк, просто не нужно при переборе строк табличной части использовать функцию ТекущийДокумент(). А проверить можно так:<br>1. Замените Импорт.ТекущийДокумент().ВыбратьСтроки();<br> на Импорт.ВыбратьСтроки();<br>2. Запустите отладчик, остановите выполнение на строке<br>СуммаДолга = СуммаДолга + Импорт.ТекущийДокумент().Сумма;<br>Вычислите выражение Импорт.ТекущийДокумент().Сумма и увидите что оно равно 0<br>Затем выражение Импорт.Сумма и увидите что оно равно значению реквизита Сумма<br><br>И относится это не только к OLE"

Показывать по 10 20 40 сообщений

Читают тему:

Быстрый переход
Для технических специалистов
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • МАРКИРОВКА
  • ЕГАИС
  • Учет, налогообложение, автоматизация