1С Розница 2.2 после обновления до 2.2.7.40 недостаточно прав

После обновления пользователи стали ловить такие ошибки:

 Исправляем:

Вариант 1

Вариант 2

Даем пользователю роль «Базовые права ИПП» (Интернет поддержки пользователей)

Lanbilling и работа с IP адресами

Начиная с 18 сборки, в Lanbiling поменялись все поля связанные с работой с IP.

Например, было:

`segment` int(10) unsigned NOT NULL DEFAULT ‘0’

Стало:

`segment` binary(16) DEFAULT NULL

Соответственно если раньше выборку по IP можно было сделать :

mysql> select inet_ntoa(segment) from staff limit 1;
+--------------------+
| inet_ntoa(segment) |
+--------------------+
| 11.242.164.20      |
+--------------------+
1 row in set (0.00 sec)

Теперь:

mysql> select inet_ntoa(CONV(RIGHT(HEX(segment), 8),16,10))  from staff limit 1;
+-----------------------------------------------+
| inet_ntoa(CONV(RIGHT(HEX(segment), 8),16,10)) |
+-----------------------------------------------+
| 11.242.164.20                                 |
+-----------------------------------------------+
1 row in set (0.00 sec)

Плюс предлагают  несколько функций для работы с подобным типом значений:

delimiter ;;

DROP FUNCTION IF EXISTS `IPV42BIN`;;
CREATE FUNCTION `IPV42BIN`(addr int(11)) 
RETURNS BINARY(16)
NO SQL DETERMINISTIC SQL
SECURITY INVOKER
BEGIN
RETURN 
unhex(concat('00000000000000000000FFFF', lpad(conv(addr, 10, 16), 8, '0')));
END;;

DROP FUNCTION IF EXISTS `IPSV42BIN`;;
CREATE FUNCTION `IPSV42BIN`(addr varchar(16)) 
RETURNS BINARY(16)
NO SQL DETERMINISTIC SQL
SECURITY INVOKER
BEGIN
RETURN 
unhex(concat('00000000000000000000FFFF', lpad(conv(inet_aton(addr), 10, 16), 8, '0')));
END;;

DROP FUNCTION IF EXISTS `BIN2IPSV4`;;
CREATE FUNCTION `BIN2IPSV4`(addr binary(16)) 
RETURNS VARCHAR(16)
NO SQL DETERMINISTIC SQL
SECURITY INVOKER
BEGIN
RETURN 
inet_ntoa(conv(substr(hex(addr),25,8),16,10));
END;;

delimiter ;

Затейники…

Вполне работает вот так:

select replace(inet6_ntoa(segment),"::ffff:","") from staff limit 1;

и

select INET6_ATON("::ffff:192.168.13.1") limit 1;

ERROR 126 (HY000): Incorrect key file for table ‘/tmp/#sql613d_3eb2bd_0.MYI’; try to repair it

Словил на одном запросе в MySQL такую ошибку. Долго думал.. Наконец сообразил, что /tmp у меня монтируется в памяти (2506мб), для ускорения MySQL, и вот как раз в «сложных» запроса её родимой и не хватает..

Удаление zeitgeist из Ubuntu

zeitgeist — демон который облегчает поиск на ПК с Ubuntu, индексируя файлы, запросы пользователя и т.п.  Может это и хорошо (а может и нет, ибо по некоторым данным он еще и выполняет фунцкции «шпиёна»), но у меня он тормозит систему и отьедает от небольшого SSD порядка 5 гигов на жестком.

sudo apt-get purge zeitgeist zeitgeist-core zeitgeist-datahub

MySQL временное отключение триггеров

К сожалению «штатной» возможности на данный момент нет. Можно только сделать «финт ушами», и в триггер добавить проверку на необходимость срабатываний. Например вот так:

	IF @LB_DISABLE_TRIGGERS IS NULL OR @LB_DISABLE_TRIGGERS = 0 THEN
		SELECT `vg_id` INTO l_vg_id FROM `usbox_services` WHERE `serv_id` = OLD.`serv_id`;
		CALL CHARGE_IMPL(l_vg_id, OLD.`agrm_id`, OLD.`period`, OLD.`c_date`, -OLD.`amount`);
	END IF;

А в нужный момент, выполнять:

set @LB_DISABLE_TRIGGERS=1;

Жизнь замечательных грибов