Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
25 ноя 2024, 03:10

подскажите как обратиться к новой форме в 8,2

Автор StanMarsh, 16 июн 2010, 13:56

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

StanMarsh

пишу вот такой код:

Процедура ПриОткрытии(Отказ)
   Если ЭтоНовый() тогда
      АвторИзменения = Справочники.СправочникАвторов.НайтиПоНаименованию(ПользователиИнформационнойБазы.ТекущийПользователь().ПолноеИмя);
      Дата = НачалоГода(ТекущаяДата());
   КонецЕсли;
   
КонецПроцедуры

выдаёт такие ошибки:
{Справочник.СправочникИзменений.Форма.ФормаЭлемента.Форма(20,20)}: Переменная не определена (Справочники)
      АвторИзменения = <<?>>Справочники.СправочникАвторов.НайтиПоНаименованию(ПользователиИнформационнойБазы.ТекущийПользователь().ПолноеИмя); (Проверка: Тонкий клиент)
{Справочник.СправочникИзменений.Форма.ФормаЭлемента.Форма(20,70)}: Переменная не определена (ПользователиИнформационнойБазы)
      АвторИзменения = Справочники.СправочникАвторов.НайтиПоНаименованию(<<?>>ПользователиИнформационнойБазы.ТекущийПользователь().ПолноеИмя); (Проверка: Тонкий клиент)
{Справочник.СправочникИзменений.Форма.ФормаЭлемента.Форма(19,7)}: Процедура или функция с указанным именем не определена (ЭтоНовый)
   Если <<?>>ЭтоНовый() тогда (Проверка: Тонкий клиент)




Что делать как обратиться к справочнику и новой форме? :dfbbdrfb: :dfbbdrfb: :(

alexkiss

В 8.2 процедуры и функции делятся на выполняемые на клиенте и на сервере.
На клиенте недоступны объекты. То есть обращаться к элементам справочника, перечислениям... нельзя.
Пиши функцию выполняемую на сервере, которая будет получать нужное тебе значение, и используй её на клиенте.

Проверку, что объект новый можно сделать так: Если Объект.Ссылка.Пустая() Тогда...

YouAreEmpty

Цитата: alexkiss от 11 авг 2010, 13:33
Проверку, что объект новый можно сделать так: Если Объект.Ссылка.Пустая() Тогда...

Или Объект.ЭтоНовый()

mohock

Цитата: YouAreEmpty от 12 авг 2010, 10:10
Цитата: alexkiss от 11 авг 2010, 13:33
Проверку, что объект новый можно сделать так: Если Объект.Ссылка.Пустая() Тогда...

Или Объект.ЭтоНовый()

Увы, Глобальный на язаке 8.2 для данного случая такой метод как ЭтоНовый() отсутствует.
Так что Объект.Ссылка.Пустая() - правильно. А для нас извращенцев катит и такое:
Если Объект.Код = "" Тогда...  :P

Еще... Действительно, если на тонком надо получить, то что идет на сервере, то лучше сделать функцию с запросом
на сервер. А результат запроса (который может вернуть твоя функция) можно крутить на клиенте.
Главное не посылай на сервер объекты - их там нету. В противном случае получишь умопомрачительное (как многое в 1С)
про какую-то мутабельность.  :D

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск