Имя: Пароль:
1C
1С v8
Проблема обмена РИБ. Помогите.
,
0 Boudybuilder
 
12.11.11
22:40
С главного узла выгружается нормально и на другом конце принимаются изменения ОК.
Но если наоборот , то в главном узле ошибка :

Ошибка при чтении изменений из файла обмена.
Ошибка при вызове метода контекста (ПрочитатьИзменения): Ошибка при выполнении обработчика - 'ПриЗаписи': {ОбщийМодуль.ПроцедурыОбменаССайтом.Модуль(46)}: Ошибка при вызове метода контекста (ЗарегистрироватьИзменения): Недопустимое значение параметра (параметр номер '2')
Чтение данных из файла обмена завершено с ошибками!
1 mikecool
 
12.11.11
22:48
если правильно понял - у тебя при приеме обмена идет регистрация изменений??
2 Boudybuilder
 
12.11.11
22:49
ну да чтото из риб узла пришло и не принимается
3 Живой Ископаемый
 
12.11.11
22:50
2(1) это дозволительно если регистрируются для других узлов, других планов обмена.. вторым параметром как раз кажется и выступает узел или массив. и вот у него там лажа
4 mikecool
 
12.11.11
22:52
(3) давно не брал я в руки шашек ))
значицо в подписьках массив узлов кривой получается
5 Boudybuilder
 
12.11.11
22:59
Где рыть?
6 Boudybuilder
 
12.11.11
22:59
В конфигурации наверно не надо... ?
7 Живой Ископаемый
 
12.11.11
23:02
поставить точку останова и исследовать твой второй параметр... ты что - совсем беспомощный?
8 Boudybuilder
 
12.11.11
23:07
Я с точками останова не умею работать...
Еще не выучил зачем они
9 Живой Ископаемый
 
12.11.11
23:08
тогда зови взрослых..или читай книжку про них.. потому что это бесполезняк на форуме решать
10 Boudybuilder
 
12.11.11
23:18
http://www.v1c.info/index.php/introtoconf1c/9-otladkav1c.html
Эта тема  пойдет почитать?
11 Живой Ископаемый
 
12.11.11
23:30
без понятия, не читал...
хорошо написано тут:
http://www.1c-dn.com/downloads/?SECTION_ID=129
на странице II-855

Chapter 22. Debugging of Application Solutions  .................................................... II-855
22.1. Debugger  ....................................................................................................... II-855
22.1.1. Debugger Use ..................................................................................... II-856
22.1.2. Breakpoint........................................................................................... II-861
22.1.3. Step-by-Step Execution  ...................................................................... II-863
22.1.4. Debugging External Data Processors (Reports)  ................................. II-865
22.1.5. Debug Management  ............................................................................ II-865
22.1.6. Expression Window  ............................................................................ II-866

22.1.7. Immediate Window ............................................................................ II-868
22.1.8. Call Stack  ............................................................................................ II-869
22.1.9. Debugging Protected Modules ........................................................... II-870
22.1.10. Use Options ...................................................................................... II-870
22.2. Performance Meter........................................................................................ II-871
22.2.1. Available Options  ............................................................................... II-871
22.2.2. Measurement Results  .......................................................................... II-872
22.2.3. Sorting Measurement Results  ............................................................. II-875
22.2.4. Selective Summarization of Measurement Results ............................ II-875
22.2.5. Performance Meter in Client-Server Base Operation  ......................... II-875
22.2.6. Saving Results .................................................................................... II-876
22.3. Server Call Delay Imitation  .......................................................................... II-876
22.4. Display of Server Calls  ................................................................................. II-877
12 Живой Ископаемый
 
12.11.11
23:33
про точки останова и пошаговом исполнении - на 861 и 863-й
13 Boudybuilder
 
12.11.11
23:56
Тю... Та ти ж наш!
Ану найди мене в Асі чи в Скайпі... :)
14 Boudybuilder
 
12.11.11
23:58
Я скачати не можу...
15 Живой Ископаемый
 
13.11.11
00:01
не, не торопи меня.. а то я так сейчас разбегусь помогать, что держите меня семеро...
16 Boudybuilder
 
13.11.11
00:02
:)
17 Boudybuilder
 
13.11.11
00:04
Ошибка вроде указывает на эту строку в модуле...

ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Запись.Объект.Владелец);
18 DrShad
 
13.11.11
00:15
(17) ну так ставь точку и смотри че за параметр
19 Boudybuilder
 
13.11.11
00:29
Характеристика номенклатуры
20 DrShad
 
13.11.11
00:43
зови взрослых
21 Boudybuilder
 
13.11.11
01:04
Error calling context method (ПрочитатьИзменения): Error running processor - 'ПриЗаписи': {ОбщийМодуль.ПроцедурыОбменаССайтом.Модуль(46)}: Error calling context method (ЗарегистрироватьИзменения): Invalid parameter value (parameter number '2')


Нашел эту строку в модуле

ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Запись.Объект.Владелец);

Параметр номер 2 это "Запись.Объект.Владелец" ???
22 Живой Ископаемый
 
13.11.11
10:47
2(21) а какие еще варианты?
23 Boudybuilder
 
13.11.11
14:12
Да вариантов - 0!
Я в шоке!
(22)
Может через AMMY поможешь както ?
А?
24 Boudybuilder
 
13.11.11
14:13
Ammyy Admin
25 Boudybuilder
 
13.11.11
14:13
Ато я запарюсь...
26 Terve-R-
 
13.11.11
14:32
Поставь точку на
ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Запись.Объект.Владелец);
27 Живой Ископаемый
 
13.11.11
18:48
2(26) он не знает что потом делать с Запись.Объект.Владелец

2(25) ты такой скромный.. а главное щедрый... просто невозможно отказать.
28 Boudybuilder
 
13.11.11
20:22
Поставил точку.
Запись.Объект.Владелец  записал в ВЫРАЖЕНИЕ в табло 1.

При обмене мне показало , что
ВЫРАЖЕНИЕ Запись.Объект.Владелец  , Значение "НЕ ЗАПОЛНЕНО" , ТИП СправочникСсылка.Номенклатура

Блин , и как мне теперь найти ту номенклатуру , по которой ошибка делается?
29 Elf_80_lvl
 
13.11.11
20:30
(28) Есть старая как сама 1с8 методика. Называется "метод половинного деления". =)
Берешь сообщение, открываешь в блокноте, отрезаешь половину.
Если загружается - значит ошибка в другой половине.
И так далее пока не найдешь запись которая не читается.
30 Boudybuilder
 
13.11.11
22:27
Будем пробовать...
31 Boudybuilder
 
13.11.11
22:38
Просто по точке останова на первом шагу нашло номенклатуру которую я нашел и удалил , она негде не использовалась , так я просто удалил чтоб не париться. И вторая номенклатура бес ссылки. Щас только по ней ошибку выдает.

Тоесть щас Запись.Объект.Владелец имеет тип СправочникСсылка.Номенклатура но не имеет знаения!
На нем то и все останавливается...

Как мне теперь вычислить где эта фигня , не пойму.

Я уже и поставил на тестирование и исправление ИБ , на наличие пустых ссылок , исправило. Но обмен тот же...
32 mikecool
 
13.11.11
22:41
(28) идти в почку и смотреть там
33 Boudybuilder
 
13.11.11
22:44
(32) Че ?
34 Boudybuilder
 
13.11.11
22:51
После "Шагнуть в" в таблице следующее появляется...

{(1,1)}: Variable is not defined (Запись)

А это что?
35 Elf_80_lvl
 
13.11.11
23:01
(34) Открывай файл и смотри там, в отладке ничего не найдешь.
36 mikecool
 
13.11.11
23:17
(33) на рифму нарываешься )
смотреть в узле кто владелец и думать - какого уя его нет в получателе или обмене
37 Живой Ископаемый
 
14.11.11
09:22
2(31) чувак у тебя характеристика пришла, а самого товара нет... может так и надо, а может это парнуха.. мы  может подсказать как обойти ошибку прямо сейчас - например написать вместо

ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Запись.Объект.Владелец);

такое:

Если ЗначениеЗаполнено(Запись.Объект.Владелец) Тогда
ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Запись.Объект.Владелец);
КонецЕсли;
38 Boudybuilder
 
20.11.11
15:03
У меня на другом компе продавец сидит и в свободное время забивает цены номенклатуры из прайсов. Создает новую номенклатуру по необходимости. Наверное чтото тупит с характеристикой.

Ведь снова ошибку выдало.

Остановило снова там же:    
ИначеЕсли ТипДанных = Тип("СправочникСсылка.ХарактеристикиНоменклатуры") Тогда
               ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Запись.Объект.Владелец);
           КонецЕсли;
Параметр 2
Запись.Объект.Владелец

Смотрю:

Выражение - Запись.Объект.Владелец
Значение  - Пустое
Тип       - СправочникСсылка.Номенклатура.

Тоесть наверное характеристика есть , а владельца НОМЕНКЛАТУРА нету... :(

А тут я обрезал файл обмена:
Гдето тут ошибка:

<v8msg:Message xmlns:v8msg="http://v8.1c.ru/messages">
   <v8msg:Header>
       <v8msg:ExchangePlan>Полный</v8msg:ExchangePlan>
       <v8msg:To>ADM</v8msg:To>
       <v8msg:From>VOP</v8msg:From>
       <v8msg:MessageNo>393</v8msg:MessageNo>
       <v8msg:ReceivedNo>335</v8msg:ReceivedNo>
   </v8msg:Header>
   <v8msg:Body>
       <v8de:Changes xmlns:v8="http://v8.1c.ru/data" xmlns:v8de="http://v8.1c.ru/dataexchange/2005/02" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
           <v8de:Signature>5d066455-924c-4fbe-9c9b-73b516a6c94d</v8de:Signature>
           <v8de:Config xmlns:v8md="http://v8.1c.ru/metadata/2005/08">
               <v8de:Version>216.0</v8de:Version>
               <v8de:Digest1>00000000000000000000000000000000</v8de:Digest1>
               <v8de:Digest2 v2="1e73d448d045f6417227139bf31c77d8">1e73d448d045f6417227139bf31c77d8</v8de:Digest2>
           </v8de:Config>
           <v8de:Data>
               <CatalogObject.ЕдиницыИзмерения>
                   <Ref>5ece9702-1359-11e1-9981-485b398d6c8d</Ref>
                   <DeletionMark>false</DeletionMark>
                   <Owner xsi:type="CatalogRef.Номенклатура">5ece9701-1359-11e1-9981-485b398d6c8d</Owner>
                   <Code>VOP000051</Code>
                   <Description>шт</Description>
                   <ЕдиницаПоКлассификатору>01a0b9ea-b097-11dd-8380-001b77e2bba3</ЕдиницаПоКлассификатору>
                   <Вес>0</Вес>
                   <Объем>0</Объем>
                   <Коэффициент>1</Коэффициент>
               </CatalogObject.ЕдиницыИзмерения>
               <InformationRegisterRecordSet.ЗначенияСвойствОбъектов>
                   <Filter>
                       <Объект xsi:type="CatalogRef.ХарактеристикиНоменклатуры">5ece9703-1359-11e1-9981-485b398d6c8d</Объект>
                       <Свойство>799d50c9-e7eb-11df-b7a8-485b398d6c8d</Свойство>
                   </Filter>
                   <Records>
                       <Record>
                           <Объект xsi:type="CatalogRef.ХарактеристикиНоменклатуры">5ece9703-1359-11e1-9981-485b398d6c8d</Объект>
                           <Свойство>799d50c9-e7eb-11df-b7a8-485b398d6c8d</Свойство>
                           <Значение xsi:type="CatalogRef.ЗначенияСвойствОбъектов">799d50ca-e7eb-11df-b7a8-485b398d6c8d</Значение>
                       </Record>
                   </Records>
               </InformationRegisterRecordSet.ЗначенияСвойствОбъектов>
               <InformationRegisterRecordSet.ЗначенияСвойствОбъектов>
                   <Filter>
                       <Объект xsi:type="CatalogRef.ХарактеристикиНоменклатуры">5ece9704-1359-11e1-9981-485b398d6c8d</Объект>
                       <Свойство>799d50c9-e7eb-11df-b7a8-485b398d6c8d</Свойство>
                   </Filter>
                   <Records>
                       <Record>
                           <Объект xsi:type="CatalogRef.ХарактеристикиНоменклатуры">5ece9704-1359-11e1-9981-485b398d6c8d</Объект>
                           <Свойство>799d50c9-e7eb-11df-b7a8-485b398d6c8d</Свойство>
                           <Значение xsi:type="CatalogRef.ЗначенияСвойствОбъектов">70a0af10-f60e-11df-8ac9-485b398d6c8d</Значение>
                       </Record>
                   </Records>
               </InformationRegisterRecordSet.ЗначенияСвойствОбъектов>
               <InformationRegisterRecordSet.ЗначенияСвойствОбъектов>
                   <Filter>
                       <Объект xsi:type="CatalogRef.ХарактеристикиНоменклатуры">5ece9705-1359-11e1-9981-485b398d6c8d</Объект>
                       <Свойство>799d50c9-e7eb-11df-b7a8-485b398d6c8d</Свойство>
                   </Filter>
                   <Records>
                       <Record>
                           <Объект xsi:type="CatalogRef.ХарактеристикиНоменклатуры">5ece9705-1359-11e1-9981-485b398d6c8d</Объект>
                           <Свойство>799d50c9-e7eb-11df-b7a8-485b398d6c8d</Свойство>
                           <Значение xsi:type="CatalogRef.ЗначенияСвойствОбъектов">799d50d5-e7eb-11df-b7a8-485b398d6c8d</Значение>
                       </Record>
                   </Records>
               </InformationRegisterRecordSet.ЗначенияСвойствОбъектов>
               
           </v8de:Data>
       </v8de:Changes>
   </v8msg:Body>
</v8msg:Message>
39 Boudybuilder
 
20.11.11
15:04
Как мне теперь по этому найти на какую именно характеристику нету владельца?
Искать надо на машине из которой приходит обмен?
40 Boudybuilder
 
20.11.11
16:11
(37)
Вобщем чтоб не париться , я так и сделал.
Теперь обмен рулит!
Не знаю как это скажется в будущем, ведь у меня типовая Управление Торговлей для Укр. Но пока все работает. :)

Тперь вот так:


Процедура ЗарегистрироватьИзменения(Объект)
   
   Если Не ПараметрыСеанса.НаличиеОбменаССайтом Тогда
       Возврат;
   КонецЕсли;
       
   ТипОбъекта = ТипЗнч(Объект);
   
   // Номенклатура и картинки
   Если ТипОбъекта = Тип("РегистрСведенийНаборЗаписей.ЗначенияСвойствОбъектов") Тогда
       
       МассивУзлов = ПолучитьМассивУзловДляРегистрации(Истина);
       Для каждого Запись Из Объект Цикл
           
           ТипДанных = ТипЗнч(Запись.Объект);
           
           Если ТипДанных = Тип("СправочникСсылка.Номенклатура") Тогда
               ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Запись.Объект);
           ИначеЕсли ТипДанных = Тип("СправочникСсылка.ХарактеристикиНоменклатуры") Тогда
               Если ЗначениеЗаполнено(Запись.Объект.Владелец) Тогда
               ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Запись.Объект.Владелец);
               КонецЕсли;
           КонецЕсли;    
           
       КонецЦикла;
       
   ИначеЕсли ТипОбъекта = Тип("РегистрНакопленияНаборЗаписей.ТоварыНаСкладах")
         ИЛИ ТипОбъекта = Тип("РегистрСведенийНаборЗаписей.ЦеныНоменклатуры") Тогда
         
       МассивУзлов = ПолучитьМассивУзловДляРегистрации(Истина);  
       Для каждого Запись Из Объект Цикл
           
           ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Запись.Номенклатура);
           
       КонецЦикла;
       
   ИначеЕсли ТипОбъекта = Тип("РегистрСведенийНаборЗаписей.ШтрихКоды") Тогда
       
       МассивУзлов = ПолучитьМассивУзловДляРегистрации(Истина);
       Для каждого Запись Из Объект Цикл
           
           Если ТипЗнч(Запись.Владелец) = Тип("СправочникСсылка.Номенклатура") Тогда
               ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Запись.Владелец);
           КонецЕсли;
           
       КонецЦикла;
       
   ИначеЕсли ТипОбъекта = Тип("СправочникОбъект.ХранилищеДополнительнойИнформации") Тогда        
       
       МассивУзлов = ПолучитьМассивУзловДляРегистрации(Истина);
       
       Если ТипЗнч(Объект.Объект) = Тип("СправочникСсылка.Номенклатура")
          И Объект.ВидДанных = Перечисления.ВидыДополнительнойИнформацииОбъектов.Изображение Тогда    
         
          Если ЗначениеЗаполнено(Объект.Объект) Тогда
               ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Объект.Объект);  
          КонецЕсли;
          ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Объект.Ссылка);
           
       КонецЕсли;    
       
   ИначеЕсли ТипОбъекта = Тип("СправочникОбъект.ХарактеристикиНоменклатуры")
         ИЛИ ТипОбъекта = Тип("СправочникОбъект.ЕдиницыИзмерения") Тогда            
         
       Если ТипЗнч(Объект.Владелец) = Тип("СправочникСсылка.Номенклатура") Тогда
         
           МассивУзлов = ПолучитьМассивУзловДляРегистрации(Истина);      
           ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Объект.Владелец);
           
       КонецЕсли;
     
   // Заказы  

   ИначеЕсли ТипОбъекта = Тип("РегистрНакопленияНаборЗаписей.ЗаказыПокупателей") Тогда
       
       МассивУзлов = ПолучитьМассивУзловДляРегистрации(Ложь);
       Для каждого Запись Из Объект Цикл
           
           Если ЗначениеЗаполнено(Запись.ЗаказПокупателя) Тогда
               ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Запись.ЗаказПокупателя);
           КонецЕсли;    
           
       КонецЦикла;

   ИначеЕсли ТипОбъекта = Тип("РегистрНакопленияНаборЗаписей.ВзаиморасчетыСКонтрагентами") Тогда
       
       МассивУзлов = ПолучитьМассивУзловДляРегистрации(Ложь);
       Для каждого Запись Из Объект Цикл
           
           Если ТипЗнч(Запись.Сделка) = Тип("ДокументСсылка.ЗаказПокупателя")
               И ЗначениеЗаполнено(Запись.Сделка) Тогда
               
               ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Запись.Сделка);
               
           КонецЕсли;    
           
       КонецЦикла;
                         
   КонецЕсли;        
       
КонецПроцедуры