Имя: Пароль:
1C
1С v8
Движения документа через раз
0 Hans
 
19.09.12
08:37
УТ 11
создал свой регистр
подписка на событие "ПриЗаписи" на типовой регистр в котором пишутся мои движения в мой регистр.
При первом проведении пишет в мой регистр норм, при перепроведении все стирает, при следующем опять все норм.

Кто нибудь так делал движения? В чем проблемы?
1 SnarkHunter
 
19.09.12
08:39
>> В чем проблемы?

Как всегда... Ну ты понял...
2 shuhard
 
19.09.12
08:40
(0)[В чем проблемы]
улыбнуло, конечно в кривой платформе
3 Hans
 
19.09.12
08:41
При втором проведении в НабореЗаписей моего регистра все движения есть. Но в итоге после того как документ провелся - моих движений нет.
4 Живой Ископаемый
 
19.09.12
08:42
в в8 есть отладчик, гарантирую это
5 Ненавижу 1С
 
гуру
19.09.12
08:46
смотри какой режим записывать движения у документа стоит
6 WebberNSK
 
19.09.12
08:46
бида какая...
7 Ненавижу 1С
 
гуру
19.09.12
08:48
причем тут ПриЗаписи и проведение?
8 ДенисЧ
 
19.09.12
08:48
Кощмарррррр...
А ничо, что ПриЗаписи для регистра вызывается сначала для удаления движений, а потом для их записи?
9 ДенисЧ
 
19.09.12
08:49
(7) ПриЗаписи набора записей регистра...
10 Живой Ископаемый
 
19.09.12
08:50
2(8) э.. и что? при первом проведении записи сначала удаляются а потом пишутся, а при четном наоборот?
11 Fish
 
19.09.12
08:58
(0) Возможно косяк в самом алгоритме. Текст подписки в студию.
12 Hans
 
19.09.12
09:01
(5) что за режим записи движений? Режим удаления есть - "Не удалять автоматически".
(8) при перепроведении заходит в при записи только 1 раз.  Причем движения того регистра на основе которого я делаю свои записи  - есть, значит это все таки запись.
13 Прохожий
 
19.09.12
09:03
(0) Ты остатки зачем берешь с учетом текущего документа?
14 Прохожий
 
19.09.12
09:04
Товар то есть, то его уже нету...
15 Maxus43
 
19.09.12
09:04
чудо алгоритем в студию. чудес не бывает, бывают токсичные грибы
16 Hans
 
19.09.12
09:04
Текст подписки:

&наСервере
Процедура ПроВестиПорегиструДвиженияДенежныхСредств(Источник, Отказ, Замещение) Экспорт
   
   НаборЗаписей  = РегистрыНакопления.двкДвиженияДенежныхСредств.СоздатьНаборЗаписей();
   НаборЗаписей.Отбор.Регистратор.Установить(Источник.Отбор.Регистратор.Значение);
   НаборЗаписей.Прочитать();
   НаборЗаписей.Очистить();
   //ТаблицаИсточник = Источник.Выгрузить();
   //НаборЗаписей.Загрузить(ТаблицаИсточник);
   
   Для каждого СтрокаДвижений Из Источник Цикл
       
       СтрокаНабора = НаборЗаписей.Добавить();
       ЗаполнитьЗначенияСвойств(СтрокаНабора, СтрокаДвижений,,"ВидДвижения");
       
       Если ТипЗнч(Источник) = Тип("РегистрНакопленияНаборЗаписей.ДенежныеСредстваНаличные") Тогда
           СтрокаНабора.БанковскийСчетКасса =  СтрокаДвижений.Касса;    
       Иначе
           СтрокаНабора.БанковскийСчетКасса =  СтрокаДвижений.БанковскийСчет;
       КонецЕсли;
       
       Если СтрокаДвижений.ВидДвижения = ВидДвиженияНакопления.Приход Тогда
           СтрокаНабора.ПриходРасход = Истина;    
       КонецЕсли;
               
   КонецЦикла;
   //НаборЗаписей.Записывать = Истина;
   НаборЗаписей.Записать();
   
КонецПроцедуры

Это пока заготовка. В итоге мы должны получить ДДС по подразделениям. Такого типового отчета в УТ 11 О_о
17 Hans
 
19.09.12
09:05
Такого типового отчета в УТ 11 нет.
18 Волесвет
 
19.09.12
09:05
))
неперепроводить)
19 Maxus43
 
19.09.12
09:05
НаборЗаписей.Отбор.Регистратор.Установить(Источник.Отбор.Регистратор.Значение);
=
   НаборЗаписей.Отбор.Регистратор.Установить(Источник.Ссылка);
20 Maxus43
 
19.09.12
09:05
(19) + или это не документ? тогда ладно
21 Hans
 
19.09.12
09:06
(16) Регистр оборотный
22 Hans
 
19.09.12
09:07
(20) Источник это набор записей регистра.
23 Maxus43
 
19.09.12
09:07
что отладчик тут НаборЗаписей.Записать(); говорит? когда ничо нет?
24 Hans
 
19.09.12
09:08
(23) ничего не говорит. Пишет и все.
25 Maxus43
 
19.09.12
09:11
(24) всмысле что внутри "НаборЗаписей" в этот момент?
26 Ranger_83
 
19.09.12
09:12
в типовых есть процедурка в общем модуле,обрабатывающая удаление проведения,за УТ 11 точно не скажу кончено...ее глянь
27 Hans
 
19.09.12
09:14
(25) нет там ничего. Количество элементов 0
28 Maxus43
 
19.09.12
09:15
(27) ну разве не очевидно что не отрабатывает         СтрокаНабора = НаборЗаписей.Добавить();
тогда?
29 Maxus43
 
19.09.12
09:18
Источник.Отбор.Регистратор.Значение - всегда заполнено? может пустой и стирает все записи... хз
30 Hans
 
19.09.12
09:23
(28) обрабатывает.
При первом проведении НаборЗаписей заполнен как надо -  движения после проведения есть.
При втором перепроведении НаборЗаписей заполнен как надо - движений после проведения нет.
При третьем перепроведении НаборЗаписей заполнен как надо - движения после проведения есть.

(29) во всех трех случаях регистратор заполнен.

(26) наверное этот вариант остается.
31 Ненавижу 1С
 
гуру
19.09.12
09:47
(12) называется "Запись движений при проведении", особенно если у теья ПриЗаписи пишутся регистры, а не ОбработкаПроведения - взрывоопасная смесь
32 Hans
 
19.09.12
10:32
кароче скорее всего это методологическая ошибка.
33 Hans
 
19.09.12
10:37
При первом проведении записи в мой регистр пишутся только из моей подписки.
При втором проведениии из моей подписки и еще после выполнения Объект.Движения.Записать();

Почему в первый раз только 1 раз? Видимо платформа не перезаписывает движения если набор движений объекта пустой и в базе движений до этого небыло.