Имя: Пароль:
1C
1С v8
Добавить элемент справочника в выгрузку.
0 voha2006
 
02.01.16
17:12
С новым годом!
Ребят, подскажите:
Добавил новый элемент "Производитель" в справочники (УТ 10.3)и в реквизиты номенклатуры. Вывел в карточке товара окно с выбором. Все работает, заполняется. Нужно, что бы этот элемент выгружался на сайт, т.е. попадал в import.xml. Все уже перековырял, не могу его добавить в выгрузку. Будьте добры, направите меня в нужное русло.
1 PR третий
 
02.01.16
17:38
(0) Ты знаешь, твой пост звучит примерно так: "Купил нож для разрезания пирога. Положил его в ящик куда полагается. Все нормально, ящик закрывается, нож достается. Нужно, что бы приготовился торт, т. е. чтобы было что резать ножом...".
2 voha2006
 
02.01.16
17:50
Вот спасибо, друг ))) Теперь все ясно!
3 Fl0Mаsтер
 
02.01.16
18:00
(2) обращайся, друг
Миста научит и обучит!
4 Kvant1C
 
02.01.16
18:04
(0) Рискну предположить, что это поле нужно добавить в программу выгрузки.
5 mehfk
 
02.01.16
19:00
(0) Если имеется в виду стадартная выгрузка в формате CommerceML, то надо было делать свойство.
6 voha2006
 
02.01.16
19:14
(5)
Вот тут, через свойство проблематично будет реализовать:


$brand_id = 0;
                if(isset($xml_product->Изготовитель->Ид))
                {
                    if(empty($this->cache["brands"][strval($xml_product->Изготовитель->Ид)]))
                    {
                        if(! $brand_id = DB::query_result("SELECT id FROM {shop_brand} WHERE import_id='%s'", $xml_product->Изготовитель->Ид))
                        {
                            $brand_id = DB::query("INSERT INTO {shop_brand} ([name], site_id, timeedit, import_id, [act]) VALUES ('%s', %d, %d, '%s', '%d')", $xml_product->Изготовитель->Наименование, $site_id, time(), $xml_product->Изготовитель->Ид, ($this->diafan->configmodules("1c_act", "shop") ? 1 : 0));
                            //ЧПУ
                            if(ROUTE_AUTO_MODULE)
                            {
                                $this->diafan->_route->save('', strval($xml_product->Изготовитель->Наименование), $brand_id, 'shop', 'brand', $site_id);
                            }
                            if($this->diafan->configmodules("1c_act", "shop") && in_array("map", $this->diafan->installed_modules))
                            {
                                $shop_row = array(
                                    "module_name"  => 'shop',
                                    "id"           => $brand_id,
                                    "site_id"      => $site_id,
                                    "element_type" => 'brand',
                                );
                                $this->diafan->_map->index_element($shop_row);
                            }
                        }
                        $this->cache["brands"][strval($xml_product->Изготовитель->Ид)] = $brand_id;
                    }
                    $brand_id = $this->cache["brands"][strval($xml_product->Изготовитель->Ид)];
                }
7 mehfk
 
02.01.16
22:10
(6) Модуль обмена Битрикс установлен?
8 voha2006
 
02.01.16
22:13
(7) Стандартный.
Работаю с Diafan
9 mehfk
 
02.01.16
22:15
Просто, если взять модуль обмена битрикс, то там можно в пользовательском режиме добавлять в выгрузку нужные реквизиты.
А так - придется пилить. Сечас гляну, скажу в какую ф-цию смотреть.
10 mehfk
 
02.01.16
22:20
Обработка "ОбменССайтом", модуль.
ф-ция ЗаполнитьСписокЗначенийРеквизитовТовара

где-то здесь

    ДобавитьЗначениеРеквизитаВСписок(СписокЗначенийCML, "ВидНоменклатуры", НоменклатураСсылка.ВидНоменклатуры);
    ДобавитьЗначениеРеквизитаВСписок(СписокЗначенийCML, "ТипНоменклатуры", НоменклатураСсылка.ВидНоменклатуры.ТипНоменклатуры);
    ДобавитьЗначениеРеквизитаВСписок(СписокЗначенийCML, "Полное наименование", НоменклатураСсылка.НаименованиеПолное);
    
    Если ЗначениеЗаполнено(НоменклатураСсылка.ЕдиницаХраненияОстатков) Тогда
        ДобавитьЗначениеРеквизитаВСписок(СписокЗначенийCML, "Вес", мКоэффициентПересчетаВесаТоваровВГраммыДляОбменаССайтом * НоменклатураСсылка.ЕдиницаХраненияОстатков.Вес);
    КонецЕсли;
11 voha2006
 
02.01.16
22:21
(10) Спасибо )))
12 voha2006
 
03.01.16
12:22
(10) Хо хо, все получилось ))) Спасибо )))
PR третий, посмотри в кулинарной книге как торты готовят )))
13 voha2006
 
03.01.16
14:26
Вот так сделал:

Если ЗначениеЗаполнено(НоменклатураСсылка.Изготовитель) Тогда
    ДобавитьНачалоЭлементаCML(СписокЗначенийCML, "Изготовитель");
    Ид = СформироватьУникальныйИдентификаторОбъекта(НоменклатураСсылка.Изготовитель);
    ДобавитьУзелCML(СписокЗначенийCML, "Ид", Ид);
    ДобавитьУзелCML(СписокЗначенийCML, "Наименование", НоменклатураСсылка.Изготовитель);
        ДобавитьКонецЭлементаCML(СписокЗначенийCML);

Работает, УРА!
Программист всегда исправляет последнюю ошибку.