Имя: Пароль:
1C
1С v8
Помогите понимать ошибку в правиле обмена
,
0 zippygrill
 
12.09.11
11:04
Ошибка такого рода:
Ошибка исполнения обработчика:  ПКО_ПриВыгрузке_Выписка_ПлатежноеПоручениеВходящее
- Значение не представляет агрегатный объект (Установить)

ниже первая найденая строка в событие, где вызывается метод Установить.
ВходящиеДанныеДокумента.Установить("СуммаДокумента",СуммаДокумента);
1 chepsoid
 
12.09.11
11:07
зачем в ПКО ПриВыгрузке эта строчка ?

ВходящиеДанныеДокумента.Установить
("СуммаДокумента",СуммаДокумента);
2 zippygrill
 
12.09.11
11:10
(1) это типовое правило по переносу. на твой вопрос к разраб 1с :)
3 zippygrill
 
12.09.11
11:21
еще
4 chepsoid
 
12.09.11
11:28
может СуммаДокумента какая нить пустая.. или еще что ковыряться надо. так тебе не скажут ответ
5 acsent
 
12.09.11
11:29
ВходящиеДанныеДокумента - должно быть структрура
6 Midzgun
 
12.09.11
11:33
Нужно сначала ВходящиеДанныеДокумента = Новый Структура
7 zippygrill
 
12.09.11
11:34
(4) я понимаю.
(5) вот код чуть высше

ВходящиеДанныеДокумента = "";
Если ТекущаяОперация <> "" Тогда
ВходящиеДанныеДокумента.Установить("СуммаДокумента",СуммаДокумента); здесь ругается!
КонецЕсли;

ВходящиеДанныеДокумента = СоздатьОбъект("СписокЗначений");
8 zippygrill
 
12.09.11
11:36
(6) а у Структуры нету метода Установить(). из Справке.
9 zippygrill
 
12.09.11
11:37
(6) тем более в событие ПриВыгрзке писать код на 8.*
10 acsent
 
12.09.11
11:38
(7) Это ты сам написал?
11 zippygrill
 
12.09.11
11:39
(10) нет. читай в (2)
12 zippygrill
 
12.09.11
11:54
ВходящиеДанныеДокумента = "";
Если ТекущаяОперация <> "" Тогда
ВходящиеДанныеДокумента.Установить("СуммаДокумента",СуммаДокумента); здесь ругается!
КонецЕсли;
//Ну и вот дальше метод Установить() уже для четко определеный СписокЗначений.
ВходящиеДанныеДокумента = СоздатьОбъект("СписокЗначений");
ВходящиеДанныеДокумента.Установить("Комментарий","# Перенесен из Бухгалтерии 7.7 Выписка №"+Источник.НомерДок+" от "+формат(Источник.ДатаДок,"ДДДММГГГГ")+" строки: ");
13 zippygrill
 
12.09.11
12:09
вверх
14 zippygrill
 
12.09.11
12:41
-
15 zippygrill
 
12.09.11
13:02
никто не поможет?
16 Kerk
 
12.09.11
13:10
Поищи по правилам где есть подобный реквизит и посмотри что там написано. Сам сталкивался с довольно нелепыми ошибками в стандартных правилах.
17 Рэйв
 
12.09.11
13:23
(0) обмен 77-8 ?
или 8-8 ?

или еще как?
18 zippygrill
 
12.09.11
13:28
(17) 77-8
19 Рэйв
 
12.09.11
13:34
(18)Вставь в обработчик перед той строкой
Сообщить(ТипЗначенияСтр(ВходящиеДанныеДокумента))

...А вообще то сдается мне, что надо использовать переменную

ВходящиеДанные, а не ВходящиеДанныеДокумента
20 zippygrill
 
12.09.11
13:38
(19) ну вот еще поставил проверку на типзнч сейчас посмотрю что получется.
21 zippygrill
 
12.09.11
14:10
(19) не думаю что они(разработчики 1с) зря завели эту локальную переменную(ВходящиеДанныеДокумента)
22 Рэйв
 
12.09.11
14:12
(21)С чего ты взял что ее завели разработчики 1С?:)
23 nicxxx
 
12.09.11
14:24
(0) посмотри еще раз на код в (7) и подумай, почему у переменной строкового типа отсутствуют какие-либо методы
24 zippygrill
 
12.09.11
14:26
(23) вот вот)))
25 zippygrill
 
12.09.11
14:26
(22) я то точно не писал))
26 zippygrill
 
12.09.11
14:51
(23) ок. ну и у переменной строкового типа нету методов. че дальше.
27 Рэйв
 
12.09.11
14:52
(25)Обработчики событий пишутся создателями правил обмена.  Или их последующими ковырятелями:)
28 Рэйв
 
12.09.11
14:52
(26)Поставь
ВходящиеДанныеДокумента = СоздатьОбъект("СписокЗначений");
перед условием
29 Рэйв
 
12.09.11
14:53
+ но после
ВходящиеДанныеДокумента = "";
30 zippygrill
 
12.09.11
15:00
(29) блин, поставил, всеравно.(20) даже не сообщяет типзнч()
31 Рэйв
 
12.09.11
15:03
(30)То есть как не сообщает?
Колись как и где ставил?
32 zippygrill
 
12.09.11
15:16
(31) да правильно я поставил. вот:

ВходящиеДанныеДокумента = "";
НомераСтрокВыписки = "";
НазначениеПлатежа = "";
ТаблицаСтрок.ВыбратьСтроки();
Пока ТаблицаСтрок.ПолучитьСтроку()=1 Цикл
   Если ПустоеЗначение(ТаблицаСтрок.ВидОперации)=1 Тогда
       Продолжить;
   КонецЕсли;
   Если (ТаблицаСтрок.УникальностьОперации <> ТекущаяОперация) Тогда
       Если ТекущаяОперация <> "" Тогда
           //выгружаем собранный документ
           ВходящиеДанныеДокумента = СоздатьОбъект("СписокЗначений");
                       Сообщить(ТипЗначенияСтр(ВходящиеДанныеДокумента));
           ВходящиеДанныеДокумента.Получить("РасшифровкаПлатежа").Свернуть("ДоговорКонтрагента, КратностьВзаиморасчетов, КурсВзаиморасчетов, СтавкаНДС, СтатьяДвиженияДенежныхСредств, СчетУчетаРасчетовПоАвансам, СчетУчетаРасчетовСКонтрагентом, Сделка","СуммаВзаиморасчетов,СуммаНДС,СуммаПлатежа");
           ВходящиеДанныеДокумента.Установить("СуммаДокумента",СуммаДокумента); //вот первая строка в обработчике ПередВыгрузкой где встречается метод Установить() и сама ошибка.
33 Рэйв
 
12.09.11
15:19
(32)Да в коде то я верю что правильно.  Где ты этот код открывал для редактирования и что после этого делал?
34 zippygrill
 
12.09.11
15:22
В Конвертации :) С модулем обработки выгрузки в 7.7 знаю нюансы.
35 Рэйв
 
12.09.11
15:24
(34)Чудес не бывает. Если ты поставил сообщить, то оно должно сообщить.

Если конечно оно заходит в процедуру.
36 Рэйв
 
12.09.11
15:25
+ попробуй отладчиком встать на проц\едуру и посмотри ТппЗначенияСтр в табло
37 zippygrill
 
12.09.11
15:31
(36) хз. отладить перенос не научился как.
38 Рэйв
 
12.09.11
15:36
(37)То есть как не научился?:)  
в 77 у тебя просто обработка обычная. Открывай отладчик, ищи процедуру,ставь точку останова и смотри. Что тут уметь то?
39 zippygrill
 
12.09.11
15:37
(38) все подключил отладку в 77. сейчас гляну.
40 zippygrill
 
12.09.11
15:54
(38) и что делать если отладчик не заходит в процедуре ПриВыгрузки? )
41 Рэйв
 
12.09.11
16:06
(40)Значит ты не включил выгрузку этого события:)