Как сделать связь в запросе по части ячейки данных

1. SvetaS2014 18.01.24 01:31 Сейчас в теме
Добрый день, уважаемые форумчани. Прошу помощи
1С:Предприятие 8.3 (8.3.15.1869), "Управление производственным предприятием", формы обычные (не управляемые)

подключаюсь к MySQL через внешнее соединение (база Битрикса 24), выгружаю задачи Битрикса 24, но в одной из таблиц Битрикса 24 (где лежит номер отдела, сотрудника, по которому нужно найти руководителя сотрудника) содержит данные
a:1:{i:0;i:311;}

и поле с такими данными должно участвовать в связывании с другими полями, но только в части числа "311" или числа "53" - т.е. в части строки из {i:0;i:311;} или из {i:0;i:53;}.
пытаюсь это записать кодом
|       ЛЕВОЕ СОЕДИНЕНИЕ ВнешнийИсточникДанных.Битрикс.Таблица.b_uts_iblock_5_section КАК  b_uts_iblock_5_section
            |       ПО ВЫРАЗИТЬ(СтрЗаменить(ПОДСТРОКА(b_uts_user.UF_DEPARTMENT,12,3),"";"","""") КАК Число(3))= b_uts_iblock_5_section.VALUE_ID


Т.е.
- Необходимо оставить задачи которые были поставлены прямым руководителем.
Для того чтобы получить руководителя отдела необходимо выбрать первый отдел из таблицы b_uts_user поля UF_DEPARTMENT (отделы в которых состоит пользователь). -
Получив id отдела необходимо получить значение из таблицы b_uts_iblock_5_section поле UF_HEAD (руководитель отдела) таким образом был получен руководитель отдела.

но вылетает по ошибке
по причине:
{(39, 8)}: Несовместимые типы "ВЫРАЗИТЬ"
ПО <<?>>ВЫРАЗИТЬ(СтрЗаменить(ПОДСТРОКА(b_uts_user.UF_DEPARTMENT,12,3),";","") КАК Число(3))= b_uts_iblock_5_section.VALUE_ID


Как такое можно исправить, помогите пожалуйста. Заранее спасибо.
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Said-We 18.01.24 02:26 Сейчас в теме
(1) Зачем для связи преобразовывать строку в число? Работайте со строками. Прав("000"+t.str, 3)
Где t.str - это вами выдернутая подстрока из b_uts_user.UF_DEPARTMENT с заменой ";" на "". И надо так же заменить ещё "}", если есть номер из одного символа.
Преобразуйте числа в строку, если релиз платформы свежий и режим совместимости позволяет.

Новые функции языка запросов (ну как новые 2020 года):
https://wonderland.v8.1c.ru/blog/novye-funktsii-yazyka-zaprosov-i-sistemy-komponovki-dannykh/

В 1С преобразование к числу в простом виде невозможно. Ранее бы такой вариант (смотрите комментарии и другие варианты).
https://infostart.ru/1c/articles/170336/

Ну, нет в 1C 8.х привычной cast(). А может никогда и не будет (скорее всего). Если от файловой откажутся, то может появится. Но планов отказа от файловой вроде даже намеков не было. :-)
3. SvetaS2014 18.01.24 10:47 Сейчас в теме
спасибо большое, а как его в группировку засунуть
-т.е. в строку
    | СГРУППИРОВАТЬ ПО 

- пошла ошибка
Ошибка при выполнении обработчика - 'ПриКомпоновкеРезультата'
по причине:
{Отчет.Отчет1.МодульОбъекта(221)}: Ошибка при вызове метода контекста (Выполнить)

по причине:
{(27, 55)}: Поле не входит в группу "b_uts_user.UF_DEPARTMENT"
ВЫРАЗИТЬ(Прав("000"+СтрЗаменить(СтрЗаменить(ПОДСТРОКА(<<?>>b_uts_user.UF_DEPARTMENT,12,3),";",""),"}",""), 3) КАК СТРОКА(5)) как UF_DEPARTMENT,
4. Said-We 18.01.24 11:21 Сейчас в теме
(3) Для наглядности и исключения копипаста - можно в подзапрос, а потом уже группировать. На производительность это сильно НЕ повлияет, так как данные внешние.
5. SvetaS2014 18.01.24 12:08 Сейчас в теме
помогите пожалуйста - сделала
	 Запрос = Новый Запрос("ВЫБРАТЬ      
	 //задачи
	  |   ЗапросЗадачи.Status_Task,
      |   ЗапросЗадачи.ID,
	  |   ЗапросЗадачи.NAME,
	  |   ЗапросЗадачи.LAST_NAME, 
	  |   ЗапросЗадачи.LOGIN,
	  |   ЗапросЗадачи.WORK_POSITION,
	  |   ЗапросЗадачи.WORK_DEPARTMENT, 
	  |   ЗапросЗадачи.WORK_COMPANY,
	  |   ЗапросЗадачи.TASK_ID,
	  |   ЗапросЗадачи.USER_ID,
	  |   ЗапросЗадачи.USER_FIO,
	  |   ЗапросЗадачи.USER_TYPE,
	  |   ЗапросЗадачи.TITLE,
	//  |	  ЗапросЗадачи.DESCRIPTION,
	  |   ЗапросЗадачи.PRIORITY,
	  |   ЗапросЗадачи.STATUS,
	  |   ЗапросЗадачи.DATE_START,
	  |   ЗапросЗадачи.CLOSED_DATE,
	  |   ЗапросЗадачи.START_DATE_PLAN,
      |   ЗапросЗадачи.END_DATE_PLAN,
      |   ЗапросЗадачи.CREATED_DATE, 
      |   ЗапросЗадачи.CHANGED_DATE, 
      |   ЗапросЗадачи.STATUS_CHANGED_DATE,
      |   ЗапросЗадачи.ACTIVITY_DATE,
      |   ЗапросЗадачи.DEADLINE, 
	  |   ЗапросЗадачи.RESPONSIBLE_ID,
	  |   ЗапросЗадачи.UF_DEPARTMENT,
	  |   ЗапросЗадачи.UF_HEAD,
	  |   ЗапросЗадачи.CREATED_BY,
	  |   Null
	  | ИЗ
 	  |( ВЫБРАТЬ 
	  |   ""задачи"" как Status_Task,
      |   ВЫРАЗИТЬ (b_user.ID КАК Число(10)) как ID,
	  |   ВЫРАЗИТЬ (b_user.NAME КАК СТРОКА(200)) как NAME,
	  |   ВЫРАЗИТЬ (b_user.LAST_NAME КАК СТРОКА(200)) как LAST_NAME, 
	  |   ВЫРАЗИТЬ (b_user.LOGIN КАК СТРОКА(200)) как LOGIN,
	  |   ВЫРАЗИТЬ (b_user.WORK_POSITION КАК СТРОКА(200)) как WORK_POSITION,
	  |   ВЫРАЗИТЬ (b_user.WORK_DEPARTMENT КАК СТРОКА(200)) как WORK_DEPARTMENT, 
	  |   ВЫРАЗИТЬ (b_user.WORK_COMPANY  КАК СТРОКА(200)) как WORK_COMPANY,
	  |   sk_task_change_key_person.TASK_ID,
	  |   ВЫРАЗИТЬ (sk_task_change_key_person.USER_ID КАК Число(10)) как USER_ID,
	  |   sk_task_change_key_person.USER_FIO,
	  |   ВЫРАЗИТЬ (sk_task_change_key_person.USER_TYPE КАК СТРОКА(13)) как USER_TYPE,
	  |   b_tasks.TITLE,
	  |	  ВЫРАЗИТЬ (b_tasks.DESCRIPTION КАК СТРОКА(200)) как DESCRIPTION,
	  |   b_tasks.PRIORITY,
	  |   b_tasks.STATUS,
	  |   b_tasks.DATE_START,
	  |   b_tasks.CLOSED_DATE,
	  |b_tasks.START_DATE_PLAN,
      |b_tasks.END_DATE_PLAN,
      |b_tasks.CREATED_DATE, 
      |b_tasks.CHANGED_DATE, 
      |b_tasks.STATUS_CHANGED_DATE,
      |b_tasks.ACTIVITY_DATE,
      |b_tasks.DEADLINE, 
	  |b_tasks.RESPONSIBLE_ID,
	  |ВЫРАЗИТЬ(Прав(""000""+СтрЗаменить(СтрЗаменить(ПОДСТРОКА(b_uts_user.UF_DEPARTMENT,12,3),"";"",""""),""}"",""""), 3) КАК СТРОКА(5)) как UF_DEPARTMENT,
	  |b_uts_iblock_5_section.UF_HEAD,
	  |b_tasks.CREATED_BY	 
	  |   
      |ИЗ
      |   ВнешнийИсточникДанных.Битрикс.Таблица.b_user КАК b_user
	  |    ЛЕВОЕ СОЕДИНЕНИЕ ВнешнийИсточникДанных.Битрикс.Таблица.sk_task_change_key_person КАК sk_task_change_key_person
	  |	   ПО b_user.ID=sk_task_change_key_person.USER_ID  
	  |    ЛЕВОЕ СОЕДИНЕНИЕ ВнешнийИсточникДанных.Битрикс.Таблица.b_uts_user КАК b_uts_user
	  |	   ПО b_user.ID=b_uts_user.VALUE_ID 
	  |	   ЛЕВОЕ СОЕДИНЕНИЕ ВнешнийИсточникДанных.Битрикс.Таблица.b_uts_iblock_5_section КАК  b_uts_iblock_5_section
	  |	   ПО ВЫРАЗИТЬ(Прав(""000""+СтрЗаменить(СтрЗаменить(ПОДСТРОКА(b_uts_user.UF_DEPARTMENT,12,3),"";"",""""),""}"",""""), 3) КАК СТРОКА(5))= b_uts_iblock_5_section.VALUE_ID
      |    ЛЕВОЕ СОЕДИНЕНИЕ ВнешнийИсточникДанных.Битрикс.Таблица.b_tasks КАК b_tasks
	  |	   ПО b_tasks.ID=sk_task_change_key_person.TASK_ID 
	  |    и b_tasks.CREATED_BY=b_uts_iblock_5_section.UF_HEAD
 	  |ГДЕ 
	    |   b_tasks.CLOSED_DATE МЕЖДУ  НАЧАЛОПЕРИОДА(&Дата1, МЕСЯЦ) И КОНЕЦПЕРИОДА(&Дата1, МЕСЯЦ) 
		| и  (ВЫРАЗИТЬ (sk_task_change_key_person.USER_TYPE КАК СТРОКА(13))=&Состояние1
		|или  ВЫРАЗИТЬ (sk_task_change_key_person.USER_TYPE КАК СТРОКА(13))=&Состояние2)
		|  и  ВЫРАЗИТЬ (sk_task_change_key_person.USER_TYPE КАК СТРОКА(13))<>&Состояние3) как ЗапросЗадачи
	
	 	| СГРУППИРОВАТЬ ПО 
		|          ЗапросЗадачи.ID,
		|          ЗапросЗадачи.USER_ID,
       	|          ЗапросЗадачи.NAME,  
	    |          ЗапросЗадачи.LAST_NAME,  
		|          ЗапросЗадачи.USER_FIO,  
		|          ЗапросЗадачи.Status_Task,
        |          ЗапросЗадачи.LOGIN, 
	    |	       ЗапросЗадачи.USER_TYPE,
        |          ЗапросЗадачи.WORK_POSITION,
	    |          ЗапросЗадачи.WORK_DEPARTMENT, 
	    |          ЗапросЗадачи.WORK_COMPANY,
	    |          ЗапросЗадачи.TASK_ID,
	    |   	   ЗапросЗадачи.TITLE,
		|          ЗапросЗадачи.PRIORITY,
	    |          ЗапросЗадачи.STATUS,
	 	|          ЗапросЗадачи.DATE_START,
	    |          ЗапросЗадачи.CLOSED_DATE,
	    |          ЗапросЗадачи.START_DATE_PLAN,
        |          ЗапросЗадачи.END_DATE_PLAN,
        |          ЗапросЗадачи.CREATED_DATE, 
        |          ЗапросЗадачи.CHANGED_DATE, 
        |          ЗапросЗадачи.STATUS_CHANGED_DATE,
        |          ЗапросЗадачи.ACTIVITY_DATE,
        |          ЗапросЗадачи.DEADLINE, 
		|          ЗапросЗадачи.RESPONSIBLE_ID,
		|          ЗапросЗадачи.UF_DEPARTMENT,
	    |          ЗапросЗадачи.UF_HEAD,
	    |          ЗапросЗадачи.CREATED_BY
	//	|          ЗапросЗадачи.DESCRIPTION

     	|ОБЪЕДИНИТЬ ВСЕ 	  
		//просрочки 
		
		
	  |ВЫБРАТЬ 
	  |   ЗапросПросрочки.Status_Task,
      |   ЗапросПросрочки.ID,
	  |   ЗапросПросрочки.NAME,
	  |   ЗапросПросрочки.LAST_NAME, 
	  |   ЗапросПросрочки.LOGIN,
	  |   ЗапросПросрочки.WORK_POSITION,
	  |   ЗапросПросрочки.WORK_DEPARTMENT, 
	  |   ЗапросПросрочки.WORK_COMPANY,
	  |   ЗапросПросрочки.TASK_ID,
	  |   ЗапросПросрочки.USER_ID,
	  |   ЗапросПросрочки.USER_FIO,
	  |   ЗапросПросрочки.USER_TYPE,
	  |   ЗапросПросрочки.TITLE,
	  |   ЗапросПросрочки.PRIORITY,
	  |   ЗапросПросрочки.STATUS,
	  |   ЗапросПросрочки.DATE_START,
	  |   ЗапросПросрочки.CLOSED_DATE,
	  |   ЗапросПросрочки.START_DATE_PLAN,
      |   ЗапросПросрочки.END_DATE_PLAN,
      |   ЗапросПросрочки.CREATED_DATE, 
      |   ЗапросПросрочки.CHANGED_DATE, 
      |   ЗапросПросрочки.STATUS_CHANGED_DATE,
      |   ЗапросПросрочки.ACTIVITY_DATE,
      |   ЗапросПросрочки.DEADLINE, 
	  |   ЗапросПросрочки.RESPONSIBLE_ID,
      |   ЗапросПросрочки.UF_DEPARTMENT,
	  |   ЗапросПросрочки.UF_HEAD,
	  |   ЗапросПросрочки.CREATED_BY,
	  |   ЗапросПросрочки.IGNORE_DELAY
	  |ИЗ
 	  |(	ВЫБРАТЬ 
	  |   ""просрочки"" как Status_Task,
      |   ВЫРАЗИТЬ (b_user.ID КАК Число(10)) как ID,
	  |   ВЫРАЗИТЬ (b_user.NAME КАК СТРОКА(200)) как NAME,
	  |   ВЫРАЗИТЬ (b_user.LAST_NAME КАК СТРОКА(200)) как LAST_NAME, 
	  |   ВЫРАЗИТЬ (b_user.LOGIN КАК СТРОКА(200)) как LOGIN,
	  |   ВЫРАЗИТЬ (b_user.WORK_POSITION КАК СТРОКА(200)) как WORK_POSITION,
	  |   ВЫРАЗИТЬ (b_user.WORK_DEPARTMENT КАК СТРОКА(200)) как WORK_DEPARTMENT, 
	  |   ВЫРАЗИТЬ (b_user.WORK_COMPANY  КАК СТРОКА(200)) как WORK_COMPANY,
	  |   sk_task_delay_deadline.TASK_ID,
	  |   ВЫРАЗИТЬ (sk_task_delay_deadline.USER_ID КАК Число(10)) как USER_ID,
	  |    sk_task_delay_deadline.USER_FIO,
	  |   ВЫРАЗИТЬ (sk_task_delay_deadline.USER_TYPE КАК СТРОКА(13)) как USER_TYPE,
	  |   b_tasks.TITLE,
	  |   b_tasks.PRIORITY,
	  |   b_tasks.STATUS,
	  |   b_tasks.DATE_START,
	  |   b_tasks.CLOSED_DATE,
	  |b_tasks.START_DATE_PLAN,
      |b_tasks.END_DATE_PLAN,
      |b_tasks.CREATED_DATE, 
      |b_tasks.CHANGED_DATE, 
      |b_tasks.STATUS_CHANGED_DATE,
      |b_tasks.ACTIVITY_DATE,
      |b_tasks.DEADLINE, 
	  |b_tasks.RESPONSIBLE_ID,
      |ВЫРАЗИТЬ(Прав(""000""+СтрЗаменить(СтрЗаменить(ПОДСТРОКА(b_uts_user.UF_DEPARTMENT,12,3),"";"",""""),""}"",""""), 3) КАК СТРОКА(5)) как UF_DEPARTMENT,
	  |b_uts_iblock_5_section.UF_HEAD,
	  |b_tasks.CREATED_BY,
	  |sk_task_delay_deadline.IGNORE_DELAY
      |   	   
      |ИЗ
      |   ВнешнийИсточникДанных.Битрикс.Таблица.b_user КАК b_user
	  |    ЛЕВОЕ СОЕДИНЕНИЕ ВнешнийИсточникДанных.Битрикс.Таблица.sk_task_delay_deadline  КАК  sk_task_delay_deadline
	  |    ПО b_user.ID=sk_task_delay_deadline.USER_ID 
	  |	   ЛЕВОЕ СОЕДИНЕНИЕ ВнешнийИсточникДанных.Битрикс.Таблица.b_uts_user КАК b_uts_user
	  |	   ПО b_user.ID=b_uts_user.VALUE_ID  
      |	   ЛЕВОЕ СОЕДИНЕНИЕ ВнешнийИсточникДанных.Битрикс.Таблица.b_uts_iblock_5_section КАК  b_uts_iblock_5_section
	  |	   ПО ВЫРАЗИТЬ(Прав(""000""+СтрЗаменить(СтрЗаменить(ПОДСТРОКА(b_uts_user.UF_DEPARTMENT,12,3),"";"",""""),""}"",""""), 3) КАК СТРОКА(5))= b_uts_iblock_5_section.VALUE_ID
	
	  |    ЛЕВОЕ СОЕДИНЕНИЕ ВнешнийИсточникДанных.Битрикс.Таблица.b_tasks КАК b_tasks
	  |	   ПО b_tasks.ID=sk_task_delay_deadline.TASK_ID
      |    и b_tasks.CREATED_BY=b_uts_iblock_5_section.UF_HEAD
 
	  |ГДЕ 
	  |   b_tasks.CLOSED_DATE МЕЖДУ  НАЧАЛОПЕРИОДА(&Дата1, МЕСЯЦ) И КОНЕЦПЕРИОДА(&Дата1, МЕСЯЦ)) как ЗапросПросрочки
	  
	  
	    | СГРУППИРОВАТЬ ПО 
		|          ЗапросПросрочки.ID,
		|          ЗапросПросрочки.USER_ID,
       	|          ЗапросПросрочки.NAME,  
	    |          ЗапросПросрочки.LAST_NAME,  
		|          ЗапросПросрочки.USER_FIO,  
		|          ЗапросПросрочки.Status_Task,
        |          ЗапросПросрочки.LOGIN, 
	    |	       ЗапросПросрочки.USER_TYPE,
        |          ЗапросПросрочки.WORK_POSITION,
	    |          ЗапросПросрочки.WORK_DEPARTMENT, 
	    |          ЗапросПросрочки.WORK_COMPANY,
	    |          ЗапросПросрочки.TASK_ID,
	    |   	   ЗапросПросрочки.TITLE,
	    |          ЗапросПросрочки.PRIORITY,
	    |          ЗапросПросрочки.STATUS,
	 	|          ЗапросПросрочки.DATE_START,
	    |          ЗапросПросрочки.CLOSED_DATE,
	    |          ЗапросПросрочки.START_DATE_PLAN,
        |          ЗапросПросрочки.END_DATE_PLAN,
        |          ЗапросПросрочки.CREATED_DATE, 
        |          ЗапросПросрочки.CHANGED_DATE, 
        |          ЗапросПросрочки.STATUS_CHANGED_DATE,
        |          ЗапросПросрочки.ACTIVITY_DATE,
        |          ЗапросПросрочки.DEADLINE, 
		|          ЗапросПросрочки.RESPONSIBLE_ID,
		|          ЗапросПросрочки.UF_DEPARTMENT,
	    |          ЗапросПросрочки.UF_HEAD,
	    |          ЗапросПросрочки.CREATED_BY,
	    |          ЗапросПросрочки.IGNORE_DELAY
	
    
     	|");
Показать


но вылетает
по причине:
Ошибка выполнения запроса
по причине:
Ошибка внешней базы данных:
ошибка при выполнении запроса
по причине:
Ошибка ODBC. SQLSTATE: HY000
Номер ошибки: 1370
Описание: [MySQL][ODBC 8.2(a) Driver][mysqld-5.7.31-34]execute command denied to user 'Analyst'@'%' for routine 'dbalupro.REGEXP_REPLACE'


как исправить? помогите пожалуйста
6. SvetaS2014 18.01.24 12:33 Сейчас в теме
поменяла
 |	   ЛЕВОЕ СОЕДИНЕНИЕ ВнешнийИсточникДанных.Битрикс.Таблица.b_uts_iblock_5_section КАК  b_uts_iblock_5_section
	  |	   ПО ВЫРАЗИТЬ(СтрЗаменить(СтрЗаменить(ПОДСТРОКА(b_uts_user.UF_DEPARTMENT,12,3),"";"",""""),""}"","""") КАК СТРОКА(3))= ВЫРАЗИТЬ(b_uts_iblock_5_section.VALUE_ID КАК СТРОКА(3))

так как b_uts_iblock_5_section.VALUE_ID -число
ошибка
Несовместимые типы "ВЫРАЗИТЬ"
ПО ВЫРАЗИТЬ (СтрЗаменить(СтрЗаменить(ПОДСТРОКА(b_uts_user.UF_DEPARTMENT,12,3),";",""),"}","") КАК СТРОКА(3))= <<?>>ВЫРАЗИТЬ(b_uts_iblock_5_section.VALUE_ID КАК СТРОКА(3))


не могу понять в чем причина
7. SvetaS2014 18.01.24 12:50 Сейчас в теме
заменила
	  |	   ЛЕВОЕ СОЕДИНЕНИЕ ВнешнийИсточникДанных.Битрикс.Таблица.b_uts_iblock_5_section КАК  b_uts_iblock_5_section
	  |     ПО b_uts_iblock_5_section.VALUE_ID в (ВЫРАЗИТЬ (b_uts_user.UF_DEPARTMENT КАК СТРОКА(100)))
тоже ошибка
Ошибка выполнения запроса
по причине:
Ошибка внешней базы данных:
ошибка при выполнении запроса
по причине:
Ошибка ODBC. SQLSTATE: HY000
Номер ошибки: 1370
Описание: [MySQL][ODBC 8.2(a) Driver][mysqld-5.7.31-34]execute command denied to user 'Analyst'@'%' for routine 'dbalupro.REGEXP_REPLACE'
8. SvetaS2014 18.01.24 13:01 Сейчас в теме
заменила
 ПО (ВЫРАЗИТЬ (b_uts_iblock_5_section.VALUE_ID КАК СТРОКА(100)) подобно (ВЫРАЗИТЬ (b_uts_user.UF_DEPARTMENT КАК СТРОКА(100)))
ошибка
по причине:
{(70, 9)}: Несовместимые типы "ВЫРАЗИТЬ"
ПО (<<?>>ВЫРАЗИТЬ (b_uts_iblock_5_section.VALUE_ID КАК СТРОКА(100))) подобно (ВЫРАЗИТЬ (b_uts_user.UF_DEPARTMENT КАК СТРОКА(100)))


т.е. обработать строковыми функциями - ошибка , в списке - ошибка, подобно - ошибка.
Кто знает как правильно обратиться?
9. SvetaS2014 18.01.24 13:08 Сейчас в теме
вариант
 |	   ЛЕВОЕ СОЕДИНЕНИЕ ВнешнийИсточникДанных.Битрикс.Таблица.b_uts_iblock_5_section КАК  b_uts_iblock_5_section
	  |	   ПО ВЫРАЗИТЬ (СтрЗаменить(СтрЗаменить(ПОДСТРОКА(b_uts_user.UF_DEPARTMENT,12,3),"";"",""""),""}"","""") КАК СТРОКА(3))=  ВЫРАЗИТЬ(b_uts_iblock_5_section.VALUE_ID КАК СТРОКА(3))
	  
ошибка
Ошибка исполнения отчета
по причине:
Ошибка при выполнении обработчика - 'ПриКомпоновкеРезультата'
по причине:
{Отчет.Отчет1.МодульОбъекта(276)}: Ошибка при вызове метода контекста (Выполнить)

по причине:
{(70, 116)}: Несовместимые типы "ВЫРАЗИТЬ"
ПО ВЫРАЗИТЬ (СтрЗаменить(СтрЗаменить(ПОДСТРОКА(b_uts_user.UF_DEPARTMENT,12,3),";",""),"}","") КАК СТРОКА(3))= <<?>>ВЫРАЗИТЬ(b_uts_iblock_5_section.VALUE_ID КАК СТРОКА(3))
10. SvetaS2014 18.01.24 13:22 Сейчас в теме
Said-We можете еще что-нибудь подсказать. Заранее спасибо
11. SvetaS2014 18.01.24 13:32 Сейчас в теме
вариант
 ПО ВЫРАЗИТЬ(Прав(""000""+СтрЗаменить(СтрЗаменить(ПОДСТРОКА(b_uts_user.UF_DEPARTMENT,12,3),"";"",""""),""}"",""""), 3) КАК СТРОКА(5))= b_uts_iblock_5_section.VALUE_ID
даёт ошибку
о причине:
Ошибка выполнения запроса
по причине:
Ошибка внешней базы данных:
ошибка при выполнении запроса
по причине:
Ошибка ODBC. SQLSTATE: HY000
Номер ошибки: 1370
Описание: [MySQL][ODBC 8.2(a) Driver][mysqld-5.7.31-34]execute command denied to user 'Analyst'@'%' for routine 'dbalupro.REGEXP_REPLACE'


помогите, пожалуйста - как исправить
12. SvetaS2014 18.01.24 13:35 Сейчас в теме
вариант
 ПО ВЫРАЗИТЬ(Прав(""000""+СтрЗаменить(СтрЗаменить(ПОДСТРОКА(b_uts_user.UF_DEPARTMENT,12,3),"";"",""""),""}"",""""), 3) КАК Число(5))= b_uts_iblock_5_section.VALUE_ID
даёт ошибку
Ошибка исполнения отчета
по причине:
Ошибка при выполнении обработчика - 'ПриКомпоновкеРезультата'
по причине:
{Отчет.Отчет1.МодульОбъекта(276)}: Ошибка при вызове метода контекста (Выполнить)

по причине:
{(70, 8)}: Несовместимые типы "ВЫРАЗИТЬ"
ПО <<?>>ВЫРАЗИТЬ(Прав("000"+СтрЗаменить(СтрЗаменить(ПОДСТРОКА(b_uts_user.UF_DEPARTMENT,12,3),";",""),"}",""), 3) КАК Число(5))= b_uts_iblock_5_section.VALUE_ID
13. SvetaS2014 18.01.24 13:47 Сейчас в теме
код
	  |	   ЛЕВОЕ СОЕДИНЕНИЕ ВнешнийИсточникДанных.Битрикс.Таблица.b_uts_iblock_5_section КАК  b_uts_iblock_5_section
	  |     ПО ВЫРАЗИТЬ(Прав(""000""+СтрЗаменить(СтрЗаменить(ПОДСТРОКА(b_uts_user.UF_DEPARTMENT,12,3),"";"",""""),""}"",""""), 3) КАК СТРОКА(5)) подобно ВЫРАЗИТЬ(b_uts_iblock_5_section.VALUE_ID  КАК СТРОКА(5))   
даёт ошибку [IS-QUOTE][по причине:
{(70, 137)}: Несовместимые типы "ВЫРАЗИТЬ"
ПО ВЫРАЗИТЬ(Прав("000"+СтрЗаменить(СтрЗаменить(ПОДСТРОКА(b_uts_user.UF_DEPARTMENT,12,3),";",""),"}",""), 3) КАК СТРОКА(5)) подобно <<?>>ВЫРАЗИТЬ(b_uts_iblock_5_section.VALUE_ID КАК СТРОКА(5))
/QUOTE]
14. Said-We 18.01.24 14:33 Сейчас в теме
Может так?
Выразить не работает для преобразования типов. Написал в самом начале.
Выразить, это когда составной тип и надо привести только к одному из уже имеющихся в поле типу. Это не преобразование типа. Или строку(100) преобразовать к строке(50) - по сути тип тот же, но другая размерность.
cast() нет в 1С и не ожидается. Почему тоже написал. Есть только Строка() и только начиная с определенных версий платформы. Ссылку по языку запросов и изменениях тоже указал. Релиз примерно 8.3.20, когда это дело появилось.
Смотреть ещё режим совместимости в конфигурации.
ВЫРАЗИТЬ( Строка(b_uts_iblock_5_section.VALUE_ID) КАК СТРОКА(3))
Почему строка 5, а не 3.
Или просто:
Строка(b_uts_iblock_5_section.VALUE_ID)
Прикрепленные файлы:
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот