Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Автозаполнение табличного документа
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
burza
Есть форма с табличной частью при добавлении новой строки нужно чтобы в поле выбора статуса он заполнялся автоматически(какой укажу) сейчас есть вот это. Понимаю что справочник нужно проводить через сервер но не могу понять как потом вставить переменную сюда.
&НаКлиенте
Процедура ПланПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
    Если НоваяСтрока И Не Копирование тогда
        Элемент.ТекущиеДанные.Дата = ТекущаяДата();
        Элемент.ТекущиеДанные.СтатусВыполнения = Справочники.СтатусВыполнения.НайтиПоНаименованию("В работе");
    КонецЕсли;

КонецПроцедуры

Vidocq05
burza @ Сегодня, 14:00 необходимо зарегистрироваться для просмотра ссылки ,
Давно не работал с управляемым приложением.
Попробуйте так:
&НаКлиенте
Процедура ПланПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
    Если НоваяСтрока И Не Копирование тогда
        Элемент.ТекущиеДанные.Дата = ТекущаяДата();
        Элемент.ТекущиеДанные.СтатусВыполнения = ПолучитьСтатусСервер();
    КонецЕсли;

КонецПроцедуры

&НаСервереБезКонтекста
Функция ПолучитьСтатусСервер()
    Возврат Справочники.СтатусВыполнения.НайтиПоНаименованию("В работе");
КонецФункции

burza
Vidocq05 @ Сегодня, 15:38 необходимо зарегистрироваться для просмотра ссылки ,
Спасибо помогло)
logist
Помогло, но с точки зрения программирования это не совсем правильно, если у вас один и тот же статус (даже если не один можно хранить их в Соответствии), то каждый раз дергать сервер не имеет смысла, лучше сделать реквизит формы, в который ПриСозданииНаСервере поместить нужное значение, и присваивать его в нужном месте, не вызывая сервер.
Vofka
logist, зачем так сложно?
Можно разве что вынести получение статуса за пределы цикла:

&НаКлиенте
Процедура ПланПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)

    Статус_ВРаботе = ПолучитьСтатусСервер();

    Если НоваяСтрока И Не Копирование тогда
        Элемент.ТекущиеДанные.Дата = ТекущаяДата();
        Элемент.ТекущиеДанные.СтатусВыполнения = Статус_ВРаботе;
    КонецЕсли;

КонецПроцедуры

&НаСервереБезКонтекста
Функция ПолучитьСтатусСервер()
    Возврат Справочники.СтатусВыполнения.НайтиПоНаименованию("В работе");
КонецФункции


А вообще может платформа ещё и закеширует значение статуса при первом обращении и далее при проходе цикла на сервер обращаться не будет.
logist
Цитата(Vofka @ 13.11.17, 10:01) необходимо зарегистрироваться для просмотра ссылки
logist, зачем так сложно?

Это не я придумал, посмотри, например УТ3, там создается некий реквизит на форме (а-ля ДополнительныеСвойства), типа Структура, и по ходу работы формы с этим реквизитом работает клиентская часть, и считаю, что это очень удобно - перед открытием формы сгрести туда с сервера всё статичное что может понадобиться, и не создавать кучу лишних процедур СерверБезКонтекста, и т.п.

Цитата(Vofka @ 13.11.17, 10:01) необходимо зарегистрироваться для просмотра ссылки
вообще может платформа ещё и закеширует значение статуса при первом обращении

Ага, где-то в релизе платформы 8.43, они добавят директиву НаСервереБезКонтекстаПовторноеИспользование smile.gif)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.