вторник, 25 октября 2016 г.

1C и Бтирикс обменССайтом


Столкнулся с проблемой того, что заказы из 1С не выгружались в горячо любимый битрикс.
В логах последней строчкой значилось:
24.10.2016 20:38:42--Отправка запроса на получение заказов с сайта.

А сам модуль ругался следующей ошибкой: "Ошибка преобразования данных XML"

Как подсказывает справка 1С:
Ошибка возникает вследствие нарушения структуры передаваемых данных.
При чтении данных XML платформой производится автоматическое определение типа получаемых данных, кроме случаев, когда тип данных указан при вызове операции чтения. Если структура данных XML не соответствует структуре данных, определяемых типом, то будет сгенерировано данное сообщение об ошибке.
При обмене данными в рамках распределенной информационной базы используются штатные механизмы записи/чтения XML. Данная ошибка является следствием искажения сообщения обмена. Необходимо повторно получить сообщение от информационной базы - источника сообщения
И тут у меня возникла потребность посмотреть это XML который формирует Битрикс.
Сделать это можно следующим способом:

1)Сначала нужно выполнить
http://site.ru/bitrix/admin/1c_exchange.php?type=sale&mode=checkauth
Получим строку вида:
success PHPSESSID 7e04c902dae597bf3b37eb70a5b970cc sessid=9e4d5d127a28d8015610171925121398
Этот запрос посылает модуль обмена для проверки аутентификации.
От сюда возьмем sessid, он потребуется для следующих 2х запросов.

2)Запрос на проверку параметров
http://site.ru/bitrix/admin/1c_exchange.php?type=sale&mode=init&sessid=9e4d5d127a28d8015610171925121398&version=2.08
Он будет полезен для диагностики некоторых проблем, например из него можно узнать максимальный размер передаваемого файла (file_limit=204800).

3)Запрос выдаст нам передаваемый сайтом XML файл содержащий заказы.
http://site.ru/bitrix/admin/1c_exchange.php?type=sale&mode=query&sessid=9e4d5d127a28d8015610171925121398

Далее образец XML файла




<КоммерческаяИнформация ВерсияСхемы="2.05" ДатаФормирования="2011-05-26T15:21:14" ФорматДаты="ДФ=yyyy-MM-dd; ДЛФ=DT" ФорматВремени="ДФ=ЧЧ:мм:сс; ДЛФ=T" РазделительДатаВремя="T" ФорматСуммы="ЧЦ=18; ЧДЦ=2; ЧРД=." ФорматКоличества="ЧЦ=18; ЧДЦ=2; ЧРД=."> <Документ> <Ид>839F810C-8795-11E0-AD8D-88AB4824019B</Ид> <Номер>5</Номер> <Дата>2011-05-26</Дата> <ХозОперация>Заказ товара</ХозОперация> <Роль>Продавец</Роль> <Валюта>руб</Валюта> <Курс>1</Курс> <Сумма>22100.00</Сумма> <Контрагенты> <Контрагент> <Ид>4DE6F5F8-878C-11E0-9D3B-6EA04824019B</Ид> <Наименование>ООО "Успех"</Наименование> <ОфициальноеНаименование></ОфициальноеНаименование> <ЮридическийАдрес> <Представление></Представление> </ЮридическийАдрес> <Роль>Покупатель</Роль> </Контрагент> </Контрагенты> <Время>14:16:19</Время> <Комментарий></Комментарий> <Товары> <Товар> <Ид>55</Ид> <ИдКаталога></ИдКаталога> <Наименование>Каркас кровати</Наименование> <БазоваяЕдиница Код="796" НаименованиеПолное="Штука" МеждународноеСокращение="PCE">шт </БазоваяЕдиница> <ЦенаЗаЕдиницу>10000.00</ЦенаЗаЕдиницу> <Количество>1.00</Количество> <Сумма>10000</Сумма> <ЗначенияРеквизитов> <ЗначениеРеквизита> <Наименование>ВидНоменклатуры</Наименование> <Значение>Товар</Значение> </ЗначениеРеквизита> <ЗначениеРеквизита> <Наименование>ТипНоменклатуры</Наименование> <Значение>Товар</Значение> </ЗначениеРеквизита> </ЗначенияРеквизитов> </Товар> <Товар> <Ид>56</Ид> <ИдКаталога></ИдКаталога> <Наименование>Мальм 3</Наименование> <БазоваяЕдиница Код="796" НаименованиеПолное="Штука" МеждународноеСокращение="PCE">шт </БазоваяЕдиница> <Скидки> <Скидка> <Наименование>Скидка на товар</Наименование> <Сумма>900.00</Сумма> <УчтеноВСумме>true</УчтеноВСумме> </Скидка> </Скидки> <ЦенаЗаЕдиницу>5100.00</ЦенаЗаЕдиницу> <Количество>1.00</Количество> <Сумма>5100</Сумма> <ЗначенияРеквизитов> <ЗначениеРеквизита> <Наименование>ВидНоменклатуры</Наименование> <Значение>Товар</Значение> </ЗначениеРеквизита> <ЗначениеРеквизита> <Наименование>ТипНоменклатуры</Наименование> <Значение>Товар</Значение> </ЗначениеРеквизита> </ЗначенияРеквизитов> </Товар> <Товар> <Ид>477</Ид> <ИдКаталога></ИдКаталога> <Наименование>Стол и 4 стула</Наименование> <БазоваяЕдиница Код="796" НаименованиеПолное="Штука" МеждународноеСокращение="PCE">шт </БазоваяЕдиница> <ЦенаЗаЕдиницу>7000.00</ЦенаЗаЕдиницу> <Количество>1.00</Количество> <Сумма>7000</Сумма> <ЗначенияРеквизитов> <ЗначениеРеквизита> <Наименование>ВидНоменклатуры</Наименование> <Значение>Товар</Значение> </ЗначениеРеквизита> <ЗначениеРеквизита> <Наименование>ТипНоменклатуры</Наименование> <Значение>Товар</Значение> </ЗначениеРеквизита> </ЗначенияРеквизитов> </Товар> </Товары> </Документ> </КоммерческаяИнформация>


У меня была проблема в лишнем передаваемом тэге <Дата1с>2016-10-21</Дата1с>
Успеха ;)

среда, 7 сентября 2016 г.

Удаление телеметрии Windows 7/8/10

Уже не для кого не секрет, что windows 10 следит за пользователями, но не каждый задумывается, что подобный функционал может появится и предыдущих операционных систем семейства благодаря последний обновлениям(польза которых уже года 2-3 как под сомнением). Если не хочется самостоятельно разбираться во всей это каше, но паранойя давит, то рекомендую следующую утилиту - "Destroy Windows Spying - Windows spying removal tool".
Программа выложена на github.com и содержит исходные коды (то есть при желании вы можете убедиться в ее безопасности, либо скомпилировать самостоятельно).
Что собственно она умеет:
-Удаляет все мутные обновления Windows 7/8/8.1/10 и Server 2008-2012 R2
- Удаляет все шпионские модули
- Удаляет шпионские приложения
- Перекрывает шпионские домены Microsoft
- Удаляет шпионские службы
- Удаляет приложения Metro Windows 10
- Удаляет телеметрию Office 2016 

Read me самой программы:
Данная программа уничтожает шпионство на Windows 7/8/8.1/10.
У программы открытый исходный код,который находится на github.
Данная программа уничтожает шпионство полностью. Удаляет некоторые элементы Телеметрии,а остальные отключает, отключает Windows Defender, Кортану,и многое другое. Так же программа отключает Windows Update, что позволяет вам остаться анонимным, и не получать новых шпионских обновлений.
Функция удаления Metro приложений очень хороша, т.к. они работают в фоновом режиме, и жрут оперативную память, а некоторые из них шпионят за  вами.
Так же программа блокирует многие IP адреса Microsoft, на которые идут данные, и добавляет большинство шпионских хостов в hosts.
Почти все действия программы необратимы, и их не откатить даже через точку восстановления системы. 








понедельник, 23 мая 2016 г.

1C через VPN


Типичное сообщение об ошибке:
"запрошенное имя верно но данные запрошенного типа не найдены"

Решение:
Добавить в файл hosts на клиентской машине строку типа - ххх.ххх.ххх.ххх    SERVER
Где  ххх.ххх.ххх.ххх - это локальный адрес сервера
SERVER - локальное имя машины

Путь до файла hosts:
%systemroot%\system32\drivers\etc

четверг, 18 февраля 2016 г.

Hylafax troubleshooting

Удалить зависшее задание
su -c "faxrm JID" USERNAME
Пример: su -c "faxrm 31" marianna

Посмотреть состояние модема и задания:
faxstat -s

И самое блядь главное... Если вы видите Waiting for modem to come free 
это не у вас проблемы, это принимающий факс работает не в автоматическом режиме.

вторник, 26 января 2016 г.

Bitrix24 + Офисная АТС + Mikrotik

Задача вроде простая... но столько говна ждало на пути, если вы это нашли значит мне уже не нужно вам ничего объяснять.
Покупаем сип коннектор за 1999.99р и поехали...

  • Настройка Asterisk (у меня стоит конкретно Elastix)
1)Для начала нужно создать обычный extention (например с User Extension 500 и secret= 5c0dc17e7eb04), через него битрикс и будет совершать звонки.
Не забудьте указать nat=yes.

2)sip_general_custom.conf
Добавляем
nat=yes
externip=185.121.61.2(будем считать это нашим внешним адресом)

3) sip_nat.conf
nat=yes


  • Настройки подключения "Офисной АТС" в Битрикс 24
Название подключения:  пишем что угодно.
Адрес сервера: Внешний ip и порт (Например -185.121.61.2:5060)
Логин: 500

Пароль: 5c0dc17e7eb04

  • Настройка Mikrotik
1)Делаем пробросы портов 5060(TCP и UDP) на локальный адрес астериска.
2)Делаем проброс диапазона портов 10000-20000(UDP) на локальный адрес астериска.
3)Если имееться STUN пробрасываем его.
Нужно делать не accept а netmap либо dst-nat.

Ну вот вроде и все...
Если нету голоса совету
1) Делать tcpdump -i eth0 udp port 5060 or udp portrange 10000-20000 -s 0
2)А лучше CLI> rtp set debug on
3)Если звонок вообще не доходит то проблема в 5060, если нету голоса то в 10000-20000

Собственно с такими настройками у меня все запело.
Удачи.