|
Существует объект или нет. | ☑ | ||
---|---|---|---|---|
0
MAnt
25.07.12
✎
10:47
|
Как узнать существует объект в базе или нет?
При записи документа (процедуру перед записью нельзя использовать по религиозным соображениям) создается элемент справочника и присваивается реквизиту документа. Если пользователь проводит новый документ и документ не проводится, присходит откат транзации, элемент справочника не сохраняется, а в реквизите документа "Объект не найден". В процедуре обработка проведения пытаюсь узнать элемент справочника существует или нет, но никак не получается. |
|||
1
EasyRider
25.07.12
✎
10:50
|
Реквизит.ПолучитьОбъект() сравнивать с Неопределено
|
|||
2
vicof
25.07.12
✎
10:53
|
ЭтоНовый?
|
|||
3
MAnt
25.07.12
✎
10:54
|
(2) Не подходит. Элемент справочника записан и прекрасно присваивается реквизиту документа.
|
|||
4
MAnt
25.07.12
✎
10:56
|
(1) Не работает. Возвращается нормальное значение. В запросах тоже получается получить значение.
|
|||
5
Liova
25.07.12
✎
10:56
|
Так в момент проведения элемент справочника есть в незафиксированной транзакции.
|
|||
6
Liova
25.07.12
✎
10:57
|
В порядке мозгового штурма: А если сделать запрос с ДЛЯ ИЗМЕНЕНИЯ?
|
|||
7
pumbaEO
25.07.12
✎
11:01
|
(6) какая разница, если у него транзакция отменяется в записи.
процедуру перед записью нельзя использовать по религиозным соображениям - Что за модное направление в религии? |
|||
8
Ненавижу 1С
гуру
25.07.12
✎
11:03
|
>>процедуру перед записью нельзя использовать по религиозным соображениям
ваххабит? |
|||
9
rs_trade
25.07.12
✎
11:04
|
(0) При записи документа создается элемент справочника...
франч? |
|||
10
MAnt
25.07.12
✎
11:06
|
(7)(8) До моего прихода разработан механизм, позволяющий писать куски кода в пользовательском режиме. Этот код вызывается при записи или проведении. Туда уже много всего понаписано и менять никто не даст.
(9) Фикси. |
|||
11
MAnt
25.07.12
✎
11:08
|
(6) Не сработало.
Похоже нужных методов. |
|||
12
pumbaEO
25.07.12
✎
11:08
|
(10) т.е. добавить в справочник алгоритмы реквизит булево "ПередЗаписью" и подписку на событие и вызвать алгоритм в подписке религия не позволяет?
|
|||
13
MAnt
25.07.12
✎
11:11
|
(12) Добавление новых объектов в базу - это моветон и делать это нужно только в исключительных случаях.
|
|||
14
pumbaEO
25.07.12
✎
11:14
|
(13) добавление тонны кода для борьбы с ошибкой проектирования - вот это моветон. А естественное развитие, в вашем случаи эволюция конфигурации - это реальная жизнь.
|
|||
15
IronDemon
25.07.12
✎
11:16
|
После создания объекта проверить, если не создался - документ не записываем.
Если Объект.НоменклатурнаяГруппа.Пустая() Тогда НовыйОбъект = Истина; СправочникОбъект = Справочники.НоменклатурныеГруппы.СоздатьЭлемент(); СправочникОбъект.СтавкаНДС=Перечисления.СтавкиНДС.НДС20; СправочникОбъект.УстановитьНовыйКод(); Иначе НовыйОбъект = Ложь; СправочникОбъект = Объект.НоменклатурнаяГруппа.ПолучитьОбъект(); КонецЕсли; Если СправочникОбъект = Неопределено Тогда СтрокаСообщения = "Ошибка создания номенклатурной группы."; МассивСообщений.Добавить(СтрокаСообщения); Возврат; КонецЕсли; |
|||
16
MAnt
25.07.12
✎
13:49
|
Получилось следущее: если проводится новый документ, то процедуры ПередЗаписью, ПриЗаписи, ОбработкаПроведения выполняются в одной транзации. Если какие-то действия делаются перед записью, в случае неудачного проведения они откатываются обратно. Платформа 8.2.15.310.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |