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

1С:Предприятие :: 1С:Предприятие 8 общая

Обмен 1С с сайтом, регистрация изменений при резервировании товара

Обмен 1С с сайтом, регистрация изменений при резервировании товара
Я
   T1m0ha
 
07.02.18 - 12:11
Добрый день!
1С УТ 10.3, настроил обмен с сайтом, сделал сначала полную выгрузку, потом настроил выгрузку только изменений. Всё на первый взгляд прекрасно. Остатки, цены выгружаются, изменения вроде тоже... Но.. Изменения выгружаются только при изменении самой карточки номенклатуры, цены или остатка товара на складе. Резервирование товара не регистрирует изменений и товар на сайт не выгружается.
Помогите пожалуйста побороть эту беду! Понимаю что нужно дописывать модуль обмена, нашел участок кода регистрации изменений. Дописал, но ничего не вышло. Строго не судите, только начинаю:

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

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

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

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

Отладчиком пробовали?
Он сюда заходит?

Там еще подписка на событие есть "Б_ЗарегистрироватьИзмененияПередЗаписьюРегистраСведенийДляОбменаССайтами", нужно этот регистр туда включить.
   Rema Dan
 
2 - 07.02.18 - 12:18
(0) Мало поправить эту процедуру. Теперь нужно добавить этот регистр в подписку на событие ПриЗаписиРегистраНакопленияОбменССайтом, чтобы эта процедура вызывалась.
   T1m0ha
 
3 - 07.02.18 - 12:57
(1) Отладчиком не пробовал, но здесь:
    ИначеЕсли ТипОбъекта = Тип("РегистрНакопленияНаборЗаписей.ТоварыНаСкладах")
          ИЛИ ТипОбъекта = Тип("РегистрСведенийНаборЗаписей.ЦеныНоменклатуры") Тогда          
        МассивУзлов = ПолучитьМассивУзловДляРегистрации(Истина);  
        Для каждого Запись Из Объект Цикл
            
            ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Запись.Номенклатура);
            
        КонецЦикла;

точно бывает, так ка изменения цен выгружаются.
   T1m0ha
 
4 - 07.02.18 - 12:59
(2) процедура изначально вызывалась, я дописал только регистрацию изменений при резервировании товара.
   МимохожийОднако
 
5 - 07.02.18 - 13:00
(3) Отладчиком всё-таки попробуй.
   Повелитель
 
6 - 07.02.18 - 13:23
(3) Там она может и бывает, а вот тут ТоварыВРезервеНаСкладах вряд ли, если подписка не включена.
   T1m0ha
 
7 - 07.02.18 - 13:28
(5), (6) Да, действительно не бывает. При записи документа "Установка цен номенклатуры" - заходит, при записи документа "Резервирование товаров" - нет. А вот где найти подписку на документ "Резервирование товаров", я что-то не пойму, обработчик события ПриЗаписи... документа "Резервирование товаров" должен вызывать процедуру? Простите за глупые вопросы, но почти разобрался ведь, помогите)
   1ctube
 
8 - 07.02.18 - 13:36
(7)  в Конфигураторе в "общие" есть подписки на события. Может она называется как написал сверху чувак (1)
   T1m0ha
 
9 - 07.02.18 - 13:54
(1) (2) (5) (8) Дааааа! Хвала вам и честь, о великие волшебники мисты! Добра и счастья вам и вашим близким!
ОГРОМНЕЙШЕЕ вам человеческое спасибо! Действительно, код верный, нужно было всего лишь добавить в подписки на события.
   DexterMorgan
 
10 - 07.02.18 - 14:14
Что нужно сделать, скажем после 30и, чтобы испытывать такую же радость как в (9) ?
 
 Рекламное место пустует
   DexterMorgan
 
11 - 07.02.18 - 14:20
Я был бы так рад разве что сдав на серт типа такого http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=5001&get_params=p_exam_id:1Z0-866
   T1m0ha
 
12 - 07.02.18 - 14:29
(10) Незнаю, мне 23) Но я просто рад, что люди не безразличны, и не смотря на то, что я задавал по сути тупые вопросы для специалиста, мне ответили и помогли. Вот и радуюсь, что мир не без добрых людей! :)

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует