Имя: Пароль:
1C
1С v8
v8: Изменение проводок документа
0 Aleksei_Pro
 
29.10.13
10:38
НаборЗаписейБУ = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
        НаборЗаписейБУ.Отбор.Регистратор.Использование = Истина;
        НаборЗаписейБУ.Отбор.Регистратор.Значение = ЭтотОбъект.Ссылка;
        НаборЗаписейБУ.Прочитать();
        Для Каждого ЗаписьБУ Из НаборЗаписейБУ Цикл
            ЗаписьБУ.СчетДт = дор_Счет;
            
            ЗаписьБУ.СубконтоДт.Очистить();
            
            БухгалтерскийУчет.УстановитьСубконто(ЗаписьБУ.СчетДт,ЗаписьБУ.СубконтоДт, 1, дор_Субконто1);            
            БухгалтерскийУчет.УстановитьСубконто(ЗаписьБУ.СчетДт,ЗаписьБУ.СубконтоДт, 2, дор_Субконто2);
            БухгалтерскийУчет.УстановитьСубконто(ЗаписьБУ.СчетДт,ЗаписьБУ.СубконтоДт, 3, дор_Субконто3);
                        
        КонецЦикла;
        НаборЗаписейБУ.Записать(Истина);        

Ребят подскажите, документ проводится - далее я меня проводки ( а именно ДТ) - код отрабатывает, отладчиком смотрб счет ДТ и судконто встают верно - но после проведения почету то проводка не меняется. Что не так сделал?
1 Wobland
 
29.10.13
10:39
написал этот код в ПередУдалением
2 ДенисЧ
 
29.10.13
10:41
нифига не понял....
Зачем делать проводки в ПередУдалением....
3 ДенисЧ
 
29.10.13
10:41
А так - в подписки смотри...
4 Aleksei_Pro
 
29.10.13
10:43
Это код написал в процедуре "Обработка проведения"
5 Aleksei_Pro
 
29.10.13
10:44
После
    Если Не Отказ Тогда
        ДвиженияПоРегистрам(Режим, Отказ, Заголовок, СтруктураШапкиДокумента);
    КонецЕсли;
6 Wobland
 
29.10.13
10:45
отбор.регистратор.установить
7 zak555
 
29.10.13
10:46
(4) написал бы в обработке
8 Aleksei_Pro
 
29.10.13
10:50
(6)? не понятно что имелось ввиду. Я же написал:

НаборЗаписейБУ.Отбор.Регистратор.Использование = Истина;
НаборЗаписейБУ.Отбор.Регистратор.Значение = ЭтотОбъект.Ссылка;
9 Wobland
 
29.10.13
10:51
(8) вида сравнения не вижу. а мож, оно и не надо
10 unregistered
 
29.10.13
10:51
(0) В обработке проведения надо делать через коллекцию Движения. Замени

НаборЗаписейБУ = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
НаборЗаписейБУ.Отбор.Регистратор.Использование = Истина;
НаборЗаписейБУ.Отбор.Регистратор.Значение = ЭтотОбъект.Ссылка;
НаборЗаписейБУ.Прочитать();


На

НаборЗаписейБУ = Движения.Хозрасчетный;
11 unregistered
 
29.10.13
10:54
+ к (10) а то получается, что ты читаешь из базы данных старые движения и что-то там с ними делаешь.
12 Aleksei_Pro
 
29.10.13
10:56
Моя цель , это заменить после проведения документа проводки по ДТ ( т.е документ провелся и сразу мне надо поменять счет ДТ и аналитику).

(10) я устанавливаю отбор по конкретному документу.
13 unregistered
 
29.10.13
10:59
(12) Читай внимательно (11) до просветления.
14 Aleksei_Pro
 
29.10.13
11:00
(13) можешь показать код как предлагаешь сделать?
15 unregistered
 
29.10.13
11:02
(14) Всё абсолютно то же самое, что в (0), но только с учетом того, что написано в (10).

В (10) я вроде русским языком написал что на что нужно заменить.
+ еще убрать последнюю строку

НаборЗаписейБУ.Записать(Истина);
16 unregistered
 
29.10.13
11:05
Примерно так должно получиться:

НаборЗаписейБУ = Движения.Хозрасчетный;
Для Каждого ЗаписьБУ Из НаборЗаписейБУ Цикл
   ЗаписьБУ.СчетДт = дор_Счет;
   ЗаписьБУ.СубконтоДт.Очистить();
   БухгалтерскийУчет.УстановитьСубконто(ЗаписьБУ.СчетДт,ЗаписьБУ.СубконтоДт, 1, дор_Субконто1);
   БухгалтерскийУчет.УстановитьСубконто(ЗаписьБУ.СчетДт,ЗаписьБУ.СубконтоДт, 2, дор_Субконто2);
   БухгалтерскийУчет.УстановитьСубконто(ЗаписьБУ.СчетДт,ЗаписьБУ.СубконтоДт, 3, дор_Субконто3);
КонецЦикла;
17 hhhh
 
29.10.13
11:20
(12) это ты не после проведения, а внутри проведения зафигачил.