Имя: Пароль:
1C
1С v8
Запись в регистр накопления двух значений из одного регистратора
0 Pvladimir
 
27.10.14
13:33
Добрый день, подскажите плиз как записать из одного документа в регистр накопления два разных значения. У меня записывает только одно, хотя значения разные !?
1 Pvladimir
 
27.10.14
13:34
Если ЭтотОбъект.СуммаБонуса<>0 Тогда
        Режим = РежимДиалогаВопрос.ДаНет;
        Ответ = Вопрос("Добавляем сумму бонуса "+ВидБонуса, Режим, 0);
        Если Ответ = КодВозвратаДиалога.Нет Тогда
            Возврат;
        КонецЕсли;    
        НачислениеБонуса=перечисления.ВидыБонусовКонтрагента.ПоОтгрузке;
         НаборЗаписейРегистра = РегистрыНакопления.БонусыКонтрагентов.СоздатьНаборЗаписей();
         НаборЗаписейРегистра.Отбор.Регистратор.Установить(ЭтотОбъект.Ссылка);    

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

        Движения.БонусыКонтрагентов.Записывать=Истина;
        Движения.БонусыКонтрагентов.Очистить();
        Движение =Движения.БонусыКонтрагентов.Добавить();
        Движение.ВидДвижения=ВидДвиженияНакопления.Приход;
        Движение.Период=ЭтотОбъект.Дата;
        Движение.Контрагент=Контрагент;
        Движение.ДоговорКонтрагента=ДоговорКонтрагента;
        Движение.Организация=Организация;
        Движение.Регистратор=ЭтотОбъект.Ссылка;
        Движение.ВидБонуса=ЭтотОбъект.ВидБонуса1;  
        Движение.Сделка=ЭтотОбъект.Ссылка;
        Движение.СуммаУпр=СуммаБонуса1;
        Движение.Коэффициент= Коэффициент1;
        Сообщить("Добавлена сумма бонуса "+СуммаБонуса1+" руб. "+"Вид бонуса - "+ВидБонуса1);
    КонецЕсли;
2 Локи-13
 
27.10.14
13:37
может просто второй раз не очищать регистр?
3 Крошка Ру
 
27.10.14
13:38
(0)Ну а сам как думаешь? Наверное, потому что у тебя два набора записей и первый ты затираешь?
4 Локи-13
 
27.10.14
13:38
и вообще, доверьте это дело профессионалам.
5 Крошка Ру
 
27.10.14
13:38
+(3)  *два набора записей с одинаковым отбором
6 Локи-13
 
27.10.14
13:39
ой, да, да тут вообще код неправильно написан (
7 Крошка Ру
 
27.10.14
13:40
(4) Предлагаю этот слоган ввести в качестве первого автокомментария ко всем темам.
8 Nenaviwu1c20
 
27.10.14
13:41
Движения.БонусыКонтрагентов.Записывать=Истина;
        Движения.БонусыКонтрагентов.Очистить();
9 Pvladimir
 
27.10.14
13:49
так а если его (документ) нужно перепровести с новыми значениями ?
10 katc
 
27.10.14
13:53
Ответ = Вопрос("Добавляем сумму бонуса "+ВидБонуса, Режим, 0);
за вопрос пользователю в момент проведения просто не пять, а десять.
11 hhhh
 
27.10.14
13:57
(9) ну вы пишете во втором бонусе

       Движения.БонусыКонтрагентов.Очистить();

то есть вычищаете первый бонус.
12 Pvladimir
 
27.10.14
13:57
Можешь себе забрать Андрей)) Спасибо всем!)