8.х Значение из поля ввода.

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Shilov, 2 окт 2012.

  1. TopicStarter Overlay
    Shilov
    Offline

    Shilov Опытный в 1С

    Регистрация:
    7 сен 2012
    Сообщения:
    87
    Симпатии:
    0
    Баллы:
    26
    Чёт я туплю. Имеется документ заказ покупателя. Там по умолчанию заполняется поле ввода КонтактноеЛицо, тип значения СправочникСсылка.КонтактныеЛицаКонтрагентов. Через формудокумента я открываю другую форму, в ней я хочу автоматически заполнить другое поле ввода значением из поля ввода КонтактноеЛицо.

    В модуле прописано:

    Процедура ПриОткрытии()
    Док1 = Документы.ЗаказПокупателя.ПолучитьФорму("ФормаДокумента");
    ПолеВвода5 = Док1.ЭлементыФормы.КонтактноеЛицо.Значение;
    КонецПроцедуры

    Но при отладке я заметил, что Док1.ЭлементыФормы.КонтактноеЛицо.Значение равно пустой строке. Соответственно в полеввода5 ничего не выводится Не понимаю почему так. И что прописать, чтобы вывести.
  2. TopicStarter Overlay
    Shilov
    Offline

    Shilov Опытный в 1С

    Регистрация:
    7 сен 2012
    Сообщения:
    87
    Симпатии:
    0
    Баллы:
    26
    Ну там конечно вместа полеввода5 - ЭлементыФормы.ПолеВвода5.Значение, но от этого конечно ничего не меняется.
  3. TopicStarter Overlay
    Shilov
    Offline

    Shilov Опытный в 1С

    Регистрация:
    7 сен 2012
    Сообщения:
    87
    Симпатии:
    0
    Баллы:
    26
    Док1.ЭлементыФормы.КонтактноеЛицо.Значение.Ссылка = пустая строка ; Док1.ЭлементыФормы.КонтактноеЛицо.Значение.КонтактноеЛицо.Фамилия = пустая строка. Почему так то..
  4. TopicStarter Overlay
    Shilov
    Offline

    Shilov Опытный в 1С

    Регистрация:
    7 сен 2012
    Сообщения:
    87
    Симпатии:
    0
    Баллы:
    26
    Ничего не понимаю. Допустим текст надписи могу получить таким способом. А вот из полей ввода имяющих тип справочникссылка ничего не могу получить, всегда пустая строка.
  5. uza
    Offline

    uza 1С, VBA (EXCEL), VB (.NET + WEB)

    Регистрация:
    10 июл 2007
    Сообщения:
    1.845
    Симпатии:
    1
    Баллы:
    29
    Считайте данные формы документа из которого открыли текущую форму (владелец), а не из формы несуществующего документа.
    Либо передавайте параметры из формы А в Б еще до отображения (открытия) формы Б
  6. TopicStarter Overlay
    Shilov
    Offline

    Shilov Опытный в 1С

    Регистрация:
    7 сен 2012
    Сообщения:
    87
    Симпатии:
    0
    Баллы:
    26
    Вот эта процедура написана уже в модуле формы "ФормаДокумента".
    Процедура ФормированиеКПНажатие(Элемент)
    Сообщить(ЭлементыФормы.КонтактноеЛицо.Значение.ПолноеНаименование());
    ФормаКП = ПолучитьФорму("ФормаКП");
    Если не формаКП.Открыта() Тогда
    ФормаКП.ЭлементыФормы.ПолеВвода5 = ЭлементыФормы.КонтактноеЛицо.Значение.Ссылка;
    ФормаКП.Открыть();
    КонецЕсли;
    КонецПроцедуры

    ЭлементыФормы.КонтактноеЛицо.Значение.Ссылка уже не пустое
    Но возникает ошибка:
    {Документ.ЗаказПокупателя.Форма.ФормаДокумента.Форма(3095)}: Поле объекта недоступно для записи (ПолеВвода5)
    ФормаКП.ЭлементыФормы.ПолеВвода5 = ЭлементыФормы.КонтактноеЛицо.Значение.Ссылка;

    А насчёт 1 способа что-то не дошло, возможно код бы помог)
  7. TopicStarter Overlay
    Shilov
    Offline

    Shilov Опытный в 1С

    Регистрация:
    7 сен 2012
    Сообщения:
    87
    Симпатии:
    0
    Баллы:
    26
    Если вместа ФормаКП.ЭлементыФормы.ПолеВвода5 написать ФормаКП.ЭлементыФормы.ПолеВвода5.Значение , то ошибки не возникает. Но ПолеВвода5 опять таки пустое((
  8. TopicStarter Overlay
    Shilov
    Offline

    Shilov Опытный в 1С

    Регистрация:
    7 сен 2012
    Сообщения:
    87
    Симпатии:
    0
    Баллы:
    26
    Со вторым способом разобрался, всё нормально заработало, просто процедуру ПриОткрытии не удалил, а она затерала всё)) . Напишите плиз код 1ого способа)
  9. AlexeyKh
    Offline

    AlexeyKh Опытный в 1С

    Регистрация:
    27 июл 2012
    Сообщения:
    62
    Симпатии:
    0
    Баллы:
    26
    Бред какой-то, вам надо понять одну важную вещь, 1С объектно ориентированная система, и главное в ней объект, такие как элемент справочника, документ, регистр, и т.д. Учитесь работать с объектами, с его реквизитами, свойствами и методами. Тогда не будет таких заморочек. А формы, как правило, это как уже отражение объекта и его свойств(реквизитов)
    Поэтому когда вы говорите что я открываю форму, то это пустой звук. Надо представлять себе эта форма какого объекта? Документа?
    Если документа, то вы какой-то уже существующий документ октрываете, или создаете новый документ?
    соответственно должны быть инструкции по поиску или по созданию нового объекта (документа)

    в вашем примере

    Док1 = Документы.ЗаказПокупателя.СоздатьДокумент();
    Док1.КонтактноеЛицо = КонтактноеЛицо;
    Док1.ПолучитьФорму().Открыть();
  10. TopicStarter Overlay
    Shilov
    Offline

    Shilov Опытный в 1С

    Регистрация:
    7 сен 2012
    Сообщения:
    87
    Симпатии:
    0
    Баллы:
    26
    Я открываю существующий документ. Открывается оснавная форма "ФормаДокумента", документ уже частично заполнен у него есть ссылка, дата создания, номер и прочее. По нажатию кнопки открывается другая форма "ФормаКП". В модуле этой формы описаны процедуры и функции позволяющие заполнить макет.
    Я создаю запрос
    Ссылка =
    ЗапросЗаказ = Новый Запрос;
    ЗапросЗаказ.Текст = "ВЫБРАТЬ
    | ЗаказПокупателя.Ссылка,
    | ЗаказПокупателя.Организация,
    | ЗаказПокупателя.Контрагент.НаименованиеПолное КАК Имя1
    |ИЗ
    | Документ.ЗаказПокупателя КАК ЗаказПокупателя
    |ГДЕ
    | ЗаказПокупателя.Ссылка = &Ссылка";
    ЗапросЗаказ.УстановитьПараметр("Ссылка", Ссылка);
    ВыборкаЗаказ = ЗапросЗаказ.Выполнить();
    Выборка = ВыборкаЗаказ.Выбрать();
    Выборка.Следующий();

    Чему должна быть равна переменная ссылка? Мне надо получить ссылку на документ, который я сейчас редактирую.
  11. AlexeyKh
    Offline

    AlexeyKh Опытный в 1С

    Регистрация:
    27 июл 2012
    Сообщения:
    62
    Симпатии:
    0
    Баллы:
    26
    Может книгу по 1С почитать? :roflmao: Ссылка является стандартным реквизитом, в объекте она всегда определена и задавать ее не надо.
  12. TopicStarter Overlay
    Shilov
    Offline

    Shilov Опытный в 1С

    Регистрация:
    7 сен 2012
    Сообщения:
    87
    Симпатии:
    0
    Баллы:
    26
    Дак я не задаю ссылку! Я в запросе условие пишу. Мне надо в переменную "Ссылка" всунуть ссылку на документ, который я сейчас редактирую.
  13. TopicStarter Overlay
    Shilov
    Offline

    Shilov Опытный в 1С

    Регистрация:
    7 сен 2012
    Сообщения:
    87
    Симпатии:
    0
    Баллы:
    26
    Пишу в основной форме "ФормаДокумента"
    Сообщить(Ссылка)
    В сообщениях отображается ссылка на документ редактируемый всё ок.
    Пишу в другой форме "ФормаКП"
    Сообщить(Ссылка) в итоге даже не сохраняется.
    {Документ.ЗаказПокупателя.Форма.ФормаКП.Форма(104,12)}: Переменная не определена (Ссылка)
    Сообщить(<<?>>Ссылка); (Проверка: Толстый клиент (обычное приложение))

    Хотя это 2 формы одного документа.
  14. Requin
    Offline

    Requin Опытный в 1С

    Регистрация:
    10 май 2010
    Сообщения:
    1.911
    Симпатии:
    2
    Баллы:
    29
    А что у вас в свойстве формы "Данные"?
    То, что форма находится в разделе "Формы" документа не говорит о том, что это форма этого документа. Нет такой жесткой привязки.
  15. AlexeyKh
    Offline

    AlexeyKh Опытный в 1С

    Регистрация:
    27 июл 2012
    Сообщения:
    62
    Симпатии:
    0
    Баллы:
    26
    • как форму "ФормаКП" получаете?
  16. TopicStarter Overlay
    Shilov
    Offline

    Shilov Опытный в 1С

    Регистрация:
    7 сен 2012
    Сообщения:
    87
    Симпатии:
    0
    Баллы:
    26
    А вот в этом как раз и крылась проблема. В свойствах формы "Данные" было написано левое и в "типзначения" тоже не то было..

    Форму копирнул вручную из обработки в конфигураторе.)

Поделиться этой страницей