|
Вывод результата запроса в табличную часть | ☑ | ||
---|---|---|---|---|
0
amadeus2010
13.04.12
✎
08:44
|
Доброе утро всем, имеется табличная Рейсы с колонкой список рейсов.Тип значений табличной части-Таблица значений. Создал такой запрос.Теперь как можно вывести результат запроса в колонку табличной части.
Запрос=Новый Запрос; Запрос.Текст= "ВЫБРАТЬ |Рейс.Ссылка |ИЗ |Документ.Рейс КАК Рейс |ГДЕ Рейс.Состояние=&РейсВпути"; Запрос.УстановитьПараметр("РейсВПути",Документы.Рейс.Ссылка); Результат=Запрос.Выполнить().Выгрузить(); ТаблицаЗначений=Новый ТаблицаЗначений; Для Каждого Строка из ЭлементыФормы.Рейсы.Колонки.СписокРейсов Цикл НоваяСтрока=ТаблицаЗначений.Добавить(); НоваяСтрока[Строка.СписокРейсов]= ЭлементыФормы.Рейсы.Колонки.СписокРейсов; КонецЦикла; ТаблицаЗначений=Результат; При компиляции выдается следующая ошибка {Обработка.ЗакрытиеРейсов.Форма.ЗакрытиеРейсов(32,24)}: Переменная не определена (СписокРейсов) Для Каждого Строка Из <<?>>СписокРейсов Цикл прошу помощи |
|||
1
butterbean
13.04.12
✎
08:49
|
не сохранил небось
|
|||
2
ASU_Diamond
13.04.12
✎
08:50
|
собсно а причём тут запрос?
|
|||
3
Rizhij_Nikitos
13.04.12
✎
08:50
|
(0) у тебя сам цикл неправильно устроен.
|
|||
4
butterbean
13.04.12
✎
08:50
|
хотя тут все как-то странно
|
|||
5
Rizhij_Nikitos
13.04.12
✎
08:51
|
ЗАпрос нормально, не понятна строчка ТаблицаЗначений = Результат, эт что?
|
|||
6
Гефест
13.04.12
✎
08:51
|
Для Каждого Строка из ЭлементыФормы.Рейсы.Колонки.СписокРейсов Цикл
это что за кошмар? |
|||
7
vmv
13.04.12
✎
08:53
|
г-код детектед
|
|||
8
amadeus2010
13.04.12
✎
09:00
|
Я только начинаю программировать в 1С поэтому прошу совета у вас как у специалистов как исправить ошибку
(5) ТаблицаЗначений = Результат пытался присвоить таблице результат запроса (6) Для Каждого Строка из ЭлементыФормы.Рейсы.Колонки.СписокРейсов Цикл хотел выбрать строку из колонки табличного поля |
|||
9
Fish
13.04.12
✎
09:03
|
(8) Чтобы исправить ошибку, имхо, надо всё переписать заново :)
|
|||
10
butterbean
13.04.12
✎
09:03
|
(8) напиши Таблица =Запрос.Выполнить().Выгрузить();
и всё |
|||
11
butterbean
13.04.12
✎
09:05
|
(10)+ хотя запрос у тебя странный и нерабочий
|
|||
12
vmv
13.04.12
✎
09:05
|
(9) я бы был более категоричен, чтобы исправить ошибку - нужно родиться заново или просто прекратить примитивный троллинг
|
|||
13
Wobland
13.04.12
✎
09:06
|
(10) а чтобы потом всё это увидеть на форме, надо б ещё колонки создать у соответствующего ТП
|
|||
14
butterbean
13.04.12
✎
09:07
|
(13) до этого еще очень далеко
|
|||
15
godmod80
13.04.12
✎
09:21
|
Вопще кусок кода бредовый, надо алгоритм пересмотреть заново, может и в ДНК покопаться)) Смотри хоть на примере типовых модулей - как реализовать решение подобной задачи
|
|||
16
le_
13.04.12
✎
09:30
|
Даешь еще 5 тем!
v8: вывод запроса в колонку табличной части |
|||
17
Rizhij_Nikitos
13.04.12
✎
09:41
|
(0) стоп Результат = Запрос.Выполнить().Выгрузить() вот тута ты уже выгрузил запрос в таблицу значений Результат. Если хочешь, чтобы не результат, а ТаблицаЗначений называлась переменная пиши сразу ТаблицаЗначений = Запрос.Выполнить.Выгрузить() и все.
|
|||
18
Rizhij_Nikitos
13.04.12
✎
09:43
|
Теперь таблицу значений чтобы выгрузить в табличное поле, дела
|
|||
19
Rizhij_Nikitos
13.04.12
✎
09:45
|
делай так,
для каждого строкаТЗ из ТаблицаЗначений цикл НоваяСтрокаТабличногоПоля = ТабличноеПоле.Добавить(); НоваяСтрока.Рейс = СтрокаТЗ.Рейс; конецЦикла; // где НоваяСтрока.Рейс = это строка со значением в колонке Рейс, а строкаТЗ.Рейс - это строка со значением в колонке рейс. ТаблицаЗначений эт название самое таблицы у тебя она Результат, если ты код не поменял.Ну примерно должно быть так. |
|||
20
Wobland
13.04.12
✎
09:46
|
(19) а не проще данные для ТП указать?
|
|||
21
amadeus2010
13.04.12
✎
09:56
|
я указал данные для ТП, сама ТП называется Рейсы, колонка СписокРейсов, тип данных=Таблицазначений, проблема заключалась в загрузке колонки ТП данными из запроса
|
|||
22
butterbean
13.04.12
✎
10:00
|
(21) проблема решилась??
|
|||
23
amadeus2010
13.04.12
✎
10:15
|
пока не решилась все равно выдает ошибку {Обработка.ЗакрытиеРейсов.Форма.ЗакрытиеРейсов(29,24)}: Переменная не определена (СписокРейсов)
Для Каждого Строка Из <<?>>СписокРейсов Цикл Хотя поменял саму процедуру на такую Запрос=Новый Запрос; Запрос.Текст= "ВЫБРАТЬ |Рейс.Ссылка |ИЗ |Документ.Рейс КАК Рейс |ГДЕ Рейс.Состояние=&РейсВпути"; Запрос.УстановитьПараметр("РейсВПути",Документы.Рейс.Ссылка); Рейсы=Запрос.Выполнить().Выгрузить(); Для Каждого строкаТЗ Из Рейсы Цикл НоваяСтрокаРейсы=Рейсы.Добавить(); НоваяСтрокаРейсы.СписокРейсов=строкаТЗ.СписокРейсов; КонецЦикла; //где Рейсы название ТП и ТаблицыЗначений, СписокРейсов имеющаяся колонка в ТП |
|||
24
le_
13.04.12
✎
10:21
|
Рейсы=Запрос.Выполнить().Выгрузить();
Генератор случайных словосочетаний поработал. |
|||
25
butterbean
13.04.12
✎
10:22
|
(23) вот это
Документы.Рейс.Ссылка что за бред?? там должно быть что-то типа перечисления наверно - тип посмотри |
|||
26
butterbean
13.04.12
✎
10:24
|
(23) какой у тебя тип колонки СписокРейсов?? ТаблицаЗначений или нет??
|
|||
27
hhhh
13.04.12
✎
10:25
|
(23) наверно, старую обработку забыл закрыть. Нажми на крестик, и запусти еще раз.
|
|||
28
amadeus2010
13.04.12
✎
10:26
|
тип колонки СписокРейсов=строка
|
|||
29
butterbean
13.04.12
✎
10:27
|
(28) О_О внезапно
|
|||
30
hhhh
13.04.12
✎
10:32
|
(28) ну вот тебе нужно из запроса взять СписокРейсов, а где у тебя в запросе это слово?
ВЫБРАТЬ |Рейс.Ссылка |ИЗ |Документ.Рейс КАК Рейс |ГДЕ Рейс.Состояние=&РейсВпути"; вот твой запрос, слова списокрейсов в упор не вижу. Тут ссылка какая-то. |
|||
31
amadeus2010
13.04.12
✎
10:47
|
запрос отбирает все рейсы чье состояние= в пути. В консоли отчетов проверял запрос рабочий, переписал немного запрос, присвоил значение параметра &РейсВпути значения Перечисления,
Запрос=Новый Запрос; Запрос.Текст= "ВЫБРАТЬ |Рейс.Ссылка |ИЗ |Документ.Рейс КАК Рейс |ГДЕ Рейс.Состояние=&РейсВпути"; Запрос.УстановитьПараметр("РейсВПути",Перечисления.СостояниеРейса); Рейсы=Запрос.Выполнить().Выгрузить(); Для Каждого строкаРейсы Из Рейсы Цикл НоваяСтрокаРейсы=Рейсы.Добавить(); НоваяСтрокаРейсы.СписокРейсов=строкаРейсы.СписокРейсов; КонецЦикла; если я вас правильно понял то вы предлагаете вместо НоваяСтрокаРейсы.СписокРейсов написать НоваяСтрокаРейсы.Рейс и колонку ТП поменять на Рейс или в запросе Как Рейс написать Как Список Рейсов, чтобы в дальнейшем определилась переменная? |
|||
32
butterbean
13.04.12
✎
10:48
|
(31) это не значение перечисления, а само перечисления, но осталось немного :-)
|
|||
33
amadeus2010
13.04.12
✎
10:55
|
ну да пардон неправильно выразился (31) параметру &РейсВпути, присвоил само перечисление Перечисления.СостояниеРейса,одно из значений которого ВПути
|
|||
34
Fish
13.04.12
✎
10:58
|
(33) У тебя каша в голове.
|
|||
35
hhhh
13.04.12
✎
11:03
|
(33) ну у вас ГДЕ Рейс.Состояние=&РейсВпути
Рейс.Состояние - это значение перечисления &РейсВпути - само перечисление. они никогда не будут равны, поэтому у вас пусто будет в результате запроса. |
|||
36
vmv
13.04.12
✎
11:04
|
(31) в следущий раз создавай тему женским аккаунтом с фото так веселее)
|
|||
37
SanGvin
13.04.12
✎
11:05
|
ржака))
|
|||
38
hhhh
13.04.12
✎
11:05
|
(35)+ то есть вы должны сделать над собой неимоверное усилие и в &РейсВПути тоже задать одно из значений этого перечисления.
|
|||
39
SanGvin
13.04.12
✎
11:07
|
во-первых ты пихаешь в параметр запроса само перечисление а не его значение, во-вторых - в цикле у тя идет присвоение СТРОКЕ таблицы целиком реквизита с типом ТаблицаЗначений (если, как ты гришь, там у реквизита ТЗ значение Таблица значений)
|
|||
40
Шапокляк
13.04.12
✎
11:10
|
(0) "Тип значений табличной части-Таблица значений". Наверно, это не табличная часть самого документа, а табличное поле на форме. И значение этого табличного поля - таблица значений с именем СписокРейсов?
|
|||
41
amadeus2010
13.04.12
✎
13:47
|
Добрый день, объясните пожалуйста такую вещь. Я изменил частично сам запрос,сделал табличную часть документа ТаблицаРейс вместо табличного поля на форме, создал колонку Рейсы с типом данных строка, и все равно выходит ошибка
Запрос=Новый Запрос; Запрос.Текст= "ВЫБРАТЬ |Рейс.Ссылка |ИЗ |Документ.Рейс КАК Рейс |ГДЕ Рейс.Состояние=&Состояние"; Запрос.УстановитьПараметр("Состояние",Документы.Рейс.Состояние); РезультатЗапроса=Запрос.Выполнить(); Выборка=РезультатЗапроса.Выбрать(); Пока Выборка.Следующий()Цикл НоваяСтрока=ТаблицаРейс.Добавить(); НоваяСтрока.Рейсы=Выборка.Состояние; КонецЦикла; {Обработка.ЗакрытиеРейсов.Форма.ЗакрытиеРейсов(30,24)}: Переменная не определена (СписокРейсов) Для Каждого Строка Из <<?>>СписокРейсов Цикл В чем может быть проблема? |
|||
42
butterbean
13.04.12
✎
13:49
|
(41) 1. опять ты про перечисление забыл
2. твой код не соответствует ошибке, настоящий покажи |
|||
43
hhhh
13.04.12
✎
13:51
|
(41) действительно тут нет у тебя переменной СписокРейсов, поищи хоть сам в этом тексте.
|
|||
44
Fish
13.04.12
✎
13:57
|
Что-то чем дальше, тем больше похоже на развод :))
|
|||
45
amadeus2010
13.04.12
✎
13:57
|
ну я о том же что нет здесь переменной такой СписокРейсов, а ошибка ссылающаяся на нее есть. Тем более что я поменял ту часть запроса которая отвечает за вывод результата запроса а табличную часть и переименовал колонку.
|
|||
46
amadeus2010
13.04.12
✎
13:58
|
никакого развода, остается нерешенным вопрос вывода результата в колонку ТЧ
|
|||
47
salvator
13.04.12
✎
14:05
|
(45) Изменения-то сохранил?
|
|||
48
Wobland
13.04.12
✎
14:07
|
(46) слушай, заколбал уже. вот у меня есть обработка с реквизитом типа ТЗ, делаю запрос, отображаю результат запроса в ТП на форме. изначально там никаких колонок нет. подойдёт для подсмотреть?
|
|||
49
hhhh
13.04.12
✎
14:54
|
(48) ничего не получится. Результат запроса надо в колонку поместить, а у тебя колонок нет.
|
|||
50
Wobland
13.04.12
✎
14:56
|
да я сделаю выгрузку в колонку. и колонку создам. только пусть уже ТС закончит с этим ;)
|
|||
51
hhhh
13.04.12
✎
15:04
|
(50) имхо у ТС есть еще темы в запасе.
|
|||
52
amadeus2010
13.04.12
✎
16:01
|
если для подсмотреть то пойдет
|
|||
53
hhhh
13.04.12
✎
16:07
|
(52) ну откройте ему email свой, email ваш закрыт. он вам кинет обработку. Вы чего-то сегодня несообразительный.
|
|||
54
amadeus2010
13.04.12
✎
16:16
|
[email protected]сбросьте сюда обработку.Буду очень благодарен за помощь
|
|||
55
Rizhij_Nikitos
13.04.12
✎
16:26
|
(0) у тебя в запросе берется ссылка, а значит Колонка в ТЗ которую ты через запрос выгружаешь, будет СТрокаТЗ.ССылка.
|
|||
56
Rizhij_Nikitos
13.04.12
✎
16:28
|
(20) а как данные для ТП указать, поделись опытом просто, что я нашел когда изучал в книгах, то и часто использую свое пытаюсь новое неизобретать всегда.
|
|||
57
hhhh
13.04.12
✎
16:29
|
(54) только никогда в жизни больше не пиши
Документы.Рейс.Ссылка или Документы.Рейс.Состояние Это смахивает на пропаганду гомосексуализма. |
|||
58
amadeus2010
13.04.12
✎
16:31
|
Запрос=Новый Запрос;
Запрос.Текст= "ВЫБРАТЬ |Рейс.Ссылка |ИЗ |Документ.Рейс КАК Рейс |ГДЕ Рейс.Состояние=&Состояние"; Запрос.УстановитьПараметр("Состояние",Перечисления.СостояниеРейса.ВПути); РезультатЗапроса=Запрос.Выполнить(); Выборка=РезультатЗапроса.Выбрать(); Пока Выборка.Следующий()Цикл НоваяСтрока=ТаблицаРейс.Добавить(); НоваяСтрока.Рейсы=Выборка.Состояние; КонецЦикла; в итоге пришел только к этому |
|||
59
Wobland
13.04.12
✎
16:33
|
(54) всё уже. обработка на работе, а я дома
|
|||
60
le_
13.04.12
✎
16:33
|
(58)...Поразмышляем над этим: НоваяСтрока.Рейсы=Выборка.Состояние;
|
|||
61
Wobland
13.04.12
✎
16:34
|
(58) а ЗагрузитьКолонку() чем у нас обычно занимается?
|
|||
62
Argon
13.04.12
✎
16:36
|
ОМГ.... УДК... :)
|
|||
63
Wobland
13.04.12
✎
16:37
|
я так и не понял главного: на зачем весь этот огород?
|
|||
64
amadeus2010
13.04.12
✎
16:44
|
(61)ЗагрузитьКолонку()-Загружает значения из массива в заданную колонку табличной части.
Пока Выборка.Следующий()Цикл НоваяСтрока=ТаблицаРейс.Добавить(); НоваяСтрока.Рейсы=Выборка.Состояние; ТаблицаРейс.ЗагрузитьКолонку(Рейсы, "Состояние") КонецЦикла; как то так что ли? |
|||
65
SurFace
13.04.12
✎
16:46
|
теперьищи тут ошибку
НоваяСтрока.Рейсы=Выборка.Состояние; |
|||
66
salvator
13.04.12
✎
16:48
|
Воистину, Пятница, 13-е...
|
|||
67
hhhh
13.04.12
✎
16:50
|
(64) у тебя Выборка.Состояние всегда равно Перечисления.СостояниеРейса.ВПути. Сам же написал в запросе. Зачем тебе оно? Зачем его в колонку грузить?
|
|||
68
Rizhij_Nikitos
13.04.12
✎
16:51
|
Запрос=Новый Запрос;
Запрос.Текст= "ВЫБРАТЬ |Рейс.Ссылка |ИЗ |Документ.Рейс КАК Рейс |ГДЕ Рейс.Состояние=&Состояние"; Запрос.УстановитьПараметр("Состояние",Перечисления.СостояниеРейса.ВПути); РезультатЗапроса=Запрос.Выполнить(); Выборка=РезультатЗапроса.Выбрать(); Пока Выборка.Следующий()Цикл НоваяСтрока=ТаблицаРейс.Добавить(); НоваяСтрока.Рейсы=Выборка.Ссылка; КонецЦикла; Выбранное поле у тебя будет ССылка,А не состояние. |
|||
69
Rizhij_Nikitos
13.04.12
✎
16:51
|
(64) это тебе вот так пробуй все должно взлететью
|
|||
70
amadeus2010
13.04.12
✎
16:52
|
а теперь понятно
|
|||
71
amadeus2010
13.04.12
✎
16:53
|
сейчас попробую
|
|||
72
amadeus2010
13.04.12
✎
16:58
|
спасибо за запрос, только не подумайте что развожу вас но при попытке выполнить код выдает ошибку
{Обработка.ЗакрытиеРейсов.Форма.ЗакрытиеРейсов(29,24)}: Переменная не определена (СписокРейсов) Для Каждого Строка Из <<?>>СписокРейсов Цикл хотя никого упоминания о СписокРейсов нигде нет ни в коде ни в реквизитах, ни в ТЧ словом нигде, не могу понять это. |
|||
73
Wobland
13.04.12
✎
16:59
|
можно я матом ругаться буду? весь день эту ошибку вижу
|
|||
74
Rizhij_Nikitos
13.04.12
✎
17:00
|
открой форму документа и в поиске напиши СписокРейсов и найдешь где есть таккая переменная. или созрани обработку, и заного открой в режими 1С предприятиие.
Смотри что стоит до слова "ИЗ" это колонки таблицы значений которые будут выгружены. В нашем случае это |Рейс.Ссылка, в объединения\пседонимы можно меняить название колонок. |
|||
75
Wobland
13.04.12
✎
17:01
|
>хотя никого упоминания о СписокРейсов нигде нет \
он ещё и издевается |
|||
76
Rizhij_Nikitos
13.04.12
✎
17:02
|
(75) ЗагрузитьКолонку() - это ты мне говорил?
|
|||
77
Wobland
13.04.12
✎
17:03
|
(76) не, автору
|
|||
78
amadeus2010
13.04.12
✎
17:04
|
очень извиняюсь нашел где находится СписокРейсов, исправил ошибку
|
|||
79
amadeus2010
13.04.12
✎
17:07
|
спасибо (68) все заработало,еще раз спасибо всем за помощь
|
|||
80
Rizhij_Nikitos
13.04.12
✎
17:15
|
(79) успел проверить до конца рабочего дня :)) все мы учились и учимся)
|
|||
81
le_
13.04.12
✎
17:18
|
(80) Судя по всему, amadeus2010 нихрена не учится и ему это нафиг не надо. Ему нужно было, чтобы кто-то ему готовое решение выложил. А на программиста денег жмет.
|
|||
82
sanja26
13.04.12
✎
17:21
|
||||
83
amadeus2010
14.04.12
✎
08:08
|
в том то и дело что на СКД сделать ТЧ и вывести в нее данные легче чем создать новую обработку и запрос к ней для отбора документов. Не надо судить строго начинающего программиста,ведь все когда-то чему-то учились
|
|||
84
experimentator76
14.04.12
✎
10:54
|
(36) да хоть как-то тупняк будет оправдан
|
|||
85
experimentator76
14.04.12
✎
10:55
|
(54) пипец... и мне тогда бабла на карточку ))
|
|||
86
experimentator76
14.04.12
✎
10:56
|
(81) +100500 никогда не научится если все готовое испоьзовать
|
|||
87
Wobland
14.04.12
✎
18:30
|
(83) представь, как было лично мне, когда СКД ещё не изобрели. пришлось самому. самому вникать в то, что же оно имело в виду вот в этой ошибке, почему вот здесь оно хочет от меня совсем не то, что я думаю и т.п.... плин, сильно помог принцип "задумайся, пойми, как работает, и сделай по-своему"
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |