|
Ссылка на первичный документ | ☑ | ||
---|---|---|---|---|
0
Dominique
01.01.17
✎
18:29
|
Всех с наступившим!
Помогите разобраться: У меня задача: есть Документ1, на его основании я создаю Документ2. Уже после создания, из Документа2 мне нужно обратиться к реквизиту документа1. Пишу запрос: Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Документ1.Товары.( | НаименованиеТовара, | Цена | ) |ИЗ | Документ.Документ1.Товары КАК Товары |ГДЕ | Товары.Ссылка=&ДокументОснование"; Запрос.Параметры.Вставить("Ссылка", Ссылка); Выборка = Запрос.Выполнить().Выбрать(); Выдает ошибку: {Документ.Документ2.МодульМенеджера(46)}: Ошибка при вызове метода контекста (Выполнить) Выборка = Запрос.Выполнить().Выбрать(); по причине: {(13, 28)}: Не задано значение параметра "ДокументОснование" Документ1.Ссылка=<<?>>&ДокументОснование Если док-т создан на основании другого, в нем по умолчанию храниться ссылка на док.основание? или мне создать реквизит и вручную прописать? или у меня в другом ошибка? |
|||
1
Amra
01.01.17
✎
18:32
|
Что непонятно в ошибке? Запрос не знает про Товары.Ссылка=&ДокументОснование
|
|||
2
Dominique
01.01.17
✎
18:37
|
(1) т.е. по умолчанию этой ссылки на документ основание в документе нет?
мне не понятно как тогда мне обратиться к документу основанию из текущего документа, подскажите? |
|||
3
Злопчинский
01.01.17
✎
18:59
|
(2) почему обращение к докоснованию идёт из товары, а не из документ2
|
|||
4
Cool_Profi
01.01.17
✎
19:15
|
|ГДЕ
| Товары.Ссылка=&ДокументОснование"; Запрос.Параметры.Вставить("Ссылка", Ссылка); Ничего не смущает? |
|||
5
Amra
01.01.17
✎
19:24
|
(2) Еще раз. ЗАПРОС не знает про твои связи, с кем ты там, кого ты там...
|
|||
6
youalex
01.01.17
✎
19:33
|
(2) Да, его нужно будет заполнять (как правило в событии ОбработкаЗаполнения). Называться этот рек. может как угодно (как правило называют ДокументОснование, потому что так исторически сложилось)
|
|||
7
Amra
01.01.17
✎
19:34
|
(6) И что, его запрос сразу все узнает?
|
|||
8
Dominique
01.01.17
✎
19:35
|
(5) я сам про них не знаю :)) пытаюсь разобраться в 1с с нуля вторую неделю, так что сорри, буду тупить.
Так, я создал реквизит в док2, куда при создании помещается ссылка на док1, назвал это поле ДокументОснование. (тип ДокументСсылка.Документ1, в конструкторе ввода на основании сделал связь) (3) Т.е. к документу основанию мне обращаться Документ2.Товары?? но реквизита товары у Док2 нет. Он есть у Док1 и к нему мне надо как-то добраться |
|||
9
Amra
01.01.17
✎
19:36
|
(8) Какие у тебя беспорядочные связи, ты поаккуратнее
|
|||
10
Dominique
01.01.17
✎
19:37
|
(9) не завидуй :Р
|
|||
11
Dominique
01.01.17
✎
19:53
|
(4) что меня должно смущать?? "ссылка"?
мне нужно каким-то образом перейти по имеющийся ссылке в документ основание и выбрать оттуда в табличной части Наименование и Цену. Пробовал метод Ссылка.ПолучитьОбъект(); но тоже не помогло |
|||
12
Amra
01.01.17
✎
20:15
|
(11) Нее, все таки завидовать нечему. Намекаю. Параметр называется "ДокументОснование". Где ты со своими беспорядочными связями его устанавливаешь? Системе пофиг на тви текущие связи, ей нужно документ основание
|
|||
13
Dominique
01.01.17
✎
20:23
|
(12) что значит "установить параметр"?
Запрос.УстановитьПараметр("ДокументОснование", Объект.ДокументОснование); Так? Или...? |
|||
14
Dominique
01.01.17
✎
20:39
|
(12) изменил так:
ДокументОснование = Документы.Документ1.ДокументОснование; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Документ1.Товары.( | НаименованиеТовара, | Цена | ) |ИЗ | Документ.Документ1.Товары КАК Товары |ГДЕ | Товары.Ссылка=&ДокументОснование"; Запрос.Параметры.Вставить("ДокументОснование", ДокументОснование); Выборка = Запрос.Выполнить().Выбрать(); Выдает ошибку |
|||
15
dachnik
01.01.17
✎
21:09
|
(14) Так у тебя пустой параметр ДокументОснование. Смотри в Отладчике где косяк. Собственно, если ты выполняешь запрос из модуля "второго" документа, то реквизит ДокументОснование должен быть уже заполнен и конструкцией
ДокументОснование = Документы.Документ1.ДокументОснование; ты его обнуляешь. Ну как-то так. |
|||
16
Serg_1960
01.01.17
✎
22:47
|
(0) На твой вопрос правильный ответ - "или у меня в другом ошибка".
(14) В тексте "ВЫБРАТЬ Документ1.Товары..." слово "Документ1." - лишнее. PS: вернитесь в школу, за парту. Вот Вам учебники: http://v8.1c.ru/metod/books/?complexity_level1-1=on&partitionid=1#lt1 Рекомендую начать с "1C:Предприятие 8.3. Практическое пособие разработчика. Примеры и типовые приемы" |
|||
17
Turku
02.01.17
✎
00:37
|
А почему так нельзя?
ДокументОснование = Документ1; ТЗ = ДокументОснование.Товары.Выгрузить(,"НаименованиеТовара,Цена"); На выходе таблица значений товаров с ценами из Документа1. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |