Алексей Сипаев, то есть мне надо найти скрипт 1c_exchange.php и в нём уже докрутить, верно?
|
Алексей Сипаев, то есть мне надо найти скрипт 1c_exchange.php и в нём уже докрутить, верно?
|
|
|
|
|
|
Алексей Сипаев, Огромное спасибо! Получилось вытащить цену в XML-файл! Просто супер!))
А как можно найти скрипт со стороны 1с.Битрикс, который подхватывает этот XML-файл и парсит? Подозреваю, что его крон запускает каждые 15 минут... |
|
|
|
|
|
Алексей Сипаев,спасибо за ссылки - изучаю!
Судя по коду модуля обмена, выгрузка реально описана вручную и очень давно. В общем, похоже, какая-то кустарщина, да?... Мне просят тюнинг провести, но я в 1с ничего не знаю. Мне бы просто выцепить цену. Как мне ее получить запросом? Где я могу увидеть эти таблицы (или представления), чтобы написать запрос? |
|
|
|
|
|
Алексей Сипаев, а вы правы! В справочнике "Рекламные блоки" есть вкладка "Цена", есть выбор Медиапродукта, в котором есть цена!
Сейчас сделал выгрузку с константой 2500. Код такой:[CODE] //номер блока ЗаписатьXML(ЗаписьXML, РекламныйБлок.НомерКонструкции, "НомерБлока", НазначениеТипаXML.Явное); //район ЗаписатьXML(ЗаписьXML, РекламныйБлок.Район, "Район", НазначениеТипаXML.Явное); //город ЗаписатьXML(ЗаписьXML, РекламныйБлок.Город, "Город", НазначениеТипаXML.Явное); //Освещение ЗаписатьXML(ЗаписьXML, РекламныйБлок.НаличиеПодсветки, "Освещение", НазначениеТипаXML.Явное); //сторона ЗаписатьXML(ЗаписьXML, РекламныйБлок.сторона, "Сторона", НазначениеТипаXML.Явное); //Алкоголь ЗаписатьXML(ЗаписьXML, РекламныйБлок.АлкогольТабак, "Алкоголь", НазначениеТипаXML.Явное); //Табак ЗаписатьXML(ЗаписьXML, РекламныйБлок.Табак, "Табак", НазначениеТипаXML.Явное); //Дата установки ЗаписатьXML(ЗаписьXML, РекламныйБлок.ДатаУстановки, "ДатаУстановки", НазначениеТипаXML.Явное); //Дата удаления ЗаписатьXML(ЗаписьXML, РекламныйБлок.ДатаУдаления, "ДатаУдаления", НазначениеТипаXML.Явное); //Описание ЗаписатьXML(ЗаписьXML, СокрЛП(РекламныйБлок.Описание), "Описание", НазначениеТипаXML.Явное); //Уникальный идентификатор ЗаписатьXML(ЗаписьXML,РекламныйБлок.ссылка.УникальныйИдентификатор(), "ID",НазначениеТипаXML.Явное); //Размеры блоков ЗаписатьXML(ЗаписьXML,РекламныйБлок.Размер.Ссылка, "Размер",НазначениеТипаXML.Явное); //Координаты ЗаписатьXML(ЗаписьXML,РекламныйБлок.ГеографическаяМетка.Координаты, "Координаты",НазначениеТипаXML.Явное); //Цены - SIA 22.04.2018 ЗаписатьXML(ЗаписьXML,2500, "Цена", НазначениеТипаXML.Явное);[/CODE]Про свойства я говорю в терминах ООП. "ДатаУстановки", "ДатаУдаления" - свойства переменной РекламныйБлок, которая соответствует элементу справочника "Рекламные блоки". У данной переменной есть свойство "Медиапродукт", но в нем тоже нет цены - смотрел в отладке.[CODE] ЗаписатьXML(ЗаписьXML,РекламныйБлок.Цена, "Цена", НазначениеТипаXML.Явное);[/CODE]или[CODE] ЗаписатьXML(ЗаписьXML,РекламныйБлок.Медиапродукт.Цена, "Цена", НазначениеТипаXML.Явное);[/CODE] В результате получилось вот такая выгрузка (цена 2500 - тупо забитое число):[CODE]<CatalogObject.РекламныеБлоки> <Ref xmlns="" xsi:type="CatalogRef.РекламныеБлоки">6f94cfe1-1ba9-11e8-bc76-001a4d382000</Ref> <DeletionMark xsi:type="xsd:boolean">false</DeletionMark> <IsFolder xsi:type="xsd:boolean">false</IsFolder> <Parent xmlns="" xsi:type="CatalogRef.РекламныеБлоки">00000000-0000-0000-0000-000000000000</Parent> <Code xsi:type="xsd:string">00002187</Code> <Description xsi:type="xsd:string">Чапаева, 30</Description> <ТипБлока xmlns="" xsi:type="CatalogRef.ТипыРекламныхБлоков">bc469c4f-6e2a-11e4-a640-5404a6b87cef</ТипБлока> <НомерБлока xsi:type="xsd:string">0377</НомерБлока> <Район xmlns="" xsi:type="CatalogRef.Районы">0bb76d66-9a43-11e4-b9c6-001fd05a9a5f</Район> <Город xmlns="" xsi:type="CatalogRef.Города">9b79a739-6e20-11e4-a640-5404a6b87cef</Город> <Освещение xsi:type="xsd:boolean">false</Освещение> <Сторона xmlns="" xsi:type="CatalogRef.ВидыСторон">86e6ced2-2002-49b9-9aef-6dc3f08f92f9</Сторона> <Алкоголь xsi:type="xsd:boolean">false</Алкоголь> <Табак xsi:type="xsd:boolean">false</Табак> <ДатаУстановки xsi:type="xsd:dateTime">2018-02-27T00:00:00</ДатаУстановки> <ДатаУдаления xsi:type="xsd:dateTime">0001-01-01T00:00:00</ДатаУдаления> <Описание xsi:type="xsd:string">Ост. ком. Трамвайный парк</Описание> <ID xsi:type="v8:UUID">6f94cfe1-1ba9-11e8-bc76-001a4d382000</ID> <Размер xmlns="" xsi:type="CatalogRef.РазмерыРекламныхБлоков">bc469c4e-6e2a-11e4-a640-5404a6b87cef</Размер> <Координаты xsi:type="xsd:string">56.814560, 60.614345</Координаты> <Цена xsi:type="xsd:decimal">2500</Цена> </CatalogObject.РекламныеБлоки>[/CODE] |
|
|
|
|
|
Алексей Сипаев, спасибо, что откликнулись! Конфигурация 1С8.3 с установленным "Управлением наружной рекламой". Пользователи заносят свои рекламные конструкции и описывают из через справочник "Рекламные блоки". Среди прочего они заносят туда и цену. У пользователей настроена выгрузка в web (через кнопку "Выполнить обмен с Web..."). Результатом такой выгрузки является файл XML, который подхватывается 1с.битрикс, который в свою очередь обновляет инфоблок на сайте.
В конфигураторе я нашел модуль с функциями, который запускается при обмене. Модуль явно написан разработчиком сайта сто лет назад. Там используется класс РекламныеБлоки, но в нём нет свойства "цена". Со своей стороны предположил, что этот класс является отражением справочника "Рекламные блоки", но не все нужные свойства в нем описаны. Верно ли моё предположение? И как мне добавить новое свойство? |
|
|
|
|