|   |   | 
| 
 | Существует объект или нет. | ☑ | ||
|---|---|---|---|---|
| 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.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |