Архив за месяц: Февраль 2016

Bitrix. Синхронизация заказов возращает html.

orders
Не в первый раз сталкиваюсь с тем, что при запросе вида 1c_exchange.php?type=sale&mode=query компонент возвращает кусок html страницы.
Чтобы так не происходило — нужно разобраться с тем, почему $bDesignMode == true.
После того, как (не разбираясь) установил эту переменную в false — компонент отдал xml. Но с табом перед объявлением xml. Естественно парсер отказался разбирать этот документ.
Полечил вставкой trim при выводе буфера.

orders2

Компонент должен работать штатно, связываю проблемы с $bDesignMode.

Перемычки чековый принтер Posiflex PP-6900

Если хочешь поставить принтер и идти пить пиво, а не вспоминать 2 дня как ты поставил его прошлый раз, то делай так:

  1. Проверь как стоят перемычки. Для работы по USB должны быть включены 2-я и 6-я.20160219_161643
  2. Потом ставь дрова из папки с названием USBVCOM_WinXP и лучше всего с позифлексовского диска.
  3. Поставил? Теперь ставь OPOS и наслаждайся жизнью. Для работы с оборудованием из под 1С никакие дополнительные драйвера на самом деле не нужны, т.к. все прекрасно работает через OPOS (если ты написал в 1С обработчики под OPOS).
  4. Ах, да!  В OPOS нужно еще настроить принтер. Здесь главное правило — НЕ УДАЛЯЙ ДЕФОЛТНЫЙ ПРИНТЕР. Или полезешь в реестр удалять обрывки настроек. Исправляй тот, что тебе уже добавил заботливый китаец. И не забудь поставить алиас принтера в нижнем поле. Через OPOS принтер видно только по алиасу.

Вроде все. Но это не поможет, т.к. в следующий раз ты опять будешь ставить этот гацкий PP-6900 часа четыре.

Вот еще.. Совсем забыл… Важно помнить, что в Win7 и WinXP кодировки почему то работают по разному.  В WinXP кодировка в настройках OPOS должна быть CP866.

Замена стекла ASUS Phonepad 7 (ч1)

(Месяц назад) Случилось страшное. Сына разбил стекло своему моему нашему планшету ASUS Phonepad 7.
Разбираем, оцениваем масштабы бедствия.
1. Винты по периметру отвернуть
20160131_133520
2. Отклеиваем сначала экран от тача, потом тач от рамки. Экран к тачу крепится тонким черным двухсторонним скотчем. Тач к рамке приклеен термоклеем.
20160131_144238
Слева матплата и экранирующая пластина, справа рамка и экран планшета (мордой в стол).
3. Отклеивать экран лучше не отверткой и не шилом, а например тонким гитарным медиатором или пластиковой картой. Один из краев последней лучше подточить.
Возможно кто нибудь скажет, что надо сначала нагреть феном или протереть спиртом внутри и снаружи — возможно, но я ничего этого не делал.
20160131_144041
4. Шлейф тача для моей ревизии планшета выглядит так.
20160131_144120
5. Экран (принесли его домой…) оказался живой. Тач оказался — в труху, это и так было понятно. Идем на aliexpress, заказываем у китайцев новый тач. Мне это обошлось в 990 руб. Продавец отправил заказ в последний день срока обработки, видимо цена поднялась — он наверно думал сольюсь. Щас. Вот ему наш пролетарский кукиш. Месяц ждал пока отправит, еще месяц буду ждать пока приедет. Потом возможно будет продолжение.

Если каталог залили в 1С из битрикс.

Когда каталог создается на сайте, потом перекачивается в 1С, а потом его пытаются выгружать в другой сайт на битриксе могут появиться проблемы.
Столкнулся с такой проблемой у клиента. В каталоге, созданном подобным образом, разные товары в 1С, почему то начали выгружаться в один на сайте. Видимо в 1С перекачивали дважды и разные версии. В результате — дубли кодов в поле Б_Идентификатор в 1С.

Добавлено позже: На самом деле проблема в добавлении копированием в 1С. Поскольку функционал обмена для основной конфигурации «левый», на обработке заполнения не очищается поле Б_Идентификатор.

Решилось установкой в Б_Идентификатор значения XMLСтрока(%Ссылка на товар%). Возможно можно было просто очистить, как обрабатывает это поле механизм выгрузки в данном случае не смотрел.

В итоге так и сделал — очистил.

Еще один косяк. При добавлении элемента номенклатуры копированием — переносится и Б_Идентификатор. В результате чего — имеем грабли при выгрузке, версия модуля 5.0.0.10

Обновил битрикс (sale 15.5.11) — перестал работать realtime.

Первое куда надо смотреть — установлена ли константа CACHED_b_sale_order. Установил в after_connect.php. Если ставить малое время, то если реалтайм за это время заказ не заберет — то система забудет, что его надо забрать. Поэтому ставим астрономическую цифру.

Изменился алгоритм регистрации заказа в измененных для реалтайм.
Раньше было в …\bitrix\modules\sale\lib\order.php:

if(defined("CACHED_b_sale_order") && ($this->isNew || ($this->isChanged() && $fields["UPDATED_1C"] != "Y")))
{
$CACHE_MANAGER->Read(CACHED_b_sale_order, "sale_orders");
$CACHE_MANAGER->SetImmediate("sale_orders", true);
}

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

Добавил после проверок на успешность так:
$CACHE_MANAGER->Read(CACHED_b_sale_order, "sale_orders");
$CACHE_MANAGER->SetImmediate("sale_orders", true);

После этих манипуляций реалтайм заработал. Надо бы разобраться, что там за события, fs!…

P.S. Уточнение — битрикс не обновлял, а ставил новый с нуля.

Битрикс. Модуль обмена 5.0.0.10. Заказы. Ошибки на создании элементов номенклатуры.

Если возникает необходимость создания номенклатуры при загрузке заказов, возникает ошибка, ругань в консоль на то, что не смог записать элемент номенклатуры, т.к. не смог привести что то там к виду Булево. Читать далее

1C 7.7. Активация открытой формы.

Использовал для обработки обмена с сайтом. В 7.7 форма не обрабатывает внешнее событие, если она открыта но неактивна.
Чтобы сделать активной — активизируем на ней какую нибудь кнопку. Метод «Активизировать» работает не везде. Здесь посоветовали Читать далее