8.х ОБМЕН Не выгружаются Характеристики товара на сайт

Тема в разделе "Обмен данными в "1С:Предприятие 8"", создана пользователем Andrey_city, 12 фев 2017.

  1. TopicStarter Overlay
    Andrey_city
    Offline

    Andrey_city

    Регистрация:
    12 фев 2017
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Приветствую Уважаемые форумчане!!!
    Вопрос собственно в следующем: Есть внешняя обработка (Обычные формы) выполняющая обмен остатками с MySQL базой сайта. Номенклатура и цены выгружается на сайт нормально,но в базе 1с (8.3.5.1119) УТ (11.1.7.54) для каждого товара существуют характеристики (Цвет) вот они и не выгружаются...
    Как сделать правильный запрос, чтобы выгружались Наименования Характеристик привязанных к товару и их остаток.
    Запрос выполняется следующим образом:
    Код:
    Функция ХарактеристикиТовара (Товар)      //Отбор по характеристикам товара
          Запрос5 = Новый Запрос;
          Запрос5.Текст =
          "ВЫБРАТЬ
        |   ДополнительныеРеквизиты.Свойство,
        |   ДополнительныеРеквизиты.Значение
        |    ИЗ
        |    Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
        |    ГДЕ
        |    ХарактеристикиНоменклатуры.Ссылка В (&Характеристика)";
      
        Запрос5.УстановитьПараметр("Характеристика", Товар);
        РезультатЗапроса5 = Запрос5.Выполнить();
        ВыборкаДетальныеЗаписи5 = РезультатЗапроса5.Выбрать();
        Пока ВыборкаДетальныеЗаписи5.Следующий() Цикл
            НименованиеХарактеристики = ВыборкаДетальныеЗаписи5.ХарактеристикиНоменклатуры;
            Сообщить (НименованиеХарактеристики);
        КонецЦикла;
    
    КонецФункции
    
    Данная функция объявляется в следующей процедуре:
    Код:
    Процедура ВыгрузитьОпции (Товар)       //Выгружаем Характеристики товара в Опции на сайте
                  
                      Код = Формат(Число(ЗаменитьПрефиксы(Товар.Код)), "ЧГ=0");
                     ИмяОпции = "Цвет";
                    ТипОпции = "radio";
                    Значение = ХарактеристикиТовара(Товар); // Значение Характеристики (Название)
                    Обязательная = "1";
                    Количество = "0";      // Количество (по наличию)
                    УчётНаСкладе = "0";
                    ДопЦена = "0";
                    ДопБаллы = "0";
                    ДопВес = "0";
    
        Стр = oc1c.UploadOption(Код,ИмяОпции,ТипОпции,Значение,Обязательная,Количество,УчётНаСкладе,ДопЦена,ДопБаллы, ДопВес);
        Сообщить(Стр);
    
    КонецПроцедуры
    

    В итоге при обмене с базой Сам товар выгружается, а вместо характеристики добавляется строка с пустым значением Характеристики:
    Помогите пожалуйста разобраться, что делаю не так?
    Последнее редактирование: 13 фев 2017
  2. TopicStarter Overlay
    Andrey_city
    Offline

    Andrey_city

    Регистрация:
    12 фев 2017
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Уважаемые Гуру, подскажите пожалуйста как правильно получить значение (наименование) характеристики товара???
  3. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    15.150
    Симпатии:
    560
    Баллы:
    204
    Запрос не правильный. В справочник характеристик нужно передавать "владельца" этой характеристики.
  4. TopicStarter Overlay
    Andrey_city
    Offline

    Andrey_city

    Регистрация:
    12 фев 2017
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    А можете примерно написать структуру запроса, уже просто голову сломал
  5. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    15.150
    Симпатии:
    560
    Баллы:
    204
    Проще всего выдернуть данные из двух таблиц - справочник Номенклатуры и справочник Характеристики. Связать нужно по номенклатуре левым соединением к характеристикам.
  6. TopicStarter Overlay
    Andrey_city
    Offline

    Andrey_city

    Регистрация:
    12 фев 2017
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Пытался создать запрос через конструктор запросов, получилось вот так через ЛЕВОЕ СОЕДИНЕНИЕ Но в итоге все равно пишет пустую строку...

    Ничего понять не могу уже... Приведите пример запроса пожалуйста, как правильно получить Наименование Характеристики (Она там не одна для каждого товара) в запросе.
    Отблагодарю!!!
    Последнее редактирование: 13 фев 2017
  7. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.891
    Симпатии:
    1.032
    Баллы:
    204
    1.
    Код:
     Пока ВыборкаДетальныеЗаписи5.Следующий() Цикл
            Продолжить;
            НименованиеХарактеристики = ВыборкаДетальныеЗаписи5.ХарактеристикиНоменклатуры;
            Сообщить (НименованиеХарактеристики);
        КонецЦикла;
    
    2. Вы с программированием на сколько хорошо знакомы? А с запросами?
  8. TopicStarter Overlay
    Andrey_city
    Offline

    Andrey_city

    Регистрация:
    12 фев 2017
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    По первому пункту могу сказать,что данный пример я взял из обработки - этой же(там таким образом получали атрибуты(свойства) товара)
    по второму пункту : мало знаком... тем более с запросами,поэтому и прошу помощи
    Изначально написал запрос вот так:
    Код:
    Функция ХарактеристикиТовара (Товар)      //Отбор по характеристикам товара
          Запрос5 = Новый Запрос;
          Запрос5.Текст =
          "ВЫБРАТЬ
        |   ДополнительныеРеквизиты.Свойство,
        |   ДополнительныеРеквизиты.Значение
        |    ИЗ
        |    Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
        |    ГДЕ
        |    ХарактеристикиНоменклатуры.Ссылка В (&Характеристика)";
    
        Запрос5.УстановитьПараметр("Характеристика", Товар);
        РезультатЗапроса5 = Запрос5.Выполнить();
        ВыборкаДетальныеЗаписи5 = РезультатЗапроса5.Выбрать();
        Пока ВыборкаДетальныеЗаписи5.Следующий() Цикл
            НименованиеХарактеристики = ВыборкаДетальныеЗаписи5.ХарактеристикиНоменклатуры;
            Сообщить (НименованиеХарактеристики);
        КонецЦикла;
    
    КонецФункции
    Но он возвращал пустое значение..
  9. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.891
    Симпатии:
    1.032
    Баллы:
    204
    Ничего личного, но исходя из написанного:
    • вы абсолютно не понимаете, что делаете
    • помочь в данном случае = написать полностью рабочий код, т.к. вы пример кода, скорее всего, не сможете адаптировать под свои реалии
    • вам будет быстрее заплатить за готовое решение, но придется написать что-то вроде ТЗ, где будет указано в каком формате должны быть выходные данные
  10. TopicStarter Overlay
    Andrey_city
    Offline

    Andrey_city

    Регистрация:
    12 фев 2017
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    У меня обработка работает нормально, единственное нужно правильно сформировать запрос на получение Наименования характеристик из Номенклатуры (Товара) - этих характеристик (в данном случае Цвет) у каждого товара много и они разные. Выходные данные должны быть в виде строки.
    Вот этот самый запрос я и не могу сформулировать правильно
    --- Объединение сообщений, 13 фев 2017 ---
    Разработчики обработки, дали мне пример процедуры и функции (на примере выгрузки атрибутов),но нужно правильно сформировать запрос.
    В 1с я не силен - а сами разработчики запросили 2000 за час работы, поэтому я пытаюсь сам это все сделать! Но как видно у меня не получается