|
Переменная не определена. | ☑ | ||
---|---|---|---|---|
0
Алекс55555
05.10.15
✎
18:28
|
Добрый вечер !
Есть задание : Определить обработчик события ,который бы позволил после выбора контактного лица автоматически устанавливать в документе значение контрагента(владельца) .При реализации -использовать табличную обработку. Вот код : &НаКлиенте Процедура КонтактноеЛицоНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) КонтактноеЛицоНачалоВыбораНаСервере() КонецПроцедуры &НаСервере Процедура КонтактноеЛицоНачалоВыбораНаСервере() Запрос =Новый Запрос ; Запрос.Текст = "ВЫБРАТЬ | КонтактныеЛица.Наименование КАК КонтактноеЛицо, | КонтактныеЛица.Владелец КАК Контрагент |ИЗ | Справочник.КонтактныеЛица КАК КонтактныеЛица" ; Результат=Запрос.Выполнить(); Выборка=Результат.Выбрать(); Пока Выборка.Следующий() Цикл Сообщить (КонтактноеЛицо); Сообщить (Контрагент ); КонецЦикла КонецПроцедуры Пишет ,что Документ.ПоступлениеТоваров.Форма.ФормаДокумента.Форма(39,19)}: Переменная не определена (КонтактноеЛицо) Сообщить (<<?>>КонтактноеЛицо); (Проверка: Сервер) {Документ.ПоступлениеТоваров.Форма.ФормаДокумента.Форма(40,19)}: Переменная не определена (Контрагент) Сообщить (<<?>>Контрагент ); (Проверка: Сервер) Помогите разобраться пожалуйста. |
|||
1
Волшебник
модератор
05.10.15
✎
18:29
|
Сообщить (Выборка.КонтактноеЛицо);
Сообщить (Выборка.Контрагент ); |
|||
2
Алекс55555
05.10.15
✎
18:51
|
Спасибо , ошибка исправлена.
Только я по прежнему ввожу контактноелицо , и сам же ввожу потом контрагента. А по заданию нужно "после выбора контактного лица автоматически устанавливать в документе значение контрагента(владельца)" Что делать не приложу ума. И при выборе контактного лица - выскакивает сообщение, где просто перечислены все контактные лица и контрагенты, и нет возможности выбрать сначала контактное лицо , если контрагент пустой. Жду ваших советов. |
|||
3
User_Agronom
05.10.15
✎
18:57
|
(2) ...автоматически устанавливать...
В коде нигде ничего автоматически не устанавливается. Попробуйте подумать логически. |
|||
4
Asmody
05.10.15
✎
19:02
|
(2) запрос нужно параметризировать.
в текст запроса добавить ГДЕ КонтактныеЛица.Ссылка = &КонтактноеЛицо и добавить установку параметра: Запрос.УстановитьПараметр("КонтактноеЛицо", КонтактноеЛицо) тогда в результате запроса будет только нужный контрагент |
|||
5
Алекс55555
05.10.15
✎
19:16
|
(4) Спасибо, сделал. Если правильно понял , то должно выглядеть так :
&НаКлиенте Процедура КонтактноеЛицоНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) КонтактноеЛицоНачалоВыбораНаСервере() КонецПроцедуры &НаСервере Процедура КонтактноеЛицоНачалоВыбораНаСервере() Запрос =Новый Запрос ; Запрос.Текст = "ВЫБРАТЬ | КонтактныеЛица.Наименование КАК КонтактноеЛицо, | КонтактныеЛица.Владелец КАК Контрагент |ИЗ | Справочник.КонтактныеЛица КАК КонтактныеЛица | ГДЕ | КонтактныеЛица.Ссылка = &КонтактноеЛицо" ; Результат=Запрос.Выполнить(); Выборка=Результат.Выбрать(); //Пока Выборка.Следующий() Цикл // Сообщить (Выборка.КонтактноеЛицо); // Сообщить (Выборка.Контрагент ); Запрос.УстановитьПараметр("КонтактноеЛицо", Выборка.КонтактноеЛицо); //КонецЦикла КонецПроцедуры Только ничего так и не поменялось... |
|||
6
Asmody
05.10.15
✎
19:52
|
(5) Параметр запроса устанавливается до его выполнения.
И, да, документацию придется почитать. |
|||
7
User_Agronom
05.10.15
✎
20:06
|
(5)...Запрос.УстановитьПараметр("КонтактноеЛицо", Выборка.КонтактноеЛицо);...
Жуть. Ты не понял, что значит параметр запроса... Это всё Asmody с умным словом "параметризировать"! Начни с того, что тебе нужно. Т.е. куда ты хочешь что-то установить. А потом: как получить то, что хочешь установить. Что у тебя есть, для того, чтобы это получить. Читать сначала нужно не документацию к 1С, а принципы решения задач с помощью языка программирования. |
|||
8
Asmody
05.10.15
✎
20:08
|
(7) Ну, мы ж тут программировать собрались, а не в крысню играть. Будем сразу разговаривать нужными словами.
|
|||
9
kubik_live
05.10.15
✎
20:11
|
(0) Иванов Иван Иванович может быть контактным лицом множества контрагентов. У задачи нет решения
|
|||
10
User_Agronom
05.10.15
✎
20:14
|
(8) ...а не в крысню играть...
?? |
|||
11
Asmody
05.10.15
✎
20:31
|
(9) Судя по запросу, у него Контактные лица подчинены контрагентам.
|
|||
12
Asmody
05.10.15
✎
20:32
|
(10) Один мой учитель говорил: "Это просто, как детская игра в крысню."
|
|||
13
Zamestas
05.10.15
✎
20:33
|
Вторая серия: Контроль уникальности наименования.
|
|||
14
User_Agronom
05.10.15
✎
20:38
|
(12) Цитата, да ещё учителя.
Но не суть: если давать совет, то так, чтобы ТС понял. Но ТС пока считает (я верю, что в будущем он будет разбираться великолепно, но не сегодня точно), что цикл Пока Выборка.Следующий() Цикл Сообщить (...) КонецЦикла; Можно заменить командой: Запрос.УстановитьПараметр( ИМХО: советы с терминами ещё больше его запутают. (13) Это студент, похоже. |
|||
15
Zamestas
05.10.15
✎
20:40
|
(14) Это такой забористый студент, что я х.з. чем ему вообще помочь можно...
|
|||
16
User_Agronom
05.10.15
✎
20:44
|
(15) Я в (3) дал совет: "...Попробуйте подумать логически".
и в (7) "...Начни с того, что тебе нужно. Т.е. куда ты хочешь что-то установить. А потом: как получить то, что хочешь установить. Что у тебя есть, для того, чтобы это получить..." И это не стёб. Правильно заданный вопрос даст нам с вероятностью 80% правильный ответ на него. |
|||
17
Алекс55555
06.10.15
✎
08:41
|
(16) Спасибо большое , за дельные советы.
Да студент , да учусь. Но не все сразу становились мастерами)) |
|||
18
magicSan
06.10.15
✎
08:47
|
(17) теорию бы почитал для начала. судя по всему 1С единсвенный ЯП с которым автор работал.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |