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

Автор Тема: Как получить значение реквизита формы в V8.2  (Прочитано 32487 раз)

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

Оффлайн Serzh

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-09-15
  • Сайт: 
Столкнулся с такой проблемой -
Ест справочник "Животное", с реквизитами "Отец" и "Мать". Чтобы получить, например, деда животного в V8.1 был такой код

           Дед = ЭлементыФормы.Животное.Значение.Отец.Отец;

в V8.2 коллекцию всех элементов управляемой формы для прямого доступа получаем словом "Элементы" (а не ЭлементыФормы).
Как получить реквизит реквизита в 8.2? Второй день мучаюсь и ничего не выходит.
Помогите, пожайлуста!!!


Оффлайн ms

  • **
  • Сообщений: 60
  • РЕПУТАЦИЯ: 8
  • КПД: 13%
  • Регистрация: 2010-04-14
  • Сайт: 
на клиенте не доступен ссылочный тип, на сервере завсегда пожалуйста
ну вот типа того
&НаСервереБезКонтекста
Функция Получить(ОбъектССылка)
 Возврат ОбъектССылка.Родитель;
КонецФункции


Оффлайн ms

  • **
  • Сообщений: 60
  • РЕПУТАЦИЯ: 8
  • КПД: 13%
  • Регистрация: 2010-04-14
  • Сайт: 
Р.S.
Дед = Получить(Элементы.Животное);

Оффлайн Serzh

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-09-15
  • Сайт: 
Спасибо за ответ, но чего то никак у меня не получается.
Если точнее, то код в 8,1 у меня был такой:

 &НаКлиенте
Процедура ОтецПриИзменении(Элемент)
   СтрокаТабличнойЧасти=ЭлементыФормы.Родословная.ТекущиеДанные;
   СтрокаТабличнойЧасти.ММ=ЭлементыФормы.Отец.Значение.Отец.Отец;
                  и т.д....       
КонецПроцедуры

Где "Родословная" - это название табличной части, а "ММ" - ячейка строки табличной части (отец отца)
Да и с &Клиент &Сервер у меня слабовато.
Поясните, пожайлуста!

Оффлайн ms

  • **
  • Сообщений: 60
  • РЕПУТАЦИЯ: 8
  • КПД: 13%
  • Регистрация: 2010-04-14
  • Сайт: 
Да будет так)

&НаКлиенте
Процедура ОтецПриИзменении(Элемент)
   СтрокаТЧ = Элементы.Родословная.ТекущиеДанные;
   Отец = ПолучитьРеквизит(СтрокаТЧ.Отец, "Родитель");
   Дед   = ПолучитьРеквизит(Отец, "Родитель");
   СтрокаТЧ.<Нужное поле>  = <Полученное значение>;
КонецПроцедуры

&НаСервереБезКонтекста
Функция ПолучитьРеквизит(ОбъектССылка, ИмяРеквизита)
    Возврат ОбъектССылка[ИмяРеквизита];
КонецФункции


Оффлайн Serzh

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-09-15
  • Сайт: 
:)

&НаКлиенте
Процедура ОтецПриИзменении(Элемент)
   СтрокаТЧ = Элементы.Родословная.ТекущиеДанные;
   Отец = ПолучитьРеквизиты(Элементы.Отец);
   ...

{Справочник.Животное.Форма.ФормаЭлемента.Форма(6)}: Ошибка при вызове метода контекста (ПолучитьРеквизиты): Метод недоступен на клиенте
   Отец = ПолучитьРеквизиты(Элементы.Отец);
по причине:
Метод недоступен на клиенте


&НаСервереБезКонтекста
Функция ПолучитьРеквизиты(Справочники.Животное, Отец);
    Возврат Справочники.Животное[Отец];
КонецФункции


{Справочник.Животное.Форма.ФормаЭлемента.Форма(81,38)}: Ожидается символ ')'
Функция ПолучитьРеквизиты(Справочники<<?>>.Животное); (Проверка: Сервер)


Куда эту скобку прилепить???

:)

Оффлайн ms

  • **
  • Сообщений: 60
  • РЕПУТАЦИЯ: 8
  • КПД: 13%
  • Регистрация: 2010-04-14
  • Сайт: 
1.
&НаКлиенте
Процедура ОтецПриИзменении(Элемент)
   СтрокаТЧ = Элементы.Родословная.ТекущиеДанные;
   Отец = ПолучитьРеквизиты(Элементы.Отец); => НЕПРАВЕЛЬНО
   Отец = ПолучитьРеквизиты(СтрокаТЧ .Отец); => ПРАВЕЛЬНО

 

Оффлайн Serzh

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-09-15
  • Сайт: 
Так у меня в реквизитах формы только "Отец" и "Мать", а уже в табличной части пошли дед, прадед и т.д. до 4-го колена. И т.е. когда записывается животное, у него на основании реквизитов формируется табличная часть. И мне вот именно нужно получить значения реквизитов, а не табличной части.
В 8,1 это было просто - на клиенте и по ссылке (как написано выше), а в 8,2 1С-овцы чего то завернули непонятное.
За ответы - огромное спасибо!!! Они мне для другого пригодились, да и с клиентом и сервером разобрался.

Оффлайн ms

  • **
  • Сообщений: 60
  • РЕПУТАЦИЯ: 8
  • КПД: 13%
  • Регистрация: 2010-04-14
  • Сайт: 
Ничего не понятного
просто надо помнить что есть на клиенте а чего нет

просто пишите сразу подробней

в процедуру получения реквизита Вы должны отправить Реквизит формы, т.к. он содержит значение (элемент формы только отображает)

т.е.
1. если это форма элемента справочника и "отец" это реквизит справочника
ПолучитьРеквизиты(Объект.Отец, "Родитель")

2. Если "Отец" - это самостоятельный реквизит формы
ПолучитьРеквизиты(Отец, "Родитель")

и т.д и т.п.




Оффлайн Serzh

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-09-15
  • Сайт: 
Ну да, в конфигураторе у справочника "Животное" есть два реквизита "Отец" и "Мать" и одна табличная часть "Родословная", и на ФормеЭлемента стоят два поля выбора "Отец" и "Мать" и табличная часть "Родословная", т.е. получается, что "Отец" - это самостоятельный реквизит формы. Но на клиенте метод "ПолучитьРеквизиты" не поддерживается. И когда я в конфигураторе в свойствах реквизита "Отец" добавляю событие ПриИзменении, то программа автоматом формирует процедуру

   &НаКлиенте
   Процедура ОтецПриИзменении(Элемент)

Т.е. получается, что при изменении реквизита отец на форме необходимо получить значение его отца, отца отца, отца отца отца, и т.д. для автоматического заполнения табличной части.


Теги:
 

Не работает метод Сдвинуть() по отношению к программно добавляемой колонке1С:Предприятие 8.3 (8.3.10.2561) Управление производственным предприятием, редакция 1.4 Приветствую, я добавляю программно свою колонку в методе ПриОткрытии() модуля формы, вот так

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

Ответов: 2
Просмотров: 277
Последний ответ 21 Сен 2017, 10:33
от Insider
Редактирование формы "Настройки пользователя".

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

Ответов: 2
Просмотров: 4806
Последний ответ 03 Авг 2011, 11:45
от t955938
Как обратиться к функции модуля формы из модуля Менеджера?

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

Ответов: 6
Просмотров: 4979
Последний ответ 10 Июл 2014, 14:05
от cska-fanat-kz
Настройка формы "Заполнение товаров"

Автор ЖаннаРаздел Пользователям "1С - Предприятие 8"

Ответов: 2
Просмотров: 580
Последний ответ 10 Мар 2017, 21:00
от Жанна
Как записать в поле ввода "Единица Измерения", которое заполняется через выбор из формы.

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

Ответов: 5
Просмотров: 270
Последний ответ 12 Окт 2017, 14:30
от Ivan94

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
160 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
56 Сообщений
alex0402
46 Сообщений
andron81_81
44 Сообщений
AIFrame
35 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
Golickoff Golickoff
28 Сообщений
BuhRust
27 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal