Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”

Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - Alexey

Страницы: 1 2 [3]
31
Проблема с разделом "Основной каталог товаров", создаваемым при каждом обмене данными с 1C в корне структуры сайта, по-прежнему актуальна. Подскажите, пожалуйста, как справиться с данной проблемой.

32
Exorcist, здесь смотрел?

33
Доброго времени суток всем!

После добавления основного количества товаров в каталог возникла необходимость заполнения свойств для каждого товара. Самым рациональным способом видится цепочка: экспорт в CSV - последующее редактирование - импорт в CSV. Таким образом, удалось бы сэкономить значительное количество времени.

Я ознакомился с необходимыми стандартами и правилами, описанными в руководстве, однако при каждом импорте товары не обновляются, а создаются вновь. При этом id, type-id, parent-id при редактировании не затрагивались вообще, т.е., по идее, вся структура должна остаться неизменной, должны измениться только редактируемые поля. Предположил, что проблема возникает после редактирования и сохранения csv. Тогда я просто импортировал файл без изменений, в первоначальном виде - и все равно, разделы и объекты каталога не обновляются, а создаются еще раз. Пробовал менять раздел для импорта - тоже безрезультатно.

Подскажите, пожалуйста, как быть? В чем может быть ошибка?

34
admin, спасибо! Оказалось, все очень просто с этим, проглядел этот пункт.

35
Доброе время суток всем!

Работаю с каталогом товаров, приходится править характеристики каждого товара (объекта каталога) вручную. Проблема в том, что, если попадаются разделы, содержащие достаточно большое количество объектов и они развернуты, то при каждой перегрузке страницы модуля "Структура" выдается следующее сообщение: "Вы собираетесь развернуть раздел, содержащий большое количество подразделов. Это может занять некоторое время, в течение которого окно браузера может не реагировать на ваши действия." Предлагается 2 варианта действий - "Отменить" и "Развернуть". Приходится каждый раз жать кнопку "Развернуть". Можно ли где-нибудь в настройках выставить автоматическое разворачивание таких разделов?

36
У меня еще одна проблема. Дорабатываю event. Разумеется, приходится править файл /classes/modules/exchange/__custom.php  Работоспособность не проверишь, пока не запустишь обмен в 1C. Запускаешь обмен, выдается ошибка: "Соединение с сайтом не установлено. Выгрузка товаров отменена. Не удалось установить соединение с сервером. Проверьте имя пользователя и пароль." Все настройки заданы верно, синтаксис файла вроде бы в порядке. Или иногда бывает ошибка "Получен пустой ответ сервера", но это, как я понимаю, уже явно свидетельствует о наличии ошибок в файле.

Странность в том, что при откате на предыдущее рабочее состояние или вообще при возврате /classes/modules/exchange/__custom.php в дефолтное состояние, выдается та же самая ошибка. Перезагрузка 1С не помогает, и лишь через некоторое время ошибка пропадает.

Подскажите, пожалуйста, что это может быть.

P.S. admin, проверь ЛС.

37
У меня указано, вплоть до конечных папок и отдельных позиций, но это не помогает. При каждом обмене по-прежнему в корне сайта создается пустая страница "Основной каталог товаров". Папки, которые мне не нужны, не выгружаются, т.к.:

1. В фильтре по номенклатуре указаны папки, содержащие только нужные товары.
2. Если в какой-либо папке мне нужны не все товары, выделяю их и добавляю отдельно в общий список.

rauschen, попробуй так. Это, разумеется, повлечет дополнительные временные затраты, но зато ненужные папки создаваться не будут. Еще один минус такого подхода в том, что, при добавлении товаров в папки, в которых элементы указывались выборочно, на сайт они автоматически не выгрузятся (т.е. предварительно их придется добавить в фильтре). Кроме этого, в добавленных в общий список папках и элементах довольно трудно ориентироваться, и при достаточно большом количестве товаров это доставляет определенные неудобства. Переместить или отсортировать элементы в списке фильтра не представляется возможным.

Возможно, существует другой, более удобный способ установки фильтров обмена. Тем не менее, те варианты, о которых я думал, не работают, например:

1. Установка сразу двух фильтров по номенклатуре - в одном содержатся папки, в другом - товары, которые не нужны. Можно было бы задать и несколько фильтров, и более гибко настроить, но созданные дополнительно фильтры (помимо имеющихся по умолчанию) автоматически удаляются после сохранения изменений.
2. Задание фильтра с сохранением папочной структуры - т.е. добавляем папки, но внутри них убираем элементы, которые не нужны. Так сделать тоже не представляется возможным.

Приходится пользоваться описанным в самом начале методом, который является далеко не самым удобным и рациональным.

Если кто-то сталкивался с такими проблемами, посоветуйте что-нибудь.

38
rauschen, пока нет. У меня тоже большая вложенность. Разбираюсь с этим.

P.S. Проверь ЛС.

39
Нашел ответ на свой вопрос:

getTplId() — Получить id шаблона дизайна (класс template), по которому отображается страница.

С получением нужных данных проблем нет, установить шаблон дизайна можно посредством setTplId(). А вот как быть с получением и установкой типа данных, пока не совсем понятно.

Более подробно можно ознакомиться здесь.

Попробую доделать функцию с учетом этого и протестировать, о результатах отпишу позже.

40
admin, rauschen, спасибо за ответы! Я немного изменил и доработал функцию, которую предложил admin. Аналогично добавил переопределение имени и шаблона для разделов каталога (было только для объектов каталога). Все работает нормально. Таким образом, названия остаются прежними, и страницам назначаются нужные шаблоны в зависимости от их типа (раздел или объект каталога).

Попытки реализовать это путем редактирования файла /xsl/import/commerceML2.xsl результата не дают.

Загвоздка в том, что у меня для разных разделов каталога заданы разные шаблоны. В связи с этим возникает вопрос - можно ли как-то получить ID шаблона, который был у страницы изначально в if($e->getMode() == "before") {} и потом в if($e->getMode() == "after") {} присвоить этот шаблон уже известным способом $element->setTplId(ID шаблона). Или, может быть, есть еще какие-нибудь варианты? В любом случае, нужно, чтобы после ручной смены шаблона страницы раздела каталога при обмене шаблон оставался таким же.

И, раз уж все делается через event, можно ли  в данной функции назначить всем объектам каталога тип данных "Объект каталога"?

41
admin, спасибо за оперативный ответ!

Насчет назначения шаблона страницам.
Действительно можно отключить назначение шаблона. Для этого просто проследите чтобы в /xsl/import/commerceML2.xsl  и /xsl/import/custom/commerceML2.xsl  файлах не формировался тег  <default-template>.

Заменил все вхождения default-template на template в файле /xsl/import/commerceML2.xsl, из файла /xsl/import/custom/commerceML2.xsl данные блоки удалил вообще, т.к. фактически получается дублирование данных. Результат - всем страницам каталога (и разделам, и объектам) по-прежнему присваивается дефолтный шаблон и создается пустая страница "Основной каталог товаров" в корне сайта.

Насчет создания пустого раздела
не встречал такого, если вы пользовались модифицированным /xsl/import/custom/commerceML2.xsl то может ошибка в нем.

Небольшое пояснение. Единственная модификация файла /xsl/import/commerceML2.xsl - замена всех вхождений default-template на template;
В файл /xsl/import/custom/commerceML2.xsl добавлено только это.

Можно поподробнее насчет события "exchangeOnUpdateElement", где применить эту функцию?

42
Здравствуйте всем!

Столкнулся с некоторыми проблемами при обмене данными с 1C.

1. Такая же проблема, как у rauschen. При обмене данными с 1C названия уже существующих объектов и разделов приобретают первоначальный вид (как в 1C). Как этого избежать? Пробовал добавлять строку exchange.commerceML.renameFiles = "0" в config.ini, как указано здесь (по умолчанию в файле ее вообще не было), переопределять присвоение названий в /xsl/import/custom/commerceML.xsl, однако это не принесло никаких результатов. Каким образом лучше разграничить процесс полной выгрузки и процесс выгрузки изменений? rauschen, как ты в конечном итоге вышел из данной ситуации? Если через event, выложи, пожалуйста, листинг кода.
Т.к. h1 остается прежним, то на крайний случай, как вариант можно добавить присвоение названия из h1 (что, конечно, не рационально).

2. Мне нужно, чтобы разделам и объектам каталога при полной выгрузке и обмене ставились в соответствие определенные tpl шаблоны, отличные от заданного по умолчанию.

В config.ini указал следующее:

exchange.translator.catalog_item_template = "catalogitem.tpl"
exchange.translator.catalog_rubric_template = "catalogrubric.tpl"

В таком случае и разделам, и объектам каталога по-прежнему ставится в соответствие шаблон по умолчанию (даже для новых добавляемых страниц).
Помимо этого, при каждом обмене в корне сайта создается страница Основной каталог товаров, которая не содержит в себе никаких объектов.
Воспользовался данным решением.
Теперь для всех разделов каталога используется шаблон catalogrubric.tpl (который мне и нужен), однако для объектов каталога по-прежнему применяется шаблон по умолчанию, и также создаются пустые страницы osnovnoi_katalog_tovarov, osnovnoi_katalog_tovarov1, osnovnoi_katalog_tovarov2 и т.д. в корне сайта. Как быть? И возможно ли задать исключения для ряда разделов каталога, для которых применяется другой шаблон, скажем catalogrubric_1.tpl?
Есть еще один альтернативный вариант - переопределить действия при выгрузке изменений таким образом, чтобы шаблоны страниц не менялись вообще (как и в ситуации 1). Тогда, на крайний случай, нужные шаблоны можно переопределить вручную (все равно каждый объект будет редактироваться отдельно). Понимаю, что это не рационально, но все же рассматриваю это, как один из вариантов.

3. Мне нужно применить данный шаблон с учетом ситуаций 1 и 2. Отдельно он работает нормально.

Очень надеюсь на вашу помощь!

Страницы: 1 2 [3]