Имя: Пароль:
1C
 
Выгрузить колонку
,
0 Vvvvv
 
09.09.14
11:56
Подскажите по быстрому,
УФ, модуль объекта, обработка проведения
Почитал, оказывается в модуле объекта нельзя нельзя использовать ВыгрузитьКолонку()

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


как мне заменить строку:
Запрос.УстановитьПараметр("Номенклатура", СписокНоменклатуры.ВыгрузитьКолонку("Номенклатура"));

неужели нужно использовать цикл?
1 Любопытная
 
09.09.14
11:58
Где такое пишут, что в модуле объекта колонку выгрузить нельзя? Или у тебя СписокНоменклатуры к объекту отношения не имеет?
2 salvator
 
09.09.14
11:58
Ты хочешь элемент номенклатуры в запросе приравнять к массиву?
3 Vvvvv
 
09.09.14
12:02
я использовал эту конструкцию один раз и на обычных формах, насколько я помню, она работала:
Запрос.УстановитьПараметр("Номенклатура", СписокНоменклатуры.ВыгрузитьКолонку("Номенклатура"));
4 Любопытная
 
09.09.14
12:04
(3) ОстаткиНоменклатурыНаСкладахОстатки.Номенклатура = &Номенклатура ВОт здесь вместо "=" должно быть В(&Номенклатура) Если ты хочешь пользовать массив. Кроме того, параметры указываются в параметрах виртуальной таблицы, конструкцию ГДЕ использовать неправильно.
Ну и ты не ответил, где же написано, что колонку в модуле объекта выгружать нельзя
5 Рэйв
 
09.09.14
12:04
(3)>>И ОстаткиНоменклатурыНаСкладахОстатки.Номенклатура = &Номенклатура

Угадай сколько строк будет в результате запроса если ты ее всетаки выгрузишь.
6 Рэйв
 
09.09.14
12:05
(4)Опередила:-)
7 Лодырь
 
09.09.14
12:05
(0) Напиши приличный запрос и не пугай окружающих.
8 Kamas
 
09.09.14
12:07
(0)  меня одного волнует этот загадочный "СписокНоменклатуры" Что За Тип
9 DCKiller
 
09.09.14
12:07
(0) За такие запросы морду бить надо...
10 Vvvvv
 
09.09.14
12:07
11 Любопытная
 
09.09.14
12:08
(10) между "модуль объекта" и "на клиенте" разницу чувствуешь?
12 Vvvvv
 
09.09.14
12:08
(8) "СписокНоменклатуры" - табличная часть
13 DCKiller
 
09.09.14
12:09
(8) по-видимому, ТЧ документа... Я так думаю (с)
14 Maxus43
 
09.09.14
12:12
ну дык РеквизитФормыВЗначение(<ИмяРеквизита>, <Тип>)
15 Kamas
 
09.09.14
12:13
(14) Это по моему не сюда))
16 Vvvvv
 
09.09.14
12:13
(9) а какие запросы должны быть? Чем плох?
17 Kamas
 
09.09.14
12:14
(12) тады должно работать в запросе только = на "в" поменять как уже писали выше
18 Maxus43
 
09.09.14
12:14
Объект.СписокНоменклатуры.ВыгрузиьтКолонку()?

короче с типами разберитесь господа
19 Vvvvv
 
09.09.14
12:14
(5) Я тебя правильно понял, ты говоришь, что бы цикл использовать?
20 Kamas
 
09.09.14
12:15
(16) за ГДЕ
21 Любопытная
 
09.09.14
12:15
Меня игнорируют потому что я женщина?
22 DCKiller
 
09.09.14
12:15
(16) 1. Условия по измерениям ВТ регистра передаются в описании параметров ВТ в скобках, а не в "ГДЕ".
2. СписокНоменклатуры - к этой ТЧ тоже лучше сделать запрос, чтобы фильтровать записи регистра.
3. И нафига у тебя там МВТ? Вообще непонятно зачем.
23 Maxus43
 
09.09.14
12:16
(15) да, обработка проведения же
24 Рэйв
 
09.09.14
12:16
(19)Я тебе говорил про "=" вместо "В" :-)

Если это действительно таб чать, а не плод твоего воображения, то .выгрузитьКолонку() должно нормально работать.
25 Maxus43
 
09.09.14
12:17
если это Таб часть и обработка проведения - то и параметром не надо передавать, соединяй с ТЧ этого документа
26 Vvvvv
 
09.09.14
12:17
(21) нет, ну что ты! Твой совет помог, спасибо!
27 Kamas
 
09.09.14
12:18
(21) просто тс силится вспомнить где он читал такое ))
28 Любопытная
 
09.09.14
12:18
(26) Тогда вот тебе еще совет: выкинь эту колонку нафиг, запросом получи таб часть документа, положи ее в ВТ, и потом используй эту ВТ для того, чтобы сделать отбор в остатках регистра
29 Лодырь
 
09.09.14
12:20
(28) А почему сразу не получить запросом остатки? Зачем ВТ?
30 Vvvvv
 
09.09.14
12:21
(28) только мне все равно придется делать отбор по номенклатуре. Либо через ВыгрузитьКолонку() или через цикл, для каждой строки ТЧ
31 Рэйв
 
09.09.14
12:22
(30)0_о ...
Нахрена?
32 Любопытная
 
09.09.14
12:23
"ВЫБРАТЬ
    СписокНоменклатуры.Номенклатура,
    СПисокНоменклатуры.Количество,
    СписокНоменклатуры.Ссылка.Склад КАК Склад
        Поместить ВТ_СписокНоменклатуры
    Из Документ.РасходнаяНакладная.СписокНоменклатуры КАК СписокНоменклатуры
        Где СписокНоменклатуры.Ссылка = &Ссылка
    ;
//////////////////////////////////
Выбрать
    ОстаткиНоменклатурыНаСкладахОстатки.Номенклатура,
    ОстаткиНоменклатурыНаСкладахОстатки.Склад,
    ОстаткиНоменклатурыНаСкладахОстатки.КоличествоОстаток
      ИЗ
    РегистрНакопления.ОстаткиНоменклатурыНаСкладах.Остатки((Номенклатура, Склад) В (Выбрать Вт.Номенклатура, ВТ.Склад Из ВТ_СписокНоменклатуры КАК ВТ)) КАК ОстаткиНоменклатурыНаСкладахОстатки"


Примерно вот так
33 Vvvvv
 
09.09.14
12:23
(31) а как отбор по номенклатуре делать???
34 DCKiller
 
09.09.14
12:23
(31) Ну что ты, фильтр в запросе - это же так просто! Это для слабаков. Автор не ищет легких путей.
35 Рэйв
 
09.09.14
12:23
(33)как в (32)
36 Любопытная
 
09.09.14
12:23
(29)Потому что некрасиво соединять остатки и ТЧ документа. Нехорошо это. Опять же, в вт можно строки сгруппировать, вдруг там сто строк с одной номенклатурой
37 Лодырь
 
10.09.14
06:05
(36) Позанудствую, чем нехорошо? и зачем раздувать таблицу за счет колонки склад содержащей везде одно значение?