8.х РОЗ Вопрос про обмен новой розницы 2.1.4 с сайтом.

Тема в разделе ""1С:Розница"", создана пользователем Alex123, 13 июн 2015.

  1. TerANik
    Offline

    TerANik Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    997
    Симпатии:
    70
    Баллы:
    54
    Второй момент это настройка сайта, стоит ли там CommercML.
    --- Объединение сообщений, 15 июн 2015 ---
    Ну я бы посоветовал обратиться к специалистам.. ибо на каждый шаг писать сообщение, это будем пол года разбираться.
  2. TopicStarter Overlay
    Alex123
    Offline

    Alex123 Опытный в 1С

    Регистрация:
    20 июл 2012
    Сообщения:
    208
    Симпатии:
    0
    Баллы:
    26
    глобальный поиск показал вот что

    Вложения:

    • туц.JPG
      туц.JPG
      Размер файла:
      284 КБ
      Просмотров:
      8
  3. TerANik
    Offline

    TerANik Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    997
    Симпатии:
    70
    Баллы:
    54
    У меня нет розницы под рукой.. опять же это надо работать в тесной связке с теми друзьями что внедряли вам сайт. Я не вижу полной картины...
  4. TopicStarter Overlay
    Alex123
    Offline

    Alex123 Опытный в 1С

    Регистрация:
    20 июл 2012
    Сообщения:
    208
    Симпатии:
    0
    Баллы:
    26
    Обращался я к ним поповоду эквайринга, они до сих пор ждут ответа из банка...хотя мне из банка ответили на следующий день и с помощью админов этого форума удалось сделать эквайринг (alexburn, спасибо!)
    --- Объединение сообщений, 15 июн 2015 ---
    Его никто не внедрял, сайт работает из коробки...я просто прописал адрес сайта, логин и пароль
    Последнее редактирование: 15 июн 2015
  5. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Это случаем не битрикс :) ?
  6. TopicStarter Overlay
    Alex123
    Offline

    Alex123 Опытный в 1С

    Регистрация:
    20 июл 2012
    Сообщения:
    208
    Симпатии:
    0
    Баллы:
    26
  7. TerANik
    Offline

    TerANik Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    997
    Симпатии:
    70
    Баллы:
    54
  8. TopicStarter Overlay
    Alex123
    Offline

    Alex123 Опытный в 1С

    Регистрация:
    20 июл 2012
    Сообщения:
    208
    Симпатии:
    0
    Баллы:
    26
    ну вот у них
    [​IMG]
    --- Объединение сообщений, 15 июн 2015 ---
    я такое видел в УТ, а в рознице настроек у заказов меньше
    --- Объединение сообщений, 15 июн 2015 ---
    У меня тогда такой вопрос, у самой последней розницы, такая же обработка как вот на скрине?
    --- Объединение сообщений, 15 июн 2015 ---
    И вот, что меня поражает или я чего-то не понимаю, в этой обработке нет возможности выгрузки части товаров...
    обязательно все. Я думаю надо сделать новый параметр у номенклатуры "обмен сайтом" да-нет или использовать другую характеристику для этого.
    Последнее редактирование: 15 июн 2015
  9. TopicStarter Overlay
    Alex123
    Offline

    Alex123 Опытный в 1С

    Регистрация:
    20 июл 2012
    Сообщения:
    208
    Симпатии:
    0
    Баллы:
    26
    Открыл я журнал регистраций - там красный кружочек, похоже наш случай)
    и вот комментарий
  10. TopicStarter Overlay
    Alex123
    Offline

    Alex123 Опытный в 1С

    Регистрация:
    20 июл 2012
    Сообщения:
    208
    Симпатии:
    0
    Баллы:
    26
    Отследил окаянную процедуру ...
    Код:
    // Создает и заполняет заказы покупателей.
    //Если на заказ покупателя есть ссылки в документах отгрузки или оплаты, обновляются только свойства заказа.
    //   
    //Параметры
    //    ДокументыXDTO - массив объектов XDTO
    //    РанееЗагруженныеЗаказы - таблица значений - данные по ранее загруженным заказам
    //    СтруктураСтатистики - структура статистики
    //    Параметры - структура параметров
    //    ОписаниеОшибки - строка - содержит описание ошибок
    //
    //Возвращаемое значение
    //    Булево - истина, если при загрузке заказов не возникло ошибок или обновлены свойства уже загруженного заказа.
    //
    Функция СоздатьОбновитьЗаказы(ДокументыXDTO, РанееЗагруженныеЗаказы, Параметры, ОписаниеОшибки)
       
        ТаблицаЗаказов = Новый ТаблицаЗначений;
        ТаблицаЗаказов.Колонки.Добавить("Заказ");
        ТаблицаЗаказов.Колонки.Добавить("НомерЗаказа");
        ТаблицаЗаказов.Колонки.Добавить("ДатаЗаказа");
       
        СтруктураСтатистики = Параметры.СтруктураСтатистики;
       
        Для Каждого ДокументXDTO Из ДокументыXDTO Цикл
           
            Если НЕ ОбъектXDTOСодержитСвойство(ДокументXDTO, "ХозОперация")
                ИЛИ НЕ НРег(ДокументXDTO.ХозОперация) = "заказ товара" Тогда
               
                ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
                        НСтр("ru = 'Ошибка в значении узла <Документ>.<ХозОперация> документа XML (%1)'"),
                        ДокументXDTO.ХозОперация);
                ДобавитьОписаниеОшибки(ОписаниеОшибки, ТекстОшибки);
               
                Возврат Ложь;
               
            КонецЕсли;
           
            Если НЕ СвойствоXDTOЗаполнено(ДокументXDTO.Валюта) Тогда
               
                ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
                        НСтр("ru = 'Ошибка в значении узла <Документ>.<Валюта> документа XML (%1)'"),
                        ДокументXDTO.Валюта);
                       
                ДобавитьОписаниеОшибки(ОписаниеОшибки, ТекстОшибки);
                   
                Возврат Ложь;
               
            КонецЕсли;
           
            // Получаем свойства заказа.
           
            СвойстваЗаказа = Новый Соответствие;
           
            Если ОбъектXDTOСодержитСвойство(ДокументXDTO, "ЗначенияРеквизитов")
                И ДокументXDTO.ЗначенияРеквизитов <> Неопределено
                И ОбъектXDTOСодержитСвойство(ДокументXDTO.ЗначенияРеквизитов, "ЗначениеРеквизита") Тогда
               
                МассивЗначенийРеквизитовXDTO = ПолучитьМассивОбъектовСпискаXDTO(ДокументXDTO.ЗначенияРеквизитов.ЗначениеРеквизита);
               
                Для каждого ЗначениеРеквизитаXDTO Из МассивЗначенийРеквизитовXDTO Цикл
                   
                    Реквизит = ЗначениеРеквизитаXDTO.Наименование;
                    Значение = ЗначениеРеквизитаXDTO.Значение;
                   
                    Если ТипЗнч(Значение) = Тип("Строка") Тогда
                        СвойстваЗаказа.Вставить(Реквизит, Значение);
                    ИначеЕсли ТипЗнч(Значение) = Тип("СписокXDTO")
                        И Значение.Количество() > 0 Тогда
                        СвойстваЗаказа.Вставить(Реквизит, Значение[0]);
                    КонецЕсли;
                   
                КонецЦикла;
               
            КонецЕсли;
    
           
            СтруктураСтатистики.ОбработаноНаЗагрузке = СтруктураСтатистики.ОбработаноНаЗагрузке + 1;
           
            ЭтоНовыйДокумент = Ложь;
            ЕстьСсылкиНаДокументыОплатыОтгрузки = Ложь;
            ЗаказЗакрытОтменен = Ложь;
           
            // Поиск должен осуществляться по номеру и дате
            НайденнаяСтрока = РанееЗагруженныеЗаказы.Найти(ДокументXDTO.Номер, "НомерЗаказаНаСайте");
            Если НайденнаяСтрока <> Неопределено Тогда
               
                ЗаказЗакрытОтменен = НайденнаяСтрока.НеОбновлятьЗаказ;
               
                Если ЗаказЗакрытОтменен Тогда
                   
                    СтруктураСтатистики.Пропущено.Добавить(НайденнаяСтрока.ЗаказПокупателя);
                    ТекстОшибки = Строка(НайденнаяСтрока.ЗаказПокупателя) + НСтр("ru = ' пропущен по причине:'") + Символы.ПС
                        + НСтр("ru = 'Статус заказа - ""Закрыт"".'");
                    ДобавитьОписаниеОшибки(ОписаниеОшибки, ТекстОшибки);
                   
                    Продолжить;
                   
                КонецЕсли;
               
                ДокументОбъект = НайденнаяСтрока.ЗаказПокупателя.ПолучитьОбъект();
               
            Иначе
               
               
                ДокументОбъект = Неопределено;
               
                ОбменССайтомПереопределяемый.СоздатьНовыйДокументЗаказ(ДокументОбъект);
                ЭтоНовыйДокумент = Истина;
           
            КонецЕсли;
           
            Если ДокументОбъект = Неопределено Тогда
                Возврат Ложь;
            КонецЕсли;
           
           
            Если ЗаказЗакрытОтменен Тогда
               
                // Если у заказа есть ссылки на документы оплаты или отгрузки - обновляем только свойства.
               
                СтруктураСтатистики.Пропущено.Добавить(ДокументОбъект.Ссылка);
               
                Сообщение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
                    НСтр("ru = '%1 пропущен, т.к. существуют документы, введенные на основании заказа.'"),
                    ДокументОбъект.Ссылка);
               
                ДобавитьОписаниеОшибки(ОписаниеОшибки, Сообщение);
               
                ОбновленыСвойстваЗаказа = Истина;
                ОбменССайтомПереопределяемый.ОбновитьСоздатьДополнительныеСведенияЗаказа(ОбновленыСвойстваЗаказа,
                                                                                        ДокументОбъект.Ссылка,
                                                                                        СвойстваЗаказа, ОписаниеОшибки);
                Если ОбновленыСвойстваЗаказа Тогда
                    Сообщение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
                        НСтр("ru = 'Свойства заказа %1 обновлены.'"),
                        ДокументОбъект.Ссылка);
                   
                    ДобавитьОписаниеОшибки(ОписаниеОшибки, Сообщение);
                   
                КонецЕсли;
               
            Иначе
               
                Успешно = Ложь;
                СтруктураРеквизитыЗаказа = Неопределено;
                ИнициализироватьСтруктуруРеквизитов(СтруктураРеквизитыЗаказа);
               
                ИзвлечьСвойстваЗаказаИзДанныхДокументаXDTO(СтруктураРеквизитыЗаказа, ДокументXDTO,
                                                    СвойстваЗаказа, Параметры, ОписаниеОшибки);
               
                // заполняем документ заказ
                ОбменССайтомПереопределяемый.ЗаполнитьЗаказ(ДокументОбъект, СтруктураРеквизитыЗаказа,
                                                            СвойстваЗаказа, Параметры.ПрикладныеПараметры,
                                                            ОписаниеОшибки, Успешно);
               
                Если НЕ Успешно Тогда
                    Возврат Ложь;
                КонецЕсли;
               
                Попытка
                   
                    Если Не ЗначениеЗаполнено(ДокументОбъект.Номер)
                        И СвойствоXDTOЗаполнено(ДокументXDTO.Номер) Тогда
                       
                        ДокументОбъект.Номер = НомерЗаказаССайта(ДокументXDTO.Номер, ДокументОбъект.Организация);
                    КонецЕсли;
                   
                    ЗаписатьДокумент(ДокументОбъект);
                   
                    Если ЭтоНовыйДокумент Тогда
                        СтруктураСтатистики.Создано.Добавить(ДокументОбъект.Ссылка);
                    Иначе
                        СтруктураСтатистики.Обновлено.Добавить(ДокументОбъект.Ссылка);
                    КонецЕсли;
                   
                Исключение
                   
                    СтруктураСтатистики.Пропущено.Добавить(ДокументОбъект);
                   
                    ДобавитьОписаниеОшибки(ОписаниеОшибки,
                        ОписаниеИсключительнойОшибки(НСтр("ru = 'Не удалось записать заказ №'") + ДокументОбъект.Номер));
                   
                    Возврат Ложь;
                   
                КонецПопытки;
               
                ОбновленыСвойстваЗаказа = Истина;
                ОбменССайтомПереопределяемый.ОбновитьСоздатьДополнительныеСведенияЗаказа(ОбновленыСвойстваЗаказа,
                                                                                         ДокументОбъект.Ссылка,
                                                                                         СвойстваЗаказа, ОписаниеОшибки);
                Если ОбновленыСвойстваЗаказа Тогда
                    Сообщение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
                        НСтр("ru = 'Свойства заказа %1 обновлены.'"),
                        ДокументОбъект.Ссылка);
                   
                    ДобавитьОписаниеОшибки(ОписаниеОшибки, Сообщение);
                   
                КонецЕсли;
    
                СтруктураСтатистики.Загружено.Добавить(ДокументОбъект.Ссылка);
               
            КонецЕсли;
           
            НоваяСтрока                        = ТаблицаЗаказов.Добавить();
            НоваяСтрока.Заказ                = ДокументОбъект.Ссылка;
            НоваяСтрока.НомерЗаказа            = СтруктураРеквизитыЗаказа.Номер;
            НоваяСтрока.ДатаЗаказа            = СтруктураРеквизитыЗаказа.Дата;
           
        КонецЦикла;
       
        ОбменССайтомПереопределяемый.ЗаписатьДатуНомерЗаказовССайта(ТаблицаЗаказов, Параметры.ПрикладныеПараметры);
       
        Возврат Истина;
       
    КонецФункции
    
    Процедура ИзвлечьСвойстваЗаказаИзДанныхДокументаXDTO(СтруктураРеквизитыЗаказа, ДокументXDTO,
                                                         СвойстваЗаказа, Параметры, ОписаниеОшибки)
       
        ВремяСтрока = "";
        Если ОбъектXDTOСодержитСвойство(ДокументXDTO, "Время") Тогда
            ВремяСтрока = ДокументXDTO.Время;
        КонецЕсли;
        СтруктураРеквизитыЗаказа.Ид                 = СокрЛП(ДокументXDTO.Ид);
        СтруктураРеквизитыЗаказа.Дата             = ДатаВремяИзСтроки(ДокументXDTO.Дата, ВремяСтрока);
        СтруктураРеквизитыЗаказа.ДатаОтгрузки     = ДатаОтгрузкиИзСвойствЗаказа(СвойстваЗаказа);
        СтруктураРеквизитыЗаказа.Номер             = СокрЛП(ДокументXDTO.Номер);
       
        СтруктураРеквизитыЗаказа.ВалютаДокументаКод = ДокументXDTO.Валюта;
       
        Контрагент = Неопределено;
       
        ДанныеКонтрагента = Новый Структура;
        ЗаполнитьДанныеКонтрагента(ДанныеКонтрагента, ДокументXDTO);
       
        СтруктураРеквизитыЗаказа.Вставить("Контрагент", Неопределено);
        ОбменССайтомПереопределяемый.ИдентифицироватьКонтрагента(СтруктураРеквизитыЗаказа, ДанныеКонтрагента,
                                                                 Параметры.ПрикладныеПараметры, ОписаниеОшибки);
    
        Если СтруктураРеквизитыЗаказа.Контрагент = Неопределено Тогда
            Успешно = Ложь;
            Возврат;
        КонецЕсли;
           
        Если НЕ ИдентифицироватьНоменклатуру(СтруктураРеквизитыЗаказа, ДокументXDTO, Параметры, ОписаниеОшибки) Тогда
            Успешно = Ложь;
            Возврат;
        КонецЕсли;
       
        Склад = Неопределено;
        Если НЕ ДокументXDTO.Свойства().Получить("Склады") = Неопределено Тогда
            ДанныеСклада = Новый Структура;
            ИзвлечьРеквизитыСклада(ДокументXDTO.Склады.Склад, ДанныеСклада);
               
            ИдентифицироватьСклад(ДанныеСклада, Склад, ОписаниеОшибки);
        КонецЕсли;
        СтруктураРеквизитыЗаказа.Вставить("ТочкаСамовывоза", Склад);
    
        Комментарий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
                НСтр("ru = '№ %1 %2'"),
                ДокументXDTO.Номер,
                ?(Параметры.ВыгружатьНаСайт, Параметры.НастройкиПодключения.Сервер, "(сайт)"));
       
        Если ОбъектXDTOСодержитСвойство(ДокументXDTO, "Комментарий")
            И ТипЗнч(ДокументXDTO.Комментарий) = Тип("Строка") Тогда
           
            СтруктураРеквизитыЗаказа.Комментарий = Комментарий + " | " + ДокументXDTO.Комментарий;
        КонецЕсли;
       
        Успешно = Истина;
    
       
    КонецПроцедуры
    

    ЗаписатьДокумент(ДокументОбъект); на этой строке падает
    Вот сама структура которая из XML стандарта ComerceML преобразована в структуру, которую 1с должна была проглотить
    upload_2015-6-17_7-20-10.png
  11. TerANik
    Offline

    TerANik Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    997
    Симпатии:
    70
    Баллы:
    54
    Поместите вот это ЗаписатьДокумент(ДокументОбъект); в попытку исключение и в исключение выведите Описание ошибки.
  12. TopicStarter Overlay
    Alex123
    Offline

    Alex123 Опытный в 1С

    Регистрация:
    20 июл 2012
    Сообщения:
    208
    Симпатии:
    0
    Баллы:
    26
    Код:
    Попытка
                  
                    Если Не ЗначениеЗаполнено(ДокументОбъект.Номер)
                        И СвойствоXDTOЗаполнено(ДокументXDTO.Номер) Тогда
                      
                        ДокументОбъект.Номер = НомерЗаказаССайта(ДокументXDTO.Номер, ДокументОбъект.Организация);
                    КонецЕсли;
                  
                    ЗаписатьДокумент(ДокументОбъект);
                  
                    Если ЭтоНовыйДокумент Тогда
                        СтруктураСтатистики.Создано.Добавить(ДокументОбъект.Ссылка);
                    Иначе
                        СтруктураСтатистики.Обновлено.Добавить(ДокументОбъект.Ссылка);
                    КонецЕсли;
                  
                Исключение
                 
                    ЗаписатьДокумент(ДокументОбъект);
    
                    СтруктураСтатистики.Пропущено.Добавить(ДокументОбъект);
                  
                    ДобавитьОписаниеОшибки(ОписаниеОшибки,
                        ОписаниеИсключительнойОшибки(НСтр("ru = 'Не удалось записать заказ №'") + ДокументОбъект.Номер));
                  
                    Возврат Ложь;
                  
                КонецПопытки;
    Так или еще что-то?
  13. TerANik
    Offline

    TerANik Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    997
    Симпатии:
    70
    Баллы:
    54
    ЗАписать документ должно быть в попытке а не в исключение. В исключение только добавление ошибки должно бытью
  14. TopicStarter Overlay
    Alex123
    Offline

    Alex123 Опытный в 1С

    Регистрация:
    20 июл 2012
    Сообщения:
    208
    Симпатии:
    0
    Баллы:
    26
    но так и было в оригинале
  15. TerANik
    Offline

    TerANik Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    997
    Симпатии:
    70
    Баллы:
    54
    Ну и что выдает в описании ошибки?
  16. TopicStarter Overlay
    Alex123
    Offline

    Alex123 Опытный в 1С

    Регистрация:
    20 июл 2012
    Сообщения:
    208
    Симпатии:
    0
    Баллы:
    26
    Код:
    ДобавитьОписаниеОшибки(ОписаниеОшибки,
                        ОписаниеИсключительнойОшибки(НСтр("ru = 'Не удалось записать заказ №'") + ДокументОбъект.Номер));
    это же описание ошибки?
  17. TerANik
    Offline

    TerANik Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    997
    Симпатии:
    70
    Баллы:
    54
    да
    --- Объединение сообщений, 17 июн 2015 ---
    Скорее всего пишется в журнал регистрации
    Последнее редактирование: 17 июн 2015
  18. TopicStarter Overlay
    Alex123
    Offline

    Alex123 Опытный в 1С

    Регистрация:
    20 июл 2012
    Сообщения:
    208
    Симпатии:
    0
    Баллы:
    26
    --- Объединение сообщений, 17 июн 2015 ---
    я так понимаю закавырка здесь в структуре документа ЗаказовПокупателей, в рознице и в УТ они разные. В УТ есть реквизит ФИО заказчика, а в рознице заказ обезличенный.
  19. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Попробуйте изменить оповещение:
    Сообщить(ОписаниеОшибки());
  20. TopicStarter Overlay
    Alex123
    Offline

    Alex123 Опытный в 1С

    Регистрация:
    20 июл 2012
    Сообщения:
    208
    Симпатии:
    0
    Баллы:
    26

Поделиться этой страницей