Значение по умолчанию для справочника
05.07.12, 16:58
Завсегдатай
Группа: Местный
Сообщений: 178
Из: Харьков
Спасибо сказали: 27 раз
Рейтинг: 0
Задача: Есть справочник Задачи.
У этого справочника есть реквизит Стадия, у которого тип ПеречислениеСсылка.Стадии
В Перечислении Стадии есть значения "Рассматривается", "Отложено".
Вопрос: как при создании новой Задачи, по умолчанию заполнить реквизит Стадия значением "Рассматривается".
Что пробовал: 1.
Процедура ОбработкаЗаполнения(Основание) Объект.Стадия = Перечисления.Стадии.Рассматривается; КонецПроцедуры
но, я так понял, эта процедура не вызывается при вводе нового элемента справочника.
2.
&НаСервере Процедура ПолучитьЗначениеПеречисления() Если Объект.Ссылка.Пустая() Тогда Объект.Стадия = Перечисления.Стадии.Рассматривается; КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ПриОткрытии(Отказ) ПолучитьЗначениеПеречисления(); КонецПроцедуры
так работает, но наверно можно сделать как-то элегантней.
1С:Предприятие 7.7 БУ + ТиС + ЗП и кадры 7.70.031 для Украины 1С:Предприятие 8.3 УТП для Украины 1.2.28.1 (обычные формы)
06.07.12, 13:14
Ветеран
Группа: Местный
Сообщений: 824
Из: Запорожье
Спасибо сказали: 145 раз
Рейтинг: 0
Цитата(Vofka @ 05.07.12, 19:55)
Если делать так
Если Объект.Ссылка.Пустая() Тогда Объект.Стадия = Перечисления.Стадии.Рассматривается; КонецЕсли;
то этот код лучше вынести в
ПриСозданииНаСервере , избавитесь от лишнего серверного вызова.
Я конечно извиняюсь, а чем мой вариант хуже?
Да и код писать вообще не надо.
ЗЫ: Перечисление то по умолчанию предопределенным является. Или я не прав?
Сообщение отредактировал DartRomanius - 06.07.12, 13:15
----------------------------------------------------------------------------------- Единственный, интуитивно понятный интерфейс - мамкина сиська! Всему остальному надо учиться! (с) Не знаю кто....
07.07.12, 12:00
Завсегдатай
Группа: Местный
Сообщений: 178
Из: Харьков
Спасибо сказали: 27 раз
Рейтинг: 0
Цитата(DartRomanius @ 05.07.12, 18:31)
Свойства реквизита - Значение Заполнения.
Спасибо, эффективное решение.
Правда если надо заполнить реквизит типа Дата, значением ТекущаяДата() надо выворачивать по другому.
Цитата(Vofka @ 05.07.12, 19:55)
Если делать так
Если Объект.Ссылка.Пустая() Тогда Объект.Стадия = Перечисления.Стадии.Рассматривается; КонецЕсли;
то этот код лучше вынести в
ПриСозданииНаСервере , избавитесь от лишнего серверного вызова.
&НаСервере Процедура ПриСозданииНаСервере() Объект.Стадия = Перечисления.Стадии.Рассматривается; КонецПроцедуры
возможно что-то не учел, но у меня эта процедура не вызывается, отладчиком смотрел.
Сообщение отредактировал Vofka - 07.07.12, 12:28
Причина редактирования: Выделяем код
1С:Предприятие 7.7 БУ + ТиС + ЗП и кадры 7.70.031 для Украины 1С:Предприятие 8.3 УТП для Украины 1.2.28.1 (обычные формы)
07.07.12, 13:25
Завсегдатай
Группа: Местный
Сообщений: 178
Из: Харьков
Спасибо сказали: 27 раз
Рейтинг: 0
Цитата(Vofka @ 07.07.12, 13:29)
Процедура возникает на сервере при создании формы.
Это я понял из названия процедуры.
В модуль формы вписал этот код
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Объект.Стадия = Перечисления.Стадии.Рассматривается; КонецПроцедуры
Далее создаю новый элемент справочника и смотрю заполнился ли реквизит Стадия . Он не заполнился.
1С:Предприятие 7.7 БУ + ТиС + ЗП и кадры 7.70.031 для Украины 1С:Предприятие 8.3 УТП для Украины 1.2.28.1 (обычные формы)
07.07.12, 15:31
Завсегдатай
Группа: Местный
Сообщений: 178
Из: Харьков
Спасибо сказали: 27 раз
Рейтинг: 0
Цитата(Vofka @ 07.07.12, 14:51)
Неужели и сообщение никакое не выводит, если там написать Сообщить("работает") ?
Разобрался. Зашел в свойства формы. Нашел эту процедуру, она заполнена правильным именем.
Попытался перейти в эту процедуру через лупу - ничего не случилось.
Поклацал на другие процедуры - тоже самое. Хотя до того как создал эту процедуру - заходило.
В итоге выбросило с конфигуратора с ошибкой.
Зашел - убрал код процедуры. Заново создал обработчик через лупу в свойствах формы.
Заработало.
1С:Предприятие 7.7 БУ + ТиС + ЗП и кадры 7.70.031 для Украины 1С:Предприятие 8.3 УТП для Украины 1.2.28.1 (обычные формы)
09.07.12, 9:41
Ветеран
Группа: Местный
Сообщений: 824
Из: Запорожье
Спасибо сказали: 145 раз
Рейтинг: 0
Цитата(Log1c @ 07.07.12, 13:00)
Спасибо, эффективное решение.
Правда если надо заполнить реквизит типа Дата, значением ТекущаяДата() надо выворачивать по другому.
&НаСервере Процедура ПриСозданииНаСервере() Объект.Стадия = Перечисления.Стадии.Рассматривается; КонецПроцедуры
возможно что-то не учел, но у меня эта процедура не вызывается, отладчиком смотрел.
Как не вызывается?
Эта процедура (естественно если прописать в свойствах формы) вызывается всегда, даже если не новый объект.
----------------------------------------------------------------------------------- Единственный, интуитивно понятный интерфейс - мамкина сиська! Всему остальному надо учиться! (с) Не знаю кто....
Не нашли ответа на свой вопрос?
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!