Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
25 Июл 2017, 03:33
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: "ПОДОБНО" в условие связи запроса  (Прочитано 2214 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Станиславъ Зверевъ

  • *
  • Сообщений: 6
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-11-17
  • Сайт: 
Всем привет! Уже второй день не могу разобраться с тем, почему внешняя таблица значений не связываются по условию ПОДОБНО с виртуальной, хотя при аналогичном запросе в консоли всё отрабатывается правильно. Все нужные записи по регистру находятся, если посмотреть через полное соединение, но нет именно самой связи. Прилагаю ниже код. Кто сможет помочь?

       
ТЗЗапрос = ТЗДоки.Скопировать();
        Для Каждого СтрокаТЗЗапрос ИЗ ТЗЗапрос Цикл
СтрокаТЗЗапрос.Сотрудник = "%" + СокрЛП(СтрокаТЗЗапрос.Сотрудник) + "%";
СтрокаТЗЗапрос.СотрудникКод = "%" + СокрЛП(СтрокаТЗЗапрос.СотрудникКод) + "%";
КонецЦикла;

Запрос.УстановитьПараметр("ДатаК", КонецМесяца(НачПериода));
Запрос.УстановитьПараметр("ТаблицаЗначений", ТЗЗапрос);

Запрос.Текст =
"ВЫБРАТЬ
| ВЫРАЗИТЬ(ТЗ.Сотрудник КАК СТРОКА(100)) КАК СотрудникНаименование,
| ВЫРАЗИТЬ(ТЗ.СотрудникКод КАК СТРОКА(11)) КАК СотрудникКод,
| ТЗ.ОтработаноДней,
| ТЗ.ОтработаноЧасов,
| ТЗ.ОплаченоДнейЧасов,
| ТЗ.НормаДней,
| ТЗ.НормаЧасов,
| ТЗ.СуммаТП8,
| ТЗ.ВидЗарплаты
|ПОМЕСТИТЬ ВТ_ТЗ
|ИЗ
| &ТаблицаЗначений КАК ТЗ
|ГДЕ
| ТЗ.Загрузить = ИСТИНА
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВЫБОР
| КОГДА РаботникиОрганизацийСрезПоследних.ПериодЗавершения <= &ДатаК
| И РаботникиОрганизацийСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| ТОГДА РаботникиОрганизацийСрезПоследних.ПериодЗавершения
| ИНАЧЕ РаботникиОрганизацийСрезПоследних.Период
| КОНЕЦ КАК Период,
| ВЫБОР
| КОГДА РаботникиОрганизацийСрезПоследних.ПериодЗавершения <= &ДатаК
| И РаботникиОрганизацийСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| ТОГДА РаботникиОрганизацийСрезПоследних.ДолжностьЗавершения
| ИНАЧЕ РаботникиОрганизацийСрезПоследних.Должность
| КОНЕЦ КАК Должность,
| ВЫБОР
| КОГДА РаботникиОрганизацийСрезПоследних.ПериодЗавершения <= &ДатаК
| И РаботникиОрганизацийСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| ТОГДА РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизацииЗавершения
| ИНАЧЕ РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации
| КОНЕЦ КАК ПодразделениеОрганизации,
| ВЫБОР
| КОГДА РаботникиОрганизацийСрезПоследних.ПериодЗавершения <= &ДатаК
| И РаботникиОрганизацийСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1)
| ТОГДА РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостоянияЗавершения
| ИНАЧЕ РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния
| КОНЕЦ КАК ПричинаИзмененияСостояния,
| РаботникиОрганизацийСрезПоследних.Сотрудник.Наименование КАК СотрудникНаименование,
| РаботникиОрганизацийСрезПоследних.Сотрудник.Код КАК СотрудникКод,
| РаботникиОрганизацийСрезПоследних.Сотрудник
|ПОМЕСТИТЬ ВТ_РаботникиОрганизации
|ИЗ
| РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ДатаК, ) КАК РаботникиОрганизацийСрезПоследних
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТ_РаботникиОрганизации.Период,
| ВТ_РаботникиОрганизации.Должность,
| ВТ_РаботникиОрганизации.ПричинаИзмененияСостояния,
| ВТ_РаботникиОрганизации.ПодразделениеОрганизации,
| ВТ_ТЗ.ОтработаноДней,
| ВТ_ТЗ.ОтработаноЧасов,
| ВТ_ТЗ.ОплаченоДнейЧасов,
| ВТ_ТЗ.НормаДней,
| ВТ_ТЗ.НормаЧасов,
| ВТ_ТЗ.СуммаТП8 КАК Результат,
| ВЫБОР
| КОГДА НЕ ВТ_РаботникиОрганизации.Сотрудник ЕСТЬ NULL
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК СотрудникНайден,
| ВТ_ТЗ.ВидЗарплаты,
| ЕСТЬNULL(ВТ_РаботникиОрганизации.Сотрудник, ВТ_ТЗ.СотрудникНаименование) КАК Сотрудник
|ИЗ
| ВТ_ТЗ КАК ВТ_ТЗ
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_РаботникиОрганизации КАК ВТ_РаботникиОрганизации
| ПО (ВТ_РаботникиОрганизации.СотрудникНаименование ПОДОБНО ВТ_ТЗ.СотрудникНаименование)
| И (ВТ_РаботникиОрганизации.СотрудникКод ПОДОБНО ВТ_ТЗ.СотрудникКод)";

ВыборкаСотрудники = Запрос.Выполнить().Выбрать();



Оффлайн vitasw

  • *****
  • Сообщений: 2546
  • РЕПУТАЦИЯ: 309
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Какие длины строк у ТЗ перед помещением в запрос?

Оффлайн Станиславъ Зверевъ

  • *
  • Сообщений: 6
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-11-17
  • Сайт: 
vitasw, 100 и 11 соответственно. Уже проверил, что все символы помещаются.

Оффлайн LexaK

  • *****
  • Сообщений: 1246
  • РЕПУТАЦИЯ: 344
  • КПД: 28%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
а зачем вы по Подобно что-то связываете?
у вас же есть Сотрудник это ссылочный элемент!!!
делайте однозначную связь по ссылке! и у вас все отлично получится! 
Помогло? - Нажми СПАСИБО!!!
                       :)

Оффлайн Станиславъ Зверевъ

  • *
  • Сообщений: 6
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-11-17
  • Сайт: 
LexaK, нет, у меня есть только таблица с наименованием сотрудника и его кодом, которая получается из другой базы через веб-сервис. Код может иметь префикс, поэтому и используется подобно. И поэтому нужно искать только по наименованию коду. Мне нужно на основании этих наименований получить ссылку на сотрудника.

Оффлайн vitasw

  • *****
  • Сообщений: 2546
  • РЕПУТАЦИЯ: 309
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
100 и 11 соответственно. Уже проверил, что все символы помещаются.

т.е. у вас в источнике наименование=98 символов, а код - 9 символов?

Оффлайн Станиславъ Зверевъ

  • *
  • Сообщений: 6
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-11-17
  • Сайт: 
vitasw, код - 9, а наименование 100. С наименованием тоже может быть проблема (лучше сделать 102, верно), но не в этом случае, так как пока строки больше 40 символов не попадались.

Оффлайн vitasw

  • *****
  • Сообщений: 2546
  • РЕПУТАЦИЯ: 309
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
1. Советую убрать "Выразить ... как строка" в запросе
2. Если у вас при создании ТЗ жестко задается длина строки - тоже уберите.

Оффлайн LexaK

  • *****
  • Сообщений: 1246
  • РЕПУТАЦИЯ: 344
  • КПД: 28%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
вообще по подобно так ссылки искать не очень хорошо
например у вас ТЗ код = "103"
при вашем подобно
Спр.Код Подобно "%103%"

будут найдены и
"...1103..."
"...103"
"...1031..."
и т.д.

если у вас может быть / не быть префикса еще надо учитывать лидирующие нули
например код
"ПР01-0000103"
"ПР01-0001103"

 
в этом случае что бы найти Код="103"
необходима такая конструкция в запросе

Спр.Код Подобно "%[^1-9][^1-9][^1-9]" + СтрокТЗ.СотрудникКод

многое конечно зависит от ваших реальных данных, которые мы не видим, возможна куча вариантов для решения, такой задачи.
в общем без программиста вам не обойтись :fdbsdfbsd:   

Помогло? - Нажми СПАСИБО!!!
                       :)


Теги:
 

Из запроса не выводятся значения полей - выводятся пустые значения

Автор Alex1111Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 24
Просмотров: 10668
Последний ответ 14 Июн 2012, 17:44
от Alex1111
Возможно ли языком запросов без конкатенации текста запроса и без СКД преобразовать строки таблицы в столбцы (колонки) выходной таблицы?

Автор acces969Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 209
Последний ответ 29 Май 2017, 15:29
от alex0402
При входе в информационную базу выдаёт Невосстановимую ошибку: Ошибка при выполнении запроса POST к ресурсу /e1cib/misc

Автор katfilatРаздел Пользователям "1С - Предприятие 8"

Ответов: 5
Просмотров: 8331
Последний ответ 02 Ноя 2015, 11:03
от дфтын
Как внести результат запроса в табличную часть Товары (1С82 обычная форма)

Автор d1maРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 1159
Последний ответ 03 Авг 2016, 12:09
от d1ma
Сдвинулись поля ввода параметров виртуальной таблицы в конструкторе запроса(8.2)

Автор HakenРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 5
Просмотров: 3918
Последний ответ 14 Ноя 2010, 13:42
от progmikon

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

alex0402
91 Сообщений
oleg-x
83 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
67 Сообщений
Golickoff Golickoff
51 Сообщений
ilyay ilyay
44 Сообщений
AIFrame
42 Сообщений
Амал
30 Сообщений
lansy
22 Сообщений
Dethmontt Dethmontt
22 Сообщений
xproh
21 Сообщений

* Кто онлайн

  • Точка Гостей: 147
  • Точка Скрытых: 0
  • Точка Пользователей: 8
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal