Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in /var/www/html/1c-user.info/www/wp-content/plugins/wp-syntax/wp-syntax.php on line 380
При настройке обмена между программой 1С и сайтом на базе 1С-битрикс может появиться эта ошибка: «В редакции Малый Бизнес нет возможности иметь более одного типа цены». Искать решение мы будем, используя конфигурацию Управление торговлей 11 с интегрированным модулем 1С-Битрикс версии 7.x. Если у вас другая 1С или версия модуля отличается от приведенной выше, прочтите рекомендации, они помогут разобраться и в вашем случае.
Причины ошибки
В вашей конфигурации 1С установлено несколько видов цен, которые модуль обмена пытается выгрузить на сайт. Ко второй причине можно отнести несовпадение внутреннего идентификатора типа цены. Ко всему этому нужно учитывать разные версии модуля обмена между сайтом и вашей базой 1С.
Решение
Чтобы разобраться и понять причину ошибки первым делом мы выгрузим файлы, которыми обменивается 1С с сайтом в локальный каталог. Для этого в настройке параметров обмена изменяем назначение и устанавливаем любой каталог выгрузки на компьютер. (Рис. 1)
Фотографии к этому посту сделаны в конфигурации УТ 11 + модуль интеграции 1С-Битрикс версии 7. Если у вас другая конфигурация или версия модуля, интерфейс и расположение кнопок может отличаться.

Далее нажимаем на кн. «Выполнить обмен данными», ждем, пока данные полностью запишутся на диск в указанную папку.
Путь к каталогу, которых хранит информацию о ценах:
[указанный каталог]\webdata\000000002\goods\1\
Перейдите в него и найдите файл: prices_[XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX].xml. Название файла всегда начинается с «price» и может заканчиваться последовательностью букв и цифр. ( Пример: prices___18a6c886-e229-44c2-a871-8fe9fc456535.xml ).
Откройте файл в текстовом редакторе. Ниже приведен блок кода из файла, который содержит информацию о ценах. Обратите внимание в этом примере два блока(тэга) «<Цена>«. Это означает, что модуль обмена 1С выгружает 2 вида цен. В вашем случае блоков может быть больше.
<Цены> <Цена> <Представление>1 950 RUB за шт</Представление> <ИдТипаЦены>80212459-4063-4e67-8d9b-c71eb641dd45</ИдТипаЦены> <ЦенаЗаЕдиницу>1950</ЦенаЗаЕдиницу> <Валюта>RUB</Валюта> <Налог> <Наименование>НДС</Наименование> <УчтеноВСумме>false</УчтеноВСумме> </Налог> </Цена> <Цена> <Представление>1 950 RUB за шт</Представление> <ИдТипаЦены>c1bec80e-dc6f-494f-b354-9470ccc1ebee</ИдТипаЦены> <ЦенаЗаЕдиницу>1950</ЦенаЗаЕдиницу> <Валюта>RUB</Валюта> <Налог> <Наименование>НДС</Наименование> <УчтеноВСумме>false</УчтеноВСумме> </Налог> </Цена> </Цены> |
Если блоков <Цена> больше, чем один
В разделе «Выгрузка информации о номенклатуре» (Рис 2) нажимаем на кн. «Настроить». Далее находим кнопку «Настроить отбор» (Рис 3), нажимаем, открывается форма отборов, где устанавливаем новый отбор на строке Соглашение (Рис 4). Возможно данного отбора не будет, и вместо него вы увидите другой, который подойдет вам (например, отбор по виду цен)
Рис 2 Рис 3 Рис 4
Если всего один блок <Цена>
- Следует проверить доступные для импорта валюты. По умолчанию в 1С-Битрикс стоит USD, а из 1С:УТ 11 обычно выгружается RUB.
- На сайте переименуйте код цены «BASE» в имя цены в 1с (напр. «Розничная»)
Если информация на странице не полно освещает решение задачи, напишите в комментариях свои предложения