|
Перенос определенных строк в табличную часть из другого документа | ☑ | ||
---|---|---|---|---|
0
AndrewDron
19.05.13
✎
14:35
|
Есть много документов Документ1, там есть реквизиты Специальность, ФИО и Оценка. В Документ2 есть реквизит Специальность и табличная часть, в которую нужно перенести только те ФИО и Оценка, у которых совпадает Специальность. То есть мы выбираем Специальность, жмем кнопку и заполняются только те студенты, у которых Специальность та, которую мы выбрали
Может подскажет кто как это можно реализовать |
|||
1
zippygrill
19.05.13
✎
14:40
|
Запросом?
|
|||
2
AndrewDron
19.05.13
✎
14:54
|
может и запросом, но я смутно представляю как
я делал так, но заносило просто все Специальности. Запрос = Новый Запрос; Запрос.Текст = "Выбрать |(Фамилия + Имя + Отчество) КАК Абитуриент, Оценка, Специальность |ИЗ |Документ.АнкетаАбитуриента |Упорядочить По ЗНО Убыв" ; Результат = Запрос.Выполнить(); Объект.Зараховані.Загрузить(Результат.Выгрузить()); Объект.Незарчисленные.Загрузить(Результат.Выгрузить()); |
|||
3
AndrewDron
19.05.13
✎
14:55
|
Запрос = Новый Запрос;
Запрос.Текст = "Выбрать |(Фамилия + Имя + Отчество) КАК Абитуриент, Оценка, Специальность |ИЗ |Документ.АнкетаАбитуриента |Упорядочить По ЗНО Убыв" ; Результат = Запрос.Выполнить(); Объект.Зачисленные.Загрузить(Результат.Выгрузить()); // это названия табличных частей Объект.Незачисленные.Загрузить(Результат.Выгрузить()); |
|||
4
AndrewDron
19.05.13
✎
14:56
|
А мне надо,чтобы я выбрал в документе реквизит Специальность и с мою табличную часть заносило только тех, у кого такая же специальность, а у меня заносит всех
|
|||
5
Любопытная
19.05.13
✎
15:26
|
Добавь параметр в запрос и передавай в него специальность
|
|||
6
AndrewDron
19.05.13
✎
15:32
|
а не подскажешь как? если не трудно
|
|||
7
AndrewDron
19.05.13
✎
15:47
|
Как мне проверить совпадает ли Специальность?
|
|||
8
artist
19.05.13
✎
15:54
|
...
|ГДЕ |Документ.АнкетаАбитуриента = &Специальность ... Запрос.УСтановитьПараметр("Специальность",ТекДок.Специальность); Что-то в этом духе... |
|||
9
Красный рассвет
19.05.13
✎
15:54
|
Наверно условием в запросе?
|
|||
10
artist
19.05.13
✎
16:03
|
Естественно
Документ.АнкетаАбитуриента.Специальность = &Специальность ...очепятался |
|||
11
AndrewDron
19.05.13
✎
16:07
|
сейчас проверю
мне же вместо ТекДок.Специальность надо писать мою табличную часть? |
|||
12
artist
19.05.13
✎
16:08
|
(11)А вот это я ХЗ - где у тебя чего хранится...
|
|||
13
AndrewDron
19.05.13
✎
16:12
|
{(6, 44)}: Не задано значение параметра "Специальность"
Документ.АнкетаАбитуриента.Специальность = <<?>>&Специальность Запрос = Новый Запрос; Запрос.Текст = "Выбрать |ФИО КАК Абитуриент, Оценка, Специальность КАК Специальность |ИЗ |Документ.АнкетаАбитуриента |ГДЕ |Документ.АнкетаАбитуриента.Специальность = &Специальность |Упорядочить По Оценка Убыв" ; Результат = Запрос.Выполнить(); Запрос.УcтановитьПараметр("Специальность ",Объект.Зачисленные.Специальность ); |
|||
14
AndrewDron
19.05.13
✎
16:13
|
{(6, 44)}: Не задано значение параметра "Специальность"
Документ.АнкетаАбитуриента.Специальность = <<?>>&Специальность такую ошибку выдает |
|||
15
artist
19.05.13
✎
16:17
|
(14)мож ты книжки какие-нибудь почитаешь для начала?
|
|||
16
AndrewDron
19.05.13
✎
16:19
|
да мне диплом делать, времени нет на книжки
сдавать в среду ( помоги, пожалуйста. это единственное,что мне осталось сделать. |
|||
17
artist
19.05.13
✎
16:20
|
пробел лишний...
где не скажу :) |
|||
18
zippygrill
19.05.13
✎
17:28
|
Запрос = Новый Запрос;
Запрос.Текст = "Выбрать |ФИО КАК Абитуриент, Оценка, Специальность КАК Специальность |ИЗ |Документ.АнкетаАбитуриента |ГДЕ |Документ.АнкетаАбитуриента.Специальность = &Специальность |Упорядочить По Оценка Убыв" ; Результат = Запрос.Выполнить(); Запрос.УcтановитьПараметр("Специальность", Объект.Зачисленные.Специальность); |
|||
19
Ковычки
19.05.13
✎
17:28
|
ввести на основаниии ?
|
|||
20
AndrewDron
19.05.13
✎
17:50
|
лишний пробел?
ну у меня там кнопка есть и команда на ней,нажимаешь и оно должно заполнять |
|||
21
AndrewDron
19.05.13
✎
17:53
|
Пишет, что поле Специальность не обнаружено.
У меня есть табличная часть Зачисленные и в ней поле Специальность. Запрос.УcтановитьПараметр("Специальность", Объект.Зачисленные.Специальность); То есть оно не понимает что такое Объект.Зачисленные.Специальность Запрос = Новый Запрос; Запрос.Текст = "Выбрать |ФИО КАК Абитуриент, Оценка, Специальность КАК Специальность |ИЗ |Документ.АнкетаАбитуриента |ГДЕ |Документ.АнкетаАбитуриента.Специальность = &Специальность |Упорядочить По Оценка Убыв" ; Результат = Запрос.Выполнить(); Запрос.УcтановитьПараметр("Специальность", Объект.Зачисленные.Специальность); |
|||
22
Любопытная
19.05.13
✎
18:01
|
Объект.зачисленные это табличная часть? Ты пытаешься запихать параметр всю колонку, вместо одного значения.
Он не понимает, потому что ты явно объясняешь неправильно |
|||
23
AndrewDron
19.05.13
✎
18:04
|
Может быть неправильно, простите
да, то табл часть а как нужно? я пытался получить значение так: ТекДок = Документы.РейтингиАбитуриентов.Выбрать(); ТЧ = ТекДок.Зачисленные.Получить(); Запрос.УcтановитьПараметр("Специальность",Объект.Зачисленные.Специальность); Результат = Запрос.Выполнить(); но оно ругается на метод Получить() |
|||
24
Любопытная
19.05.13
✎
18:06
|
Ты что хочешь сделать? Вроде говорил - выбрать одну специальность и по ней отобрать. Значит выбери одну специальность. Сделай отдельное поле на форме, в котором указывается специальность и по значение из этого поля указывай в качестве параметра в запросе
|
|||
25
AndrewDron
19.05.13
✎
18:10
|
Попробую объяснить правильно
Есть документы АнкетаАбитуриента. Есть документ РейтингиАбитуриентов с табл частью Зачисленные. В этом документ есть реквизит Специальность. Я выбираю ее и когда я нажимаю на кнопку, то эта табл часть должна заполниться данными из документов АнкетаАбитуриента : ФИО,Оценка, Специальность. Но отбираться должны только те анкеты, в которых Специальность такая же,как я выбрал в документе РейтингиАбитуриентов Сделал так Запрос = Новый Запрос; Запрос.Текст = "Выбрать |ФИО КАК Абитуриент, Оценка, Специальность КАК Специальность |ИЗ |Документ.АнкетаАбитуриента |ГДЕ |Документ.АнкетаАбитуриента.Специальность = &Специальность |Упорядочить По Оценка Убыв" ; Результат = Запрос.Выполнить(); Запрос.УcтановитьПараметр("Специальность", Объект.Специальность); Объект.Специальность - это реквизит документа РейтингиАбитуриентов, где я выбираю специальность, по которой отобрать абитуриентов |
|||
26
AndrewDron
19.05.13
✎
18:11
|
что я делаю не так?
Вы бы мне очень помогли, потому что у меня пару дней,чтобы закончить диплом |
|||
27
Любопытная
19.05.13
✎
18:15
|
Сделал так - что не работает?
|
|||
28
Любопытная
19.05.13
✎
18:15
|
Параметр установи ДО выполнения запроса
|
|||
29
AndrewDron
19.05.13
✎
18:17
|
я пробовал. пишет Метод объекта не обнаружен(УстановитьПараметр)
|
|||
30
Любопытная
19.05.13
✎
18:19
|
Не может быть
|
|||
31
Любопытная
19.05.13
✎
18:24
|
А! Я поняла) УстановитьПараметр выполняется ДО Выполнить() но ПОСЛЕ объявления запроса :)
|
|||
32
AndrewDron
19.05.13
✎
18:25
|
серьезно. метод не обнаружен
я нашел такой пример Функция ПолучитьКурьеров() КассоваяСмена = Объект.КассоваяСмена.Ссылка; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ДоставкиКурьеров.Курьер, | СУММА(ДоставкиКурьеров.Доставки) КАК Доставки, | ДоставкиКурьеров.КассоваяСмена, | РасчетнаяВедомость.КассоваяСмена.Ссылка |ИЗ | Документ.РасчетнаяВедомость КАК РасчетнаяВедомость | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ДоставкиКурьеров КАК ДоставкиКурьеров | ПО РасчетнаяВедомость.КассоваяСмена = ДоставкиКурьеров.КассоваяСмена |ГДЕ | РасчетнаяВедомость.КассоваяСмена = &КассоваяСмена | |СГРУППИРОВАТЬ ПО | ДоставкиКурьеров.КассоваяСмена, | РасчетнаяВедомость.КассоваяСмена.Ссылка, | ДоставкиКурьеров.Курьер"; Запрос.УстановитьПараметр("КассоваяСмена", КассоваяСмена); Результат = Запрос.Выполнить().Выгрузить(); Объект.Сотрудники.Загрузить(Результат); КонецФункции тут разница только в том, что КассоваяСмена = Объект.КассоваяСмена.Ссылка; я у себя добавил .Ссылка, но все равно не работает |
|||
33
AndrewDron
19.05.13
✎
18:27
|
в смысле ПОСЛЕ выполнения запроса?
Запрос.УcтановитьПараметр("Специальность", Объект.Специальность); Результат = Запрос.Выполнить(); у меня так |
|||
34
AndrewDron
19.05.13
✎
18:28
|
все равно пишет не обнаружен метод объекта УстановитьПараметр
:( |
|||
35
Любопытная
19.05.13
✎
18:32
|
Я не верю. Показывай процедуру целиком штоли. Или СП почитай... ну или хотя бы сделай так: в конфигураторе после текста запроса на след строке пишешь Запрос. Потом нажимаешь ctrl+пробел и из списка предложенного выбираешь метод УстановитьПараметр
|
|||
36
AndrewDron
19.05.13
✎
18:32
|
у меня процедура, а в том примере, что я скинул - функция
я попробовал поставить функцию - проблема не решилась |
|||
37
AndrewDron
19.05.13
✎
18:33
|
&НаСервере
Функция Запрос() Спеціальність = Объект.Спеціальність.Ссылка; Запрос = Новый Запрос; Запрос.Текст = "Выбрать |(Прізвище + Імя + ПоБатькові) КАК Абітурієнт, ЗНО, Пільги КАК Пільга, Спеціальність КАК Спеціальність |ИЗ |Документ.АнкетаАбітурієнта |ГДЕ |Документ.АнкетаАбітурієнта.Спеціальність=&Спеціальність |Упорядочить По ЗНО Убыв" ; Запрос.УcтановитьПараметр("Спеціальність",Спеціальність); Результат = Запрос.Выполнить(); Объект.Зараховані.Загрузить(Результат.Выгрузить()); Объект.Незараховані.Загрузить(Результат.Выгрузить()); Счетчик = Объект.Зараховані.Количество()-1; Пока (Счетчик+1) > Объект.План Цикл Объект.Зараховані.Удалить(Счетчик); Счетчик = Счетчик - 1; КонецЦикла; Счетчик2 = Объект.План -1; Пока Счетчик2 >= 0 Цикл Объект.Незараховані.Удалить(Счетчик2); Счетчик2 = Счетчик2 - 1; КонецЦикла; КонецФункции тут украинские названия, если что..не обращай внимания |
|||
38
Max Street
19.05.13
✎
18:35
|
пробел между кавычками и точкой с запятой убери
|
|||
39
Любопытная
19.05.13
✎
18:35
|
Да это неважно. Блин, ну какой к чертям тебе диплом, если ты элементарный код написать не можешь. И не хочешь посмотреть и почитать как правильно и грамотно все сделать? Научные работы пишутся по тем областям, в которых разбираешься. Кем ты работать будешь после этого диплома?
|
|||
40
AndrewDron
19.05.13
✎
18:37
|
так все вышло. у нас универ дурацкий.
я искал в списке ПараметрУстановить, но его там нет ну нажал ктрл + пробел после запроса |
|||
41
AndrewDron
19.05.13
✎
18:40
|
убрал пробел-не помогает
в списке реально нет УстановитьПараметр вот в чем проблема но почему его нет? |
|||
42
Любопытная
19.05.13
✎
18:40
|
(37) функцию переименуй, чудо
|
|||
43
AndrewDron
19.05.13
✎
18:41
|
а что не так с именем?
|
|||
44
Любопытная
19.05.13
✎
18:42
|
Нехаляльное. Назови ее ПолучитьТЗпоТЧ например)
|
|||
45
AndrewDron
19.05.13
✎
18:43
|
назвал - все равно метод не обнаружен
:( |
|||
46
Ковычки
19.05.13
✎
18:44
|
ТЧ может быть много
|
|||
47
AndrewDron
19.05.13
✎
18:45
|
у меня 2 табличные части : Зачисленные абитуриенты и Незачисленные
там в списке есть только УстановитьПараметрыФункциональныхОпций... почему-то нет там метода УстановитьПараметр |
|||
48
Любопытная
19.05.13
✎
18:45
|
Все, я выдохлась.
Отладчик запускай и смотри - переменная Запрос у тебя какого типа. |
|||
49
Любопытная
19.05.13
✎
18:46
|
Может он у тебя вообще на другое место ругается?
|
|||
50
AndrewDron
19.05.13
✎
18:50
|
работает
я наново написал строчку с УстановитьПараметр, а то я ее копировал с интернета обирает правильно спасибо тебе огромное. извини, что потратил твое время а ты работаешь 1с-разработчиком? |
|||
51
Любопытная
19.05.13
✎
19:07
|
А это важно - кем я работаю? По личным вопросам в личке есть аська, а я в аське бываю в рабочее время.
Всегда пожалуйста. |
|||
52
AndrewDron
19.05.13
✎
19:09
|
Мне просто любопытно было
Спасибо |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |