Имя: Пароль:
1C
1С v8
Программно сменить регистратор у набора записей
0 Juliette_
Juliette
 
26.06.23
13:17
НЗИсточник = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
    НЗИсточник.Отбор.Регистратор.Установить(РегистраторИсточник);
    НЗИсточник.Прочитать();
    Для Каждого Строка Из НЗИсточник Цикл
        Строка.Регистратор = РегистраторПриемник;
    КонецЦикла;
    НЗИсточник.Записать();

почему-то так не работает.



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

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

если так, то аналитика вся теряется
Почему первый вариант не работает?
1 Волшебник
 
26.06.23
13:21
Создайте новый набор по новому регистратору
2 Juliette_
Juliette
 
26.06.23
13:22
(1) второй вариант?
3 Juliette_
Juliette
 
26.06.23
13:31
НЗИсточник.Отбор.Регистратор.Значение = РегистраторПриемник;
исключаем, так как надо подменить регистратор на новую операцию, где есть уже проводки
4 Галахад
 
26.06.23
13:37
Справа вверху буковка "Я".
5 Juliette_
Juliette
 
26.06.23
13:59
сами там ищите. Вот решение

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

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

    КонецЦикла;
    НЗПриемник.Записать();
    
    НЗИсточник.Очистить();
    НЗИсточник.Записать();
6 Волшебник
 
26.06.23
14:19
ну и бардак у вас там...
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс