Имя: Пароль:
1C
1С v8
Перебрать "операцияБух"
0 sergey198
 
22.01.14
14:34
Привет, нужно вместо одного счета поставить другой
    Пока Выборка.Следующий() Цикл

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


Но почему то старая аналитика остается,
в чем может быть дело?
1 sergey198
 
22.01.14
14:35
и при записи пишет что запись не верна
2 sergey198
 
22.01.14
14:36
раньше было у субконто1 - справочник "ДДС"
после замены на другой - "контрагенты"
Но при записи ругается ,что нельзя для этого счета оставлять аналитику "ДДС", пробовал
эл.СубконтоДт.СтатьиДвиженияДенежныхСредств = Неопределено
непомагает
3 zak555
 
22.01.14
14:37
странно, что это работает
4 Dionisious
 
22.01.14
14:40
БухгалтерскийУчет.УстановитьСубконто(Эл.СчетДт, Эл.СубконтоДт, 1, Справочники.Контрагенты.НайтиПоКоду("000000009"));
БухгалтерскийУчет.УстановитьСубконто(Эл.СчетДт, Эл.СубконтоДт, 2, Справочники.ДоговорыКонтрагентов.НайтиПоКоду("000000808"));
БухгалтерскийУчет.УстановитьСубконто(Эл.СчетДт, Эл.СубконтоДт, 3, Неопределено);

Попробуй так. Хотя врят ли.
5 Dionisious
 
22.01.14
14:40
Хотя КонецЦикла то нет. Два раза.
6 maksim358
 
22.01.14
14:44
ты точкой останова посмотри что он у тебя оставляет после замены субконто в записи.
7 sergey198
 
22.01.14
14:44
(5) недописал просто конеццикла.
8 sergey198
 
22.01.14
14:45
(6) в конце цикла остовляет как нужно, дальше если посмотреть в самом модуле операции призаписи то почему то остается ДДС заполненым
9 maksim358
 
22.01.14
14:46
(8) присвой субконто пустую ссылку и ничего там не будет
10 Dionisious
 
22.01.14
14:48
Сначала очисти субконто по номеру. Потом меняй счет. Затем заполняй субконто.
11 sergey198
 
22.01.14
14:51
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|    ОперацияБух.Ссылка
|ИЗ
|    Документ.ОперацияБух КАК ОперацияБух
|ГДЕ
|    ОперацияБух.Дата >= &Дата";
Запрос.УстановитьПараметр("Дата", НачалоДня(Дата(2013,08,28)));
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
    
    НабЗаписей=РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
    НабЗаписей.Отбор.регистратор.Установить(выборка.Ссылка);
    НабЗаписей.Прочитать();
    Для каждого эл из   НабЗаписей цикл
        эл.СубконтоДт.СтатьиДвиженияДенежныхСредств = Неопределено;
        эл.СчетДт = ПланыСчетов.Хозрасчетный.РасчетыСПрочимиПокупателямиИЗаказчикамиВал;
        БухгалтерскийУчет.УстановитьСубконто(Эл.СчетДт, Эл.СубконтоДт, 1, Справочники.Контрагенты.НайтиПоКоду("000000009"));
        БухгалтерскийУчет.УстановитьСубконто(Эл.СчетДт, Эл.СубконтоДт,2, Справочники.ДоговорыКонтрагентов.НайтиПоКоду("000000808"));
        НабЗаписей.Записать();
    КонецЕсли;
КонецЦикла;
НабЗаписей.Записать();
КонецЦикла;
12 sergey198
 
22.01.14
14:52
непомогает
13 sergey198
 
22.01.14
14:52
не пойму в чем дело..
14 maksim358
 
22.01.14
14:55
очисти субконто, а не делай неопределенно
15 maksim358
 
22.01.14
14:56
эл.СубконтоДт.Очистить();
16 maksim358
 
22.01.14
14:56
потом уже присваивай новый счет и его субконто.
17 sergey198
 
22.01.14
14:59
(15) спасибо помогло