Имя: Пароль:
1C
1С v8
Не могу сделать движение по регистру
,
0 Wefast
 
19.08.15
16:44
Процедура СделатьРасходПоРегиструУчетаЛизинговыхОпераций(Заявка, СуммаОплаты)//КА++
    
    Движения.КА_УчетПлатежейПоЛизингу.Записывать = Истина;
    Движения.КА_УчетПлатежейПоЛизингу.Очистить();    
    Движение = Движения.КА_УчетПлатежейПоЛизингу.Добавить();
    
    Движение.Регистратор          = ЭтотОбъект;
    Движение.ВидДвижения         = ВидДвиженияНакопления.Расход;
    Движение.Период                = ЭтотОбъект.ДатаОплаты;
    Движение.Дата                 = ЭтотОбъект.ДатаОплаты;
    Движение.Организация         = Заявка.Организация;

КонецПроцедуры

Все это в модуле объекта. Вызываю все это при выполнение условия.
Он ни на что не ругается, но и записи не появляются.

Думал регистратор нужно принудительно передать, но он его не записывает так все равно
1 ДенисЧ
 
19.08.15
16:45
Движение.Регистратор          = ЭтотОбъект.Ссылка;
2 КоньЛапчатый
 
19.08.15
16:47
(0) движения запиши в конце
3 DexterMorgan
 
19.08.15
16:54
ставлю на первого оратора
4 DexterMorgan
 
19.08.15
16:55
(2) ваш совет вреден, сэр
5 КоньЛапчатый
 
19.08.15
16:56
(4) это почему?
6 Wefast
 
19.08.15
17:08
(1) Записать в Движение.Регистратор получилось.
А вот сделать движение - нет.

(2) Добавил в конце Движения.КА_УчетПлатежейПоЛизингу.Записать();

Ничего не изменилось
7 Wefast
 
19.08.15
17:10
Я заметил что у стандартной процедуры проведения в параметрах стоит Отказ и РежимПроведения, хотя оба этих параметра явно нигде не участвуют. Тут же у меня их нет.
8 DexterMorgan
 
19.08.15
17:11
(5) Если установлено свойство Записывать в Истина, движения итак запишутся по окончании транзакции
9 DexterMorgan
 
19.08.15
17:13
(0) Твоя процедура из обработки проведения вызывается?
10 КоньЛапчатый
 
19.08.15
17:16
(8) вообще не факт. 1С довольно непредсказуемая штука.
11 Wefast
 
19.08.15
17:17
(9) нет
12 ДенисЧ
 
19.08.15
17:17
(11) Хм.... А почему?
13 DexterMorgan
 
19.08.15
17:18
(11) жж0шь
14 DexterMorgan
 
19.08.15
17:18
(10) Спасибо, поржал
15 КоньЛапчатый
 
19.08.15
17:19
(11) а откула она тогда вызывается?)
16 КоньЛапчатый
 
19.08.15
17:19
(14) пожалуйста
17 Wefast
 
19.08.15
17:21
(12) (13) Движение должно происходить в момент когда Статус заявки на расходование средств становиться Оплачено.
Вот в момент когда вызывается эта процедура изменения статуса на оплачено я и вызываю свою процедуру
18 DexterMorgan
 
19.08.15
17:21
(17) Набор регистра создавай
19 DexterMorgan
 
19.08.15
17:22
(17) Хотя что тебе мешает все равно сделать в обработке проведения и там проверять твой статус?
20 Wefast
 
19.08.15
17:26
(19) ну думал не целесообразно копировать тот же код в обработку проведения

Попробую сейчас набор сделать а если не выйдет сделать в обработкеПроведения
21 Nuobu
 
19.08.15
17:27
(20) Лучше сразу в обработке проведения.
22 Cherokee
 
19.08.15
17:33
(0) Тысячелетней давности код. когда-то зачем-то правил движения документов обработкой. Сделай похожим образом, должно сработать (я так понял, ты из обработки чето пытаешься записать?)

    Набор = РегистрыНакопления.ПартииТоваровНаСкладах.СоздатьНаборЗаписей();
    Набор.Отбор.Регистратор.Установить(Док);
    Набор.Прочитать();
    Для Каждого Движ Из Набор Цикл
........................
    КонецЦикла;
    
    Набор.Записать();
23 Cherokee
 
19.08.15
17:33
+(22) Ах да. Док - это ссылка, а не объект. Ессно.
24 DexterMorgan
 
19.08.15
17:36
(20) Конечно лучше в обработке проведения. При создании набора у тебя могут возникать удивительные ситуации непроведенного документа с движениями и тд
25 Wefast
 
