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

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

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(ВТ_РаботникиОрганизации.Сотрудник, ВТ_ТЗ.СотрудникНаименование) КАК Сотрудник
|ИЗ
| ВТ_ТЗ КАК ВТ_ТЗ
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_РаботникиОрганизации КАК ВТ_РаботникиОрганизации
| ПО (ВТ_РаботникиОрганизации.СотрудникНаименование ПОДОБНО ВТ_ТЗ.СотрудникНаименование)
| И (ВТ_РаботникиОрганизации.СотрудникКод ПОДОБНО ВТ_ТЗ.СотрудникКод)";

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


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

СМОТРЕТЬ >>


Оффлайн vitasw

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

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

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

Онлайн LexaK

  • *****
  • Сообщений: 1212
  • РЕПУТАЦИЯ: 333
  • КПД: 27%
  • Регистрация: 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

  • *****
  • Сообщений: 1212
  • РЕПУТАЦИЯ: 333
  • КПД: 27%
  • Регистрация: 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
Просмотров: 10007
Последний ответ 14 Июн 2012, 17:44
от Alex1111
При входе в информационную базу выдаёт Невосстановимую ошибку: Ошибка при выполнении запроса POST к ресурсу /e1cib/misc

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

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

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

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

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

Ответов: 5
Просмотров: 3745
Последний ответ 14 Ноя 2010, 13:42
от progmikon
Передача Выборки из результатов запроса с сервера на клиент в управляемом прил-и

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

Ответов: 11
Просмотров: 14492
Последний ответ 29 Май 2014, 13:43
от FeliceYa

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
96 Сообщений
Dethmontt Dethmontt
69 Сообщений
alex0402
66 Сообщений
wise wise
63 Сообщений
MuI_I_Ika MuI_I_Ika
61 Сообщений
ilyay ilyay
41 Сообщений
Сергей Федоров Сергей Федоров
34 Сообщений
magnifico61
23 Сообщений
ilnur75
21 Сообщений
BuhRust
21 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal