Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Как делать запись одним документом в 2 регистра сведений по перечислениям

Как делать запись одним документом в 2 регистра сведений по перечислениям
Я
   Ksor
 
26.12.21 - 22:56
Здравствуйте, недавно начал программировать в 1С, подскажите как записывать данные в два регистра сведений при проведении 1 документа, только в 1 регистр сведений данные должны идти если человеку объявлено взыскание, а в другой если человеку объявлены поощрения
   Ненавижу 1С
 
1 - 26.12.21 - 22:57
(0) условный оператор
   Ksor
 
2 - 26.12.21 - 23:03
Я понимаю что надо делать через условный оператор, только что мне нужно указать после ЕСЛИ в условии, что бы указать что если поощрение то записывать в этот регистр, а если иначе то в другой?

         Если  тогда
        Движение = Движения.Поощрения.Добавить();
        Движение.Дата = Дата;
        Движение.ФизическоеЛицо = ТекСтрокаТабличнаяЧасть1.ФизическоеЛицо;
        Движение.ВидПоощрения = ТекСтрокаТабличнаяЧасть1.ВидПоощренияВзыскания;
        Движение.ДокументПоощрения = Номер;
        
        // регистр Взыскания

        Иначе
        Движение = Движения.Взыскания.Добавить();
        Движение.Период = Дата;
        Движение.ФизическоеЛицо = ТекСтрокаТабличнаяЧасть1.ФизическоеЛицо;
        Движение.ВидВзыскания = ТекСтрокаТабличнаяЧасть1.ВидПоощренияВзыскания;
        Движение.ДокументВзыскания = ТекСтрокаТабличнаяЧасть1.ДокументСнимаемогоВзыскания;
        Движение.Активно = ИСТИНА;
        Движение.ДокументПоощрения = Номер;
    КонецЕсли;
    КонецЦикла;
   Ненавижу 1С
 
3 - 26.12.21 - 23:10
(2) а как отличить взыскание от поощрения?
   Ksor
 
4 - 26.12.21 - 23:13
Есть перечисления ТипыПоощренийВзысканий в них два значение Поощрение и Взыскания, в документе есть реквизит ТипыПоощренияВзыскания ссылочного типа на перечисления
   Ksor
 
5 - 26.12.21 - 23:14
т.е. при заполнении документа я указываю что это Поощрение или Взыскание
   acanta
 
6 - 26.12.21 - 23:18
А где вы видели цикл?
   Ksor
 
7 - 26.12.21 - 23:21
Вот начало 

Движения.Поощрения.Записывать = Истина;
    Движения.Взыскания.Записывать = Истина;
    Для Каждого ТекСтрокаТабличнаяЧасть1 Из ТабличнаяЧасть1 Цикл
        
        // регистр Поощрения

        Если  тогда
        Движение = Движения.Поощрения.Добавить();
        Движение.Дата = Дата;
   acanta
 
8 - 26.12.21 - 23:24
А почему вы не хотите сделать две табличные части, отдельно поощрения и отдельно взыскания и перечисления не нужно?
   Ksor
 
9 - 26.12.21 - 23:25
Задание такое
   acanta
 
10 - 26.12.21 - 23:26
А почему вы не назвали табличную часть, раз уж она у вас одна как нибудь Начисления или ПоощренияВзыскания, раз уж задание такое..
   Ненавижу 1С
 
11 - 26.12.21 - 23:41
Если ТвойРеквизит=Перечисления.ТипыПоощренийВзысканий.Поощрение Тогда
... 
ИначеЕсли ТвойРеквизит=Перечисления.ТипыПоощренийВзысканий. Взыскание Тогда
...

Называйте реквизиты и переменные более осмысленно, вам это ещё и читать возможно придётся через некоторое время
   Ksor
 
12 - 26.12.21 - 23:47
Большое спасибо, все получилось!

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.