19.08.15
17:45
Процедура СделатьРасходПоРегиструУчетаЛизинговыхОпераций(Заявка, СуммаОплаты)//КА++
    ДвиженияПоРегиструКА = РегистрыНакопления.КА_УчетПлатежейПоЛизингу.СоздатьНаборЗаписей();
    ДвиженияПоРегиструКА.Отбор.Регистратор.Установить(ЭтотОбъект.Ссылка);
    ДвиженияПоРегиструКА.Прочитать();
    ДвиженияПоРегиструКА.Записывать = Истина;
        
    Движение = ДвиженияПоРегиструКА.ДобавитьРасход();
            
    КурсТекущейВалюты = РегистрыСведений.КурсыВалют.ПолучитьПоследнее(ТекущаяДата(),Новый Структура("Валюта",ЭтотОбъект.ВалютаДокумента));
    КурсВалютыВзаиморасчетов = РегистрыСведений.КурсыВалют.ПолучитьПоследнее(ТекущаяДата(),Новый Структура("Валюта",Заявка.РасшифровкаПлатежа[0].ДоговорКонтрагента.ВалютаВзаиморасчетов));

    Движение.Активность = ИСТиНА;
    
    Движение.Регистратор          = ЭтотОбъект.Ссылка;
    Движение.ВидДвижения         = ВидДвиженияНакопления.Расход;
    Движение.Период                = ЭтотОбъект.ДатаОплаты;
    Движение.Дата                 = ЭтотОбъект.ДатаОплаты;
    Движение.Организация         = Заявка.Организация;
    Движение.Контрагент         = Заявка.Контрагент;
    Движение.Договор             = Заявка.РасшифровкаПлатежа[0].ДоговорКонтрагента;
    Движение.ЦФО                 = Заявка.Подразделение;
    Движение.ПредметЛизинга     = Заявка.ДокументОснование.ПредметЛизинга;
    
    Движение.ДатаПлатежа         = Заявка.ДатаРасхода;
    Движение.СтатьяДДС             = ЭтотОбъект.СтатьяДвиженияДенежныхСредств;
        
    Если ЭтотОбъект.ВалютаДокумента = Заявка.РасшифровкаПлатежа[0].ДоговорКонтрагента.ВалютаВзаиморасчетов Тогда
        Движение.Сумма                 = СуммаОплаты;
    Иначе             
        Движение.Сумма                 = Окр(СуммаОплаты*(КурсТекущейВалюты.курс/КурсТекущейВалюты.кратность)*(КурсВалютыВзаиморасчетов.кратность/
    КонецЕсли;    

    ДвиженияПоРегиструКА.Записать();    
КонецПроцедуры


Никаких изменений в регистре не происходит
26 Cherokee
 
19.08.15
18:04
(25) Чето нет мыслей. А откуда ты запускаешь этот код? Вот только, я не уверен, но. А зачем ты пишешь:

Движение = ДвиженияПоРегиструКА.ДобавитьРасход();

А затем:
    Движение.ВидДвижения         = ВидДвиженияНакопления.Расход;

Какое-то масло масляное.
27 Wefast
 
19.08.15
19:04
(26) Ну убрал видДвиженияНакопления.Расход.

Запускаю его из модуля объекта документ ПлатежноеПоручениеИсходящее
28 Cherokee
 
19.08.15
19:18
(27) Может что-то в модуле регистра?
29 Cherokee
 
19.08.15
19:18
Вообще, что это за конфа? Если УПП, то там из Таблиц значений пишутся движения, заранее подготовленных и в структурах передаваемых.
30 Wefast
 
19.08.15
19:57
(29) да УПП.
Регистр мой, ничего там не дописывал после создания.

Я заметил что там трудновато для понимания делаются движения.

Есть какой нибудь пример или как это все делается через ТЗ?
31 Cherokee
 
19.08.15
20:05
(30) А точно, название то у регистра какое))). Тогда про использование ТЗ в структуре - не твой вариант. Что-то я затрудняюсь еще внятное что-то сказать. Может кто-то другой подскажет.
32 Wefast
 
19.08.15
20:06
(31) регистр накопления КА_УчетПлатежейПоЛизингу
33 Wefast
 
19.08.15
22:11
Было:
Движения.КА_УчетПлатежейПоЛизингу.Записывать = Истина;
Движения.КА_УчетПлатежейПоЛизингу.Очистить();    
Движение = Движения.КА_УчетПлатежейПоЛизингу.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;


Сделал конструктором, а потом в старый код вставил:
Движения.КА_УчетПлатежейПоЛизингу.Очистить();
Движение = Движения.КА_УчетПлатежейПоЛизингу.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;

Вроде все что я сделал и заработало
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.