Имя: Пароль:
1C
1С v8
Добавление строк в ТЧ
0 prilforreal
 
05.06.18
11:47
Доброго дня!
При нажатии кнопки:

Стр = ЭтотОбъект.ТабличнаяЧасть1.Добавить();    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Пользователи.Ответственный
        |ИЗ
        |    Справочник.Пользователи КАК Пользователи";
    
    Рез=Запрос.Выполнить().Выбрать();
    Пока Рез.Следующий() Цикл
    Стр.Сотрудник=Рез.Ответственный;
    КонецЦикла;

Вместо заполнения табличной части списком пользователей добавляется только одна пустая строка, помогите найти ошибку.
1 yavasya
 
05.06.18
11:48
Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Пользователи.Ответственный
        |ИЗ
        |    Справочник.Пользователи КАК Пользователи";
    
    Рез=Запрос.Выполнить().Выбрать();
    Пока Рез.Следующий() Цикл
Стр = ЭтотОбъект.ТабличнаяЧасть1.Добавить();  
    Стр.Сотрудник=Рез.Ответственный;
    КонецЦикла;
2 prilforreal
 
05.06.18
11:50
(1) Спасибо, странно, не думал что это будут роль играть!)
3 prilforreal
 
05.06.18
12:01
(1) А с условием подскажете? не ладится что то...

Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Пользователи.Ответственный,
        |    Пользователи.Ответственный.Напарник
        |ИЗ
        |    Справочник.Пользователи КАК Пользователи
        |ГДЕ
        |    Пользователи.Ответственный.Наименование ПОДОБНО &Производство
        |    И НЕ Пользователи.Наименование ПОДОБНО &Ростов";
    
    
    Рез=Запрос.Выполнить().Выбрать();
    Пока Рез.Следующий() Цикл
Стр = ЭтотОбъект.ТабличнаяЧасть1.Добавить();  
Стр.Сотрудник=Рез.Ответственный;
Стр = ЭтотОбъект.ТабличнаяЧасть1.Добавить();  
Стр.Сотрудник=Рез.ОтветственныйНапарник;
    КонецЦикла;


{(7, 50)}: Не задано значение параметра "Производство"
Пользователи.Ответственный.Наименование ПОДОБНО <<?>>&Производство
4 1Сергей
 
05.06.18
12:05
(3) ты студент или как? это базовые вопросы. решаются быстрым поиском в синтаксис-помощнике. Не нужно даже гуглить и книжки читать
5 Гипервизор
 
05.06.18
12:05
(3) Что подсказать? Ясно же написано. Задайте значение параметра "Производство".
6 lubitelxml
 
05.06.18
12:06
(3) ты в запрос передаешь параметры, но не устанавливаешь их.
7 Cool_Profi
 
05.06.18
12:06
(2) хм... Не думал, что ДобавитьСтроку() не имеет места быть? ))))
8 Boleev
 
05.06.18
12:07
Маня наконец-то нашел себе напарника.
9 prilforreal
 
05.06.18
12:10
Сделал так, но строки не появляются

Производство="Производство";
Ростов="Ростов";
Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Пользователи.Ответственный,
        |    Пользователи.Ответственный.Напарник
        |ИЗ
        |    Справочник.Пользователи КАК Пользователи
        |ГДЕ
        |    Пользователи.Ответственный.Наименование ПОДОБНО &Производство
        |    И НЕ Пользователи.Наименование ПОДОБНО &Ростов";
    
    Запрос.УстановитьПараметр("Производство", Производство);
    Запрос.УстановитьПараметр("Ростов", Ростов);
    Рез=Запрос.Выполнить().Выбрать();
    Пока Рез.Следующий() Цикл
Стр = ЭтотОбъект.ТабличнаяЧасть1.Добавить();  
Стр.Сотрудник=Рез.Ответственный;
Стр = ЭтотОбъект.ТабличнаяЧасть1.Добавить();  
Стр.Сотрудник=Рез.ОтветственныйНапарник;
    КонецЦикла;
10 hhhh
 
05.06.18
12:12
(9) проверь тип поля Сотрудник. действительно это справочник Пользователи?
11 Гипервизор
 
05.06.18
12:16
(9)
Почему используете ПОДОБНО, а не = ?
У вас нестрогое равенство? Тогда забыли %%.
12 SleepyHead
 
гуру
05.06.18
12:19
Производство = "%Производство";
13 SleepyHead
 
гуру
05.06.18
12:20
+12 и в конце %
14 prilforreal
 
05.06.18
12:21
(10) Сотрудник это справочник контрагенты, а в справочники пользователи есть ссылка на него в поле ответственный. (11) Да, не строгое равенство, нужен аналог содежит.
15 hhhh
 
05.06.18
12:24
(14) а ты что лепишь?

Стр.Сотрудник=Рез.Ответственный;

бред какой-то
16 prilforreal
 
05.06.18
12:25
(15) Бред работает, условие не работает только, пока не пойму почему
17 1Сергей
 
05.06.18
12:29
(16) думай, ещё думай
18 hhhh
 
05.06.18
12:30
(16) ну значит с ПОДОБНО чего-то накосячил

а работает вот это у тебя

Стр.Сотрудник=Рез.ОтветственныйНапарник;
19 Гипервизор
 
05.06.18
12:30
(16) Ответили уже в (13)
Или вы только на готовый код реагируете?
20 prilforreal
 
05.06.18
12:42
(19) Я пытался так, не помогает.

Для ясности поясню условие, Пользователь должен содержать "Производство" и не должен содержать "Ростов", то есть туда должны попасть пользователи Производство1, Производство2, итд
21 prilforreal
 
05.06.18
12:43
Есть пользователи ПроизводствоРостов, их отбраковываем
22 catena
 
05.06.18
12:45
(20) подобно "%производство%" и не подобно "%ростов%"
23 catena
 
05.06.18
12:46
Просто интересно, как нужно пытаться, чтобы тут не получилось
24 Гипервизор
 
05.06.18
12:46
(21) Готовый код "попытки" покажите.
И почему у вас в первом условии " Пользователи.Ответственный.Наименование", а во втором " Пользователи.Наименование"
25 prilforreal
 
05.06.18
13:03
Похоже понял, c таким кодом заработало)

Процедура Кнопка1Нажатие(Элемент)
Производство="%Производство%";
Ростов="%Ростов%";
Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Пользователи.Ответственный,
        |    Пользователи.Ответственный.Напарник
        |ИЗ
        |    Справочник.Пользователи КАК Пользователи
        |ГДЕ
        |    Пользователи.Наименование ПОДОБНО ""%Производство%""
        |    И НЕ Пользователи.Наименование ПОДОБНО ""%Ростов%""
        |    И Пользователи.Код <> 2
        |    И Пользователи.Ответственный > 0";
    
    Запрос.УстановитьПараметр("Производство", Производство);
    Запрос.УстановитьПараметр("Ростов", Ростов);
    Рез=Запрос.Выполнить().Выбрать();
    Пока Рез.Следующий() Цикл
Стр = ЭтотОбъект.ТабличнаяЧасть1.Добавить();  
Стр.Сотрудник=Рез.Ответственный;
Стр.Статус=Перечисления.СтатусВР.Вешал;
Стр = ЭтотОбъект.ТабличнаяЧасть1.Добавить();  
Стр.Сотрудник=Рез.ОтветственныйНапарник;
Стр.Статус=Перечисления.СтатусВР.Вешал;
    КонецЦикла;
26 prilforreal
 
05.06.18
13:03
(24) Ошибка то была, внимательнее буду!
27 Ёпрст
 
05.06.18
13:08
(25)

И Пользователи.Ответственный > 0

А чего, Ответственный, это у вас числовой реквизит ?
28 hhhh
 
05.06.18
13:09
(26) Пользователи.Ответственный > 0

вы вроде на предыдущем допросе говорили что это справочник контрагенты. Как он может быть больше нуля?
29 Гипервизор
 
05.06.18
13:13
Статус сотрудника - "Вешал".
Сурово как.
30 Ёпрст
 
05.06.18
13:18
(26) ну и делать 2 строки ТЧ, заместо одной, это тоже не правильный мЁд
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой