|
Универсализация составного типа данных | ☑ | ||
---|---|---|---|---|
0
pro3ri
12.11.15
✎
08:20
|
ДОбрый день!
В доке начисление зп есть реквизит составного типа данных. https://s.mail.ru/ktbswJFELyG5/img-2015-11-12-10-17-10.png Предварительную запись делает такой механизм: Процедура ОбработкаПроведения(Отказ, РежимПроведения) Для каждого СтрокаТЧ Из Начисление Цикл Если ПланыВидовРасчета.ОсновныеНачисления.НайтиПоНаименованию(Строка(СтрокаТЧ.ВидРасчета))<>ПланыВидовРасчета.ОсновныеНачисления.ПустаяСсылка() Тогда ПроводимОсновныеНачисления = Истина; Иначе ПроводимОсновныеНачисления = Ложь; КонецЕсли; Если ПланыВидовРасчета.ДополнительныеНачисления.НайтиПоНаименованию(Строка(СтрокаТЧ.ВидРасчета))<>ПланыВидовРасчета.ДополнительныеНачисления.ПустаяСсылка() Тогда ПроводимДополнительныеНачисления = Истина; Иначе ПроводимДополнительныеНачисления = Ложь; КонецЕсли; КонецЦикла; Если ПроводимОсновныеНачисления Тогда Для Каждого ТекСтрокаНачисление Из Начисление Цикл // регистр ОсновныеНачисления Движение = Движения.ОсновныеНачисления.Добавить(); Движение.Сторно = Ложь; Движение.ВидРасчета = ТекСтрокаНачисление.ВидРасчета; Движение.ПериодДействияНачало = ТекСтрокаНачисление.ДатаНачала; Движение.ПериодДействияКонец = КонецДня(ТекСтрокаНачисление.ДатаОкончания); Движение.ПериодРегистрации = ПериодРегистрации; Движение.БазовыйПериодНачало = ТекСтрокаНачисление.ДатаНачала; Движение.БазовыйПериодКонец = КонецДня(ТекСтрокаНачисление.ДатаОкончания); Движение.Сотрудник = ТекСтрокаНачисление.Сотрудник; Движение.Подразделение = ТекСтрокаНачисление.Подразделение; Движение.Сторно = ТекСтрокаНачисление.Сторно; //Движение.Результат = 1; Движение.ТипГрафика = ТекСтрокаНачисление.ТипГрафика; Движение.Размер = ТекСтрокаНачисление.Размер; КонецЦикла; Движения.ОсновныеНачисления.Записать(); КонецЕсли; Если ПроводимДополнительныеНачисления Тогда Для Каждого ТекСтрокаНачисление Из Начисление Цикл // регистр ДополнительныеНачисления Движение = Движения.ДополнительныеНачисления.Добавить(); Движение.Сторно = Ложь; Движение.ВидРасчета = ТекСтрокаНачисление.ВидРасчета; Движение.ПериодРегистрации = ПериодРегистрации; Движение.БазовыйПериодНачало = ПериодРегистрации; Движение.БазовыйПериодКонец = ПериодРегистрации; Движение.Сторно = ТекСтрокаНачисление.Сторно; Движение.Сотрудник = ТекСтрокаНачисление.Сотрудник; Движение.Подразделение = ТекСтрокаНачисление.Подразделение; //Движение.Результат = 1; Движение.Размер = ТекСтрокаНачисление.Размер; КонецЦикла; Движения.ДополнительныеНачисления.Записать(); КонецЕсли; А как бы сделал это профи? |
|||
1
cw014
12.11.15
✎
08:25
|
Если ПланыВидовРасчета.ОсновныеНачисления.НайтиПоНаименованию(Строка(СтрокаТЧ.ВидРасчета))<>ПланыВидовРасчета.ОсновныеНачисления.ПустаяСсылка() Тогда
Что это? |
|||
2
cw014
12.11.15
✎
08:27
|
ПроводимОсновныеНачисления = (ТипЗнч(СтрокаТЧ.ВидРасчета) = Тип("ПланВидовРасчета.ОсновныеНачисления"));
ПроводимДополнительныеНачисления = (ТипЗнч(СтрокаТЧ.ВидРасчета) = Тип("ПланВидовРасчета.ДополнительныеНачисления")); |
|||
3
pro3ri
12.11.15
✎
08:37
|
(2) благодарю!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |