Имя: Пароль:
1C
1С v8
ОбработкаПроведения и ЭтоНовый()
,
0 1Сергей
 
22.10.12
12:39
Понятно, что в обработке проведения ЭтоНовый() всегда возвращает ложь. Как узнать тогда?

пока решил так:

Перем ЭтоНовый;

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
   ЭтоНовый = ЭтоНовый();
   ...

Процедура ОбработкаПроведения(Отказ, РежимПроведения)
   Если ЭтоНовый Тогда
   ...



Есть более правильный способ?
1 WebberNSK
 
22.10.12
12:39
через свойства, запихивать в свойство флаг перед записью
2 GLazNik
 
22.10.12
12:40
(0) посмотреть типовые не предлагать? в частности через ДополнительныеСвойства
3 1Сергей
 
22.10.12
12:40
(1) эээ.... а через переменную не проще?
4 Cube
 
22.10.12
12:41
(0) А зачем при проведении ЭтоНовый()?
5 GLazNik
 
22.10.12
12:42
(3) переменная... она актуально только в модуле... а если захотим чего в подписке на событие... или в общем модуле....
6 1Сергей
 
22.10.12
12:43
(4) мне нужно Ссылку документа кое-куда впихнуть только в случае, если документ новый
7 Жан Пердежон
 
22.10.12
12:43
(6) доп.свойства чем не катят?
8 AaNnDdRrEeYy
 
22.10.12
12:44
(5) особо одаренные Экспорт напишут перед переменной
9 Жан Пердежон
 
22.10.12
12:45
(8) моветон
10 Cube
 
22.10.12
12:45
(6) Создал документ, записал, закрыл, открыл, провел. Документ не новый по твоей логике, да?
11 1Сергей
 
22.10.12
12:46
(10) да
12 Reset
 
22.10.12
12:47
Правильнее не завязывать на это свойство алгоритм проведения
13 1Сергей
 
22.10.12
12:48
(12) мне это "кое-что" не обязательно делать при проведении, но мне нужна Ссылка. Поэтому ПередЗаписью не могу
14 1Сергей
 
22.10.12
12:49
(1) (2) (5) да, так тоже работает
15 UnAmerican
 
22.10.12
12:49
Перем ЭтоНовый;

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
   ЭтоНовый = ЭтоНовый();
   ...

Процедура ОбработкаПроведения(Отказ, РежимПроведения)
   Если ЭтоНовый Тогда
   ...

И еще внизу
ЭтоНовый=Ложь;

Не забыть. А так да ты прав он же уже сохранен перед проведением.
16 Cube
 
22.10.12
12:50
(11) Корявый алгоритм.
(13) ПередЗаписью можно получить ссылку нового. Это раз. А ещё есть ПриЗаписи и ПослеЗаписи. Это два.
17 UnAmerican
 
22.10.12
12:51
Доп свойства? А зачем переменная это новый будет локальной и не доступной из вне. Что и необходимо автору как я понял.

(16)ПослеЗаписи ЭтоНовый() всегда возвращает Ложь.
18 1Сергей
 
22.10.12
12:55
(16)>> ПередЗаписью можно получить ссылку нового.

Хм.. не знал, спасибо. Семерошные мозги у меня.
19 Cube
 
22.10.12
12:56
(17) Я к тому, что ЭтоНовый() в данном случае не нужно вообще...
20 GLazNik
 
22.10.12
12:58
(17) доп свойства оно универсальней. оно и в общем модуле и в подписке использовать можно. и не завязано на объект (на сколько я знаю, но возможности проверить есть ли экспортная переменная или нет можно только через попытка исключение)
да и в типовых (в частности УТ11) ЭтоНовый уже заполняется в доп свойства.
21 х86
 
22.10.12
12:58
ДополнительныеСвойства рулят
22 1Сергей
 
22.10.12
13:06
(19) ПередЗаписью Ссылка Пустая. Как её получить-то?
23 pumbaEO
 
22.10.12
13:07
(22) тебе уже выше сказали в (16)
24 Йюхйюх
 
22.10.12
13:08
(22) в форме при создании на сервере Параметры.Ключ.Пустая()
Не?
25 1Сергей
 
22.10.12
13:08
(23) ничо там не сказано. Там сказано, что можно, но не сказано как
26 1Сергей
 
22.10.12
13:09
(24) Зачем мне пустая? мне нужно впихнуть кое-куда ссылку на создаваемый документ. Я пытаюсь сделать это в ОбработкеПроведения, а Вы меня в ПередЗаписью отправляете
27 Cube
 
22.10.12
13:10
(22) Ну ты лентяй... СП украли?))

   НовыйКонтрагент = Справочники.Контрагенты.СоздатьЭлемент();
   НовыйКонтрагент.Наименование        = "111";
   НовыйКонтрагент.УстановитьНовыйКод();
   НовыйКонтрагент.УстановитьСсылкуНового(Справочники.Контрагенты.ПолучитьСсылку(Новый УникальныйИдентификатор));
   СсылкаНаКонтрагента = НовыйКонтрагент.ПолучитьСсылкуНового();
   
   НовыйДоговор = Справочники.ДоговорыКонтрагентов.СоздатьЭлемент();
   НовыйДоговор.Владелец                        = СсылкаНаКонтрагента;
   НовыйДоговор.Наименование                    = "1111";
   НовыйДоговор.Записать();
   
   НовыйКонтрагент.ОсновнойДоговор = НовыйДоговор.Ссылка;
   НовыйКонтрагент.Записать();
28 1Сергей
 
22.10.12
13:11
(27) а если там ошибка в проведении будет, он удалить эту Ссылку Нового?
29 1Сергей
 
22.10.12
13:12
(28) в смысле, если "Отказ = Истина;" случится
30 Cube
 
22.10.12
13:13
(28) Ну так ты же нам задачу не описал... Как можно советовать непонятно для чего?
31 1Сергей
 
22.10.12
13:16
(30) мне нужно в один из реквизитов записать ссылку на себя, тольк в случае нового документа. Если в последствии этот реквизит изменится(очистится), то ничего уже не делать
32 Cube
 
22.10.12
13:20
(31) Что за бред... У объекта есть реквизит, в котором хранится ссылка этого же объекта? Зачем?
33 1Сергей
 
22.10.12
13:23
(32) это Сделка, Расчетный документ. Нужен во взаиморасчетах. По умолчанию Расчетным документом должен быть сам документ. Но, в особых случаях его меняют на другой документ или вообще оставляют пустым для метода Фифо
34 Reset
 
22.10.12
13:23
" в один из реквизитов записать ссылку на себя" :]{}
35 Reset
 
22.10.12
13:25
Впрочем, мне все равно.

В (27) достаточно и Справочники.Контрагенты.ПолучитьСсылку()
без нового УникальногоИдентификатора
36 Cube
 
22.10.12
13:26
(33) =))) Велосипед изобретаешь? Посмотри в типовых. Там везде оставляют сделку пустой, если надо провести по новой сделке (или закрыть остатки по ФИФО). Так что не городи огород - оставляй реквизит пустым, а при проведении проверка:
Если НЕ ЗначениеЗаполнено(ТекСтрока.Сделка) Тогда...
37 Reset
 
22.10.12
13:26
Параметр для ПолучитьСсылку нужен только тогда, когда хотим указать конкретную ссылку
38 Cube
 
22.10.12
13:27
(35) В УФ оказалось недостаточно. Хотя, я сравнительного тестирования не делал :)
39 1Сергей
 
22.10.12
13:28
(36) Мне нужно какраз, чтобы не методом фифо по умолчанию делал, а по текущему документу. Просто, в базе бардак. Предложил ГЛбуху перепровести все документы и выровнять Фифо, но она на отрез отказалась.
40 Reset
 
22.10.12
13:28
Как УФ могут влият на поведение менеждера справочника, мне непонятно. Но судить не буду опыта работы с УП нет (
41 Агент Инфостарта
 
22.10.12
13:30
(0) В любой типовой на БСП посмотри модуль любого документа.
42 Cube
 
22.10.12
13:31
(39) Конфа типовая? В некоторых конфигурациях есть ещё такой реквизит, как "Режим зачета авансов" со значениями "Автоматически", "Вручную" и "Не зачитывать". Иногда это реализовано в виде реквизита договора.
43 1Сергей
 
22.10.12
13:51
(42) Частично типовая Бухня Казахстанская, она похоже на российскую.
Режима зачета аванса не нахожу
44 Cube
 
22.10.12
13:56
(43) Да ладно с этим зачетом... Может проще сделать корректировки на какую-нибудь дату и закрыть старый период, чтоб не лазили? А после этой даты восстановить учет и всё будет красиво. Зачем этот геморрой с сделками городить...
45 1Сергей
 
22.10.12
14:02
(44) там автоматом не всё получится сделать. Кароче, разберусь, спасибо