Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
17 Дек 2017, 03:41
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Переменная не определена  (Прочитано 4815 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Елена6666666666

  • *
  • Сообщений: 9
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-10-21
  • Сайт: 
  • Профессия: Ученик 1С
Было задание (1С8.3):Определить обработчик события, который позволил бы после выбора контактного лица автоматически устанавливать в документе значение контрагента (владельца). При реализации этого обработчика необходимо использовать табличную модель.
Моё решение:
&НаКлиенте
Процедура КонтактноеЛицоНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ДанныеВыбора = КонтактноеЛицоНачалоВыбораНаСервере()
КонецПроцедуры

&НаСервере
Функция КонтактноеЛицоНачалоВыбораНаСервере()
   
СписокЛиц = Новый СписокЗначений;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| КонтактныеЛица.Наименование КАК КонтактноеЛицо
|ИЗ
| Справочник.КонтактныеЛица КАК КонтактныеЛица
|ГДЕ
|КонтактныеЛица.Владелец = &Контрагент";
Запрос.УстановитьПараметр("Контрагент", Контрагент);

Результат=Запрос.Выполнить();
Выборка=Результат.Выбрать();
Пока Выборка.Следующий() Цикл
СписокЛиц.Добавить(Выборка.КонтактноеЛицо);
КонецЦикла;
Возврат СписокЛиц;
КонецФункции


Ошибка:
{Документ.ПоступлениеТоваров.Форма.ФормаДокумента.Форма(38,41)}: Переменная не определена (Контрагент)
Запрос.УстановитьПараметр("Контрагент", <<?>>Контрагент); (Проверка: Сервер)


Помогите пожалуйста!!!!!


Оффлайн Nekromant

  • *
  • Сообщений: 31
  • РЕПУТАЦИЯ: 4
  • КПД: 13%
  • Регистрация: 2014-07-03
  • Сайт: 
  • Профессия: Программист 1С
Было задание (1С8.3):Определить обработчик события, который позволил бы после выбора контактного лица автоматически устанавливать в документе значение контрагента (владельца). При реализации этого обработчика необходимо использовать табличную модель.
Моё решение:
&НаКлиенте
Процедура КонтактноеЛицоНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ДанныеВыбора = КонтактноеЛицоНачалоВыбораНаСервере()
КонецПроцедуры

&НаСервере
Функция КонтактноеЛицоНачалоВыбораНаСервере()
   
СписокЛиц = Новый СписокЗначений;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| КонтактныеЛица.Наименование КАК КонтактноеЛицо
|ИЗ
| Справочник.КонтактныеЛица КАК КонтактныеЛица
|ГДЕ
|КонтактныеЛица.Владелец = &Контрагент";
Запрос.УстановитьПараметр("Контрагент", Контрагент);

Результат=Запрос.Выполнить();
Выборка=Результат.Выбрать();
Пока Выборка.Следующий() Цикл
СписокЛиц.Добавить(Выборка.КонтактноеЛицо);
КонецЦикла;
Возврат СписокЛиц;
КонецФункции


Ошибка:
{Документ.ПоступлениеТоваров.Форма.ФормаДокумента.Форма(38,41)}: Переменная не определена (Контрагент)
Запрос.УстановитьПараметр("Контрагент", <<?>>Контрагент); (Проверка: Сервер)


Помогите пожалуйста!!!!!

Вы с клиента на сервер не передаете параметр...

Оффлайн Елена6666666666

  • *
  • Сообщений: 9
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-10-21
  • Сайт: 
  • Профессия: Ученик 1С
Было задание (1С8.3):Определить обработчик события, который позволил бы после выбора контактного лица автоматически устанавливать в документе значение контрагента (владельца). При реализации этого обработчика необходимо использовать табличную модель.
Моё решение:
&НаКлиенте
Процедура КонтактноеЛицоНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ДанныеВыбора = КонтактноеЛицоНачалоВыбораНаСервере()
КонецПроцедуры

&НаСервере
Функция КонтактноеЛицоНачалоВыбораНаСервере()
   
СписокЛиц = Новый СписокЗначений;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| КонтактныеЛица.Наименование КАК КонтактноеЛицо
|ИЗ
| Справочник.КонтактныеЛица КАК КонтактныеЛица
|ГДЕ
|КонтактныеЛица.Владелец = &Контрагент";
Запрос.УстановитьПараметр("Контрагент", Контрагент);

Результат=Запрос.Выполнить();
Выборка=Результат.Выбрать();
Пока Выборка.Следующий() Цикл
СписокЛиц.Добавить(Выборка.КонтактноеЛицо);
КонецЦикла;
Возврат СписокЛиц;
КонецФункции


Ошибка:
{Документ.ПоступлениеТоваров.Форма.ФормаДокумента.Форма(38,41)}: Переменная не определена (Контрагент)
Запрос.УстановитьПараметр("Контрагент", <<?>>Контрагент); (Проверка: Сервер)


Помогите пожалуйста!!!!!

Вы с клиента на сервер не передаете параметр...

А как тогда передать параметр с клиента на сервер?

Оффлайн TreeDogNight

  • ***
  • Сообщений: 202
  • РЕПУТАЦИЯ: 28
  • КПД: 14%
  • Регистрация: 2013-10-16
    • Skype: treedognight3
  • Сайт: www.avars.uz
  • Профессия: Программист 1С
Я думаю что в вашей задаче более уместно использовать обработчик события ПриИзменении.
А на счет ошибки, в это место вы должны передать контрагента
Запрос.УстановитьПараметр("Контрагент", Контрагент);
а на данный момент переменная Контрагент у вас вообще не определена.
Вопрос: Какой тип имеет у вас реквизит Контактное лицо?
Cегодня не все могут провести завтрашним числом. Вернее, не только лишь все - мало кто может это сделать.

Оффлайн Codokopatel

  • *
  • Сообщений: 24
  • РЕПУТАЦИЯ: 9
  • КПД: 38%
  • Регистрация: 2013-05-02
  • Сайт: 
  • Профессия: Программист 1С
Так как у вас в задании не надо выводить целый список
Цитировать
"Было задание (1С8.3):Определить обработчик события, который позволил бы после выбора контактного лица автоматически устанавливать в документе значение контрагента (владельца)."

то можно обойтись таким кодом:
&НаКлиенте
Процедура КонтактноеЛицоПриИзменении(Элемент)
КонтактноеЛицо = ВыборКонтакта; // ВыборКонтакта - поле выбора контрагента на форме. Тип поля: СправочникСсылка.Контрагенты
Сообщить(ПолучениеВладельцаНаСервере(КонтактноеЛицо));
КонецПроцедуры

&НаСервере
Функция ПолучениеВладельцаНаСервере(КонтактноеЛицо)
Запрос = Новый Запрос(
"ВЫБРАТЬ
| КонтактныеЛица.Владелец
|ИЗ
| Справочник.КонтактныеЛица КАК КонтактныеЛица
|ГДЕ
| КонтактныеЛица.Ссылка = &Ссылка");

Запрос.УстановитьПараметр("Ссылка",КонтактноеЛицо);
ПолученныйРезультат = Запрос.Выполнить().Выгрузить()[0].Владелец;
Возврат ПолученныйРезультат;
КонецФункции

При выводе результата пользователю используется функция Сообщить, потому-что не совсем понятно куда будет помещаться результат:
Цитировать
При реализации этого обработчика необходимо использовать табличную модель.

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
1. Событие не НачалоВыбора а ПриИзменении
2. Надо написать серверную неконтекстную функцию с параметром КонтактноеЛицо, которая вернет значение реквизита Владелец от переданного параметра.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн Елена6666666666

  • *
  • Сообщений: 9
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-10-21
  • Сайт: 
  • Профессия: Ученик 1С
Я думаю что в вашей задаче более уместно использовать обработчик события ПриИзменении.
А на счет ошибки, в это место вы должны передать контрагента
Запрос.УстановитьПараметр("Контрагент", Контрагент);
а на данный момент переменная Контрагент у вас вообще не определена.
Вопрос: Какой тип имеет у вас реквизит Контактное лицо?

КонтактноеЛицо тип - СправочникСсылка.КонтактныеЛица. Этот справочник подчинён спр-ку Контрагенты
Добавлено: 21 Окт 2014, 10:29

1. Событие не НачалоВыбора а ПриИзменении
2. Надо написать серверную неконтекстную функцию с параметром КонтактноеЛицо, которая вернет значение реквизита Владелец от переданного параметра.

Да, спасибо! Это так и есть:
Вот правильное решение и всё работает:
&НаКлиенте
Процедура КонтактноеЛицоПриИзменении(Элемент)
   Сообщить (Объект.КонтактноеЛицо);
  Объект.Контрагент = ПолучитьКонтрагента(Объект.КонтактноеЛицо);
КонецПроцедуры

&НаСерверебезКонтекста
Функция  ПолучитьКонтрагента(КонтактноеЛицо)
    Запрос = Новый Запрос("ВЫБРАТЬ КонтактныеЛица.Владелец ИЗ Справочник.КонтактныеЛица КАК КонтактныеЛица
                          |ГДЕ
                          |КонтактныеЛица.Ссылка = &Ссылка");
    Запрос.УстановитьПараметр("Ссылка",КонтактноеЛицо);
    Возврат Запрос.Выполнить().Выгрузить()[0].Владелец;
КонецФункции 


Последний раз редактировалось: Елена6666666666; 21 Окт 2014, 10:29. Причина: Объединение сообщений


Теги:
 

Для объекта не определена форма по умолчанию, соответствующая текущему режиму запуска. Объект: "Консоль Запросов"

Автор Азамат ХубиевРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 14
Просмотров: 6395
Последний ответ 20 Июл 2016, 22:56
от Азамат Хубиев
Ошибка Процедура или функция с указанным именем не определена

Автор ser36Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 2591
Последний ответ 26 Май 2015, 09:45
от cska-fanat-kz
Процедура или функция с указанным именем не определена (Записать)

Автор oo ooРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 6
Просмотров: 1913
Последний ответ 02 Фев 2017, 13:04
от oo oo
Процедура или функция с указанным именем не определена

Автор asd_123Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 5615
Последний ответ 24 Янв 2012, 16:07
от asd_123
Для каждого запроса, области макета новая переменная?

Автор ZeedРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 836
Последний ответ 29 Июн 2016, 10:15
от Luzer1C

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
145 Сообщений
ilyay ilyay
63 Сообщений
AIFrame
50 Сообщений
alex0402
50 Сообщений
andron81_81
44 Сообщений
oleg-x
42 Сообщений
BuhRust
32 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
24 Сообщений

* Кто онлайн

  • Точка Гостей: 124
  • Точка Скрытых: 0
  • Точка Пользователей: 1
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal