|
Справочник. Создается новая запись или редактируется существующая | ☑ | ||
---|---|---|---|---|
0
dizpers
24.04.12
✎
21:08
|
Здравствуйте!
Продолжая тему разработки решения для кинотеатра, прошу помощи в следующем. Есть справочник мест и периодический РС, в котором хранятся состояния мест (свободно, занято, ремонт, бронь). Если в справочник мест был добавлен новый элемент, надо установить начальное состояние в РС - свободно. Если же запись редактируется, то никаких изменений в РС вносить не надо. Вопрос в следующем - как программно узнать - редактируется запись справочника или же создается новая? |
|||
1
Aleksey
24.04.12
✎
21:11
|
СправочникОбъект.<Имя справочника> (CatalogObject.<Имя справочника>)
ЭтоНовый (IsNew) Синтаксис: ЭтоНовый() Возвращаемое значение: Тип: Булево. Истина - изменяется еще ни разу не записанный элемент; Ложь - элемент уже записан. Описание: Определяет, записан ли элемент в базу данных. Доступность: Сервер, толстый клиент, внешнее соединение. Пример: Если Объект.ЭтоНовый() Тогда Объект.Наименование = "Новый элемент"; КонецЕсли; |
|||
2
aleks-id
24.04.12
✎
21:11
|
этоновый
|
|||
3
Aleksey
24.04.12
✎
21:11
|
А что мешает перед записью прочитать РС и если там ничего нет (вернули 0 записей), то пишем свободно
|
|||
4
CepeLLlka
24.04.12
✎
21:14
|
(3) Да так то можно и на бумагу писать в принципе.. а потом сверять..
|
|||
5
aleks-id
24.04.12
✎
21:14
|
(3) интересно, что ты туда передашь в качестве параметра ;)
|
|||
6
Oleg_Kag
24.04.12
✎
21:15
|
Если Объект.Ссылка.Пустая() Тогда
|
|||
7
dizpers
24.04.12
✎
21:20
|
Всем спасибо за ответы!
(3) Логически идею понимаю, подскажите как реализовать. |
|||
8
dizpers
24.04.12
✎
21:32
|
сделал вот так
Перем Добавление; Процедура ПередЗаписью(Отказ) Если (Наименование = "") Тогда Добавление = Истина; КонецЕсли; Наименование = Зал.Наименование + "-" + Строка(Ряд) + "-" + Строка(Место); КонецПроцедуры Процедура ПослеЗаписи() Если (Добавление) Тогда СостояниеМест = РегистрыСведений.СостояниеМест.СоздатьМенеджерЗаписи(); СостояниеМест.Место = Место; СостояниеМест.Состояние = Перечисления.ВидыСостоянийМест.Свободно; КонецЕсли; КонецПроцедуры Добавление = Ложь; Но тут всплыл подводный камень. С этим регистром должен уметь работать еще и документ ИзменениеСостояниеМеста. А для этого у РС установлен режим записи - подчинение регистратору. А с таким режимом создать менеджер записи нельзя. Как решить такой вопрос? |
|||
9
Oleg_Kag
24.04.12
✎
21:40
|
Документ.ИзменениеСостоянияМеста.ПустаяСсылка()
в качестве регистратора сработает? |
|||
10
Лоботряс
24.04.12
✎
21:43
|
Нафига вообще при создании нового места вносить что-то в регистр состояния?
(9) не сработает |
|||
11
dizpers
24.04.12
✎
21:43
|
(9) Не сработало
{Справочник.Места.Форма.ФормаЭлемента(12)}: Ошибка при вызове метода контекста (СоздатьМенеджерЗаписи): Менеджер записи не может быть использован для регистра с режимом записи "Подчинение регистратору" СостояниеМест = РегистрыСведений.СостояниеМест.СоздатьМенеджерЗаписи(); по причине: Менеджер записи не может быть использован для регистра с режимом записи "Подчинение регистратору" |
|||
12
dizpers
24.04.12
✎
21:44
|
(10) Чтобы инициализировать состояние вновь добавленного места. Думаешь это лишнее?
Хм, надо подумать. |
|||
13
Oleg_Kag
24.04.12
✎
21:46
|
Может лучше сделать реквизитом?
|
|||
14
Лоботряс
24.04.12
✎
21:46
|
Лучше в отбор списка свободных мест(где только он у тебя будет не знаю) добавь отбор по последнему состоянию "свободен" ИЛИ отсутсвию каких-либо записей
|
|||
15
Лоботряс
24.04.12
✎
21:48
|
Делается просто левым соединением справочника со срезом последних по регистру
|
|||
16
dizpers
24.04.12
✎
21:54
|
(14) и (15) - это мысль, спасибо! сейчас опробую!
|
|||
17
Мимохожий Однако
24.04.12
✎
23:38
|
Создай документ Сеанс и в нём регистрируй места. При проведении документа пиши в РС Свободные места только те, что нужно.
|
|||
18
mistеr
25.04.12
✎
05:43
|
(11) Если РС подчинен регистратору, писать нужно только документом.
Подсказка. Документ можно создать и провести программно. Подсказка2. Но надо ли? Тем более ради одного места. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |