|   |   | 
| 
 | Вывод результата запроса в табличную часть | ☑ | ||
|---|---|---|---|---|
| 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 | 
        215@mail.ru-сбросьте сюда обработку.Буду очень благодарен за помощь     | |||
| 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) представь, как было лично мне, когда СКД ещё не изобрели. пришлось самому. самому вникать в то, что же оно имело в виду вот в этой ошибке, почему вот здесь оно хочет от меня совсем не то, что я думаю и т.п.... плин, сильно помог принцип "задумайся, пойми, как работает, и сделай по-своему"     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |