1с.Реклама. Там есть такой справочник как Рекламные блоки. В выгрузке данных участвует объект РекламныеБлоки, однако в этом объекте отсутствует ряд свойств, например, цена, которая явно есть в справочнике. Почему так? И как это исправить?
22.04.2018 22:27:37
В каком месте формируется список свойств, выгружаемых из справочника?
|
|
|
|
23.04.2018 07:18:43
Алексей Сипаев, спасибо, что откликнулись! Конфигурация 1С8.3 с установленным "Управлением наружной рекламой". Пользователи заносят свои рекламные конструкции и описывают из через справочник "Рекламные блоки". Среди прочего они заносят туда и цену. У пользователей настроена выгрузка в web (через кнопку "Выполнить обмен с Web..."). Результатом такой выгрузки является файл XML, который подхватывается 1с.битрикс, который в свою очередь обновляет инфоблок на сайте.
В конфигураторе я нашел модуль с функциями, который запускается при обмене. Модуль явно написан разработчиком сайта сто лет назад. Там используется класс РекламныеБлоки, но в нём нет свойства "цена". Со своей стороны предположил, что этот класс является отражением справочника "Рекламные блоки", но не все нужные свойства в нем описаны. Верно ли моё предположение? И как мне добавить новое свойство? |
|
|
|
23.04.2018 09:19:12
Игорь, Скорее всего в этой конфигурации стандартный типовой модуль обмена с сайтом был сделан по аналогии с выгрузкой справочника "Номенклатура". Чтобы полноценно можно было проанализировать выгрузку, нужно либо увидеть саму конфигурацию, либо полученные xml-файлы.
Цена может в справочнике лишь отражаться (например, на отдельной закладке "Цены" в карточке самого рекламного блока), задаваться цена может с помощью документа "Установка цен рекламных блоков" (пишу по аналогии с номенклатурой), а храниться она может совсем в другом месте (например, в регистре сведений "ЦеныНоменклатуры"). Я не думаю, что в данной конфигурации может быть все совсем иначе, чем в основных типовых конфигурациях. Ее (конфу) видимо немного перевернули с ног на голову, а в остальном она должна быть похожа на управление торговлей 10.3. Все ли так, как я описал? А далее нужно понимать, что вы подразумеваете под словом "Свойства" ("новое свойство")? Это либо реквизит карточки рекламного блока, либо доп. свойство из механизма "дополнительных свойств". Но нужно понимать, что для битрикса эта конфигурация настолько безымянна, как и любая типовая конфигурация (будь то УТ10.3 или УТ11 или УНФ) и процессы обработки файлов xml одинаков. Это я к тому, что мало будет добавить новое свойство в xml файл, нужно еще понимать, где и как он должен быть показан (отображен) на сайте. Поэтому начинать нужно с малого)))
Всем несогласным - мыло и веревка!
|
|
|
|
23.04.2018 11:13:08
Алексей Сипаев, а вы правы! В справочнике "Рекламные блоки" есть вкладка "Цена", есть выбор Медиапродукта, в котором есть цена!
Сейчас сделал выгрузку с константой 2500. Код такой:
В результате получилось вот такая выгрузка (цена 2500 - тупо забитое число):
|
|||||||||
|
|
23.04.2018 11:32:41
Игорь, Цену так не достать, если она точно хранится в регистре сведений "Цены", то ее нужно получать совсем другим методом (запросом, например). Меня вообще смущает структура выходного xml-файла. Если речь идет про более или менее типовой обмен с сайтом на битриксе, то файл xml должен соответствовать схеме xsd cml2.0 (как минимум) и файлов на выходе должно быть 2 как минимум (import.xml и offers.xml). Первый хранит описание структуры каталога, описание товаров, типов цен, складов..., а второй - торговые предложения с ценами и остатками.
То, что привели вы - больше похоже на обмен между разными базами 1с (или идентичными конфигурациями). Т.е. представленная вами структура выходного файла полностью отличается от действительности. Либо обмен был полностью написан (с момента формирования файла, до момента его парсинга на сайте) как со стороны 1с так и со стороны сайта, либо где-то есть кот в мешке) И какие-то моменты в описании задачи явно опущены.
Всем несогласным - мыло и веревка!
|
|
|
|
23.04.2018 11:33:45
Игорь,по поводу cml
Всем несогласным - мыло и веревка!
|
|
|
|
23.04.2018 12:56:26
Алексей Сипаев,спасибо за ссылки - изучаю!
Судя по коду модуля обмена, выгрузка реально описана вручную и очень давно. В общем, похоже, какая-то кустарщина, да?... Мне просят тюнинг провести, но я в 1с ничего не знаю. Мне бы просто выцепить цену. Как мне ее получить запросом? Где я могу увидеть эти таблицы (или представления), чтобы написать запрос? |
|
|
|
23.04.2018 13:17:26
Игорь, насчет цен можно посмотреть как в карточке товара цены получаются. Там должен быть запрос к регистру сведений "Цены..." скорее всего.
Человеку, который с 1с не дружен тяжело описать механику и объектную природу всего этого "детища". Простыми словами нужен запрос вида (цена по одному типу цен), например: "ВЫБРАТЬ ПЕРВЫЕ 1 Цена ИЗ РегистрСведений.ЦеныРекламныхБлоков.СрезПоследних(, РекламныйБлок = &СсылкаНаТекущийРекламныйБлок)" Но это полный примитив для выгрузки товаров в цикле не подойдет (ибо запрос в цикле, нагрузка на базу, не оптимально и т.д.). Но в качестве задела для понимания "Что искать" в коде пойдет.
Всем несогласным - мыло и веревка!
|
||||
|
|
|||