helpf.pro
Регистрация

v8.2 УП: Удалить запись из регистра расчета

LUDA
15.04.2013 06:57Прочитано: 2659
Как удалить нужную запись из регистра расчета ОсновныеНачисления, если есть сотрудник, вид расчета и регистратор???
Yandex
Возможно, вас также заинтересует
Реклама на портале
theelectric
15.04.2013 08:48Ответ № 1
Надо получить набор записей или движения по этому регистратору, а потом перебирая в цикл - делать с записями то, что надо :

Код 1C v 8.2 УП
 
РегистрОснНачислений = РегистрыРасчета.ОсновныеНачисленияРаботниковОрганизаций.ВыбратьПоРегистратору(ДокСсылка);

Для Каждого ЗаписьРегистра Из РегистрОснНачислений Цикл
//делаешь проверку на сотрудника и вид расчета, а потом удаляешь, изменяешь - делаешь с записью то, что надо..
КонецЦикла;

РегистрОснНачислений.Записать();


Что-то типа такого...
LUDA
16.04.2013 01:31Ответ № 2
Не получается ВыбратьПоРегистратору. Через отбор по регистратору нормально. Но как в цикле синтаксически удалить запись незнаю.
Код 1C v 8.2 УП
 ОВР = РегистрыРасчета.ОсновныеНачисленияРаботниковОрганизаций.СоздатьНаборЗаписей();	
ОВР.Отбор.Регистратор.Установить(Документ);
ОВР.Отбор.Сотрудник.Установить(Сотрудник);
ОВР.Прочитать();
Для Каждого Запись из ОВР Цикл
Если Запись.ВидРасчета = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОкладПоДням ИЛИ
Запись.ВидРасчета = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОкладПоЧасам ИЛИ
Запись.ВидРасчета = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ТарифДневной ИЛИ
Запись.ВидРасчета = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ТарифЧасовой ИЛИ
Запись.ВидРасчета = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.НайтиПоКоду("ОЧТ ") Тогда
//Что здесь правильно написать надо?????
КонецЕсли;
КонецЦикла;

Изменено 16.04.13 01:32:25
DJ_Serega
16.04.2013 02:26Ответ № 3
(2) LUDA, Правильно там написать нужно такое:
Код 1C v 8.2 УП
 ОВР.Удалить(Тип: Число; РегистрРасчетаЗапись.<Имя регистра расчета>.);   



Цитата из синтакс-помощника:
Код
РегистрРасчетаНаборЗаписей.<Имя регистра расчета> (CalculationRegisterRecordSet.<Имя регистра расчета>)
Удалить (Delete)
Синтаксис:

Удалить(<Запись>)
Параметры:

<Запись> (обязательный)

Тип: Число; РегистрРасчетаЗапись.<Имя регистра расчета>.
Индекс удаляемой записи либо сама запись.
Описание:

Удаляет запись из набора по указанному индексу записи или объекту записи регистра.

Доступность:

Сервер, толстый клиент, внешнее соединение.
DJ_Serega
16.04.2013 02:31Ответ № 4
(2) LUDA, и еще одно. Лучше следующее в условиях не писать. Лишний раз обращаться к серверну не гуманно *17
Код 1C v 8.2 УП
 Запись.ВидРасчета = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.НайтиПоКоду("ОЧТ  ")   

Правильней будет перед циклом найти, и том уже проверять. Где-то так будет:
Код 1C v 8.2 УП
 
ОВР = РегистрыРасчета.ОсновныеНачисленияРаботниковОрганизаций.СоздатьНаборЗаписей();
ОВР.Отбор.Регистратор.Установить(Документ);
ОВР.Отбор.Сотрудник.Установить(Сотрудник);
ОВР.Прочитать();

ВидРасчетаОЧТ = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.НайтиПоКоду("ОЧТ ");
Для Каждого Запись из ОВР Цикл
Если Запись.ВидРасчета = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОкладПоДням ИЛИ
Запись.ВидРасчета = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОкладПоЧасам ИЛИ
Запись.ВидРасчета = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ТарифДневной ИЛИ
Запись.ВидРасчета = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ТарифЧасовой ИЛИ
Запись.ВидРасчета = ВидРасчетаОЧТ Тогда
//Что здесь правильно написать надо?????
КонецЕсли;
КонецЦикла;


А еще лучше проверить: Нашло оно этот вид расчета или нет:
Код 1C v 8.2 УП
 
ОВР = РегистрыРасчета.ОсновныеНачисленияРаботниковОрганизаций.СоздатьНаборЗаписей();
ОВР.Отбор.Регистратор.Установить(Документ);
ОВР.Отбор.Сотрудник.Установить(Сотрудник);
ОВР.Прочитать();

ВидРасчетаОЧТ = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.НайтиПоКоду("ОЧТ ");
Если ВидРасчетаОЧТ = Неопределено
Или ВидРасчетаОЧТ = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ПустаяСсылка() Тогда

Для Каждого Запись из ОВР Цикл
Если Запись.ВидРасчета = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОкладПоДням ИЛИ
Запись.ВидРасчета = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОкладПоЧасам ИЛИ
Запись.ВидРасчета = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ТарифДневной ИЛИ
Запись.ВидРасчета = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ТарифЧасовой Тогда
//Что здесь правильно написать надо?????
КонецЕсли;
КонецЦикла;

Иначе

Для Каждого Запись из ОВР Цикл
Если Запись.ВидРасчета = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОкладПоДням ИЛИ
Запись.ВидРасчета = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОкладПоЧасам ИЛИ
Запись.ВидРасчета = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ТарифДневной ИЛИ
Запись.ВидРасчета = ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ТарифЧасовой ИЛИ
Запись.ВидРасчета = ВидРасчетаОЧТ Тогда
//Что здесь правильно написать надо?????
КонецЕсли;
КонецЦикла;

КонецЕсли;
LUDA
16.04.2013 02:49Ответ № 5
Спасибо
DJ_Serega
16.04.2013 03:00Ответ № 6
(5) LUDA, а как сделали если не секрет? *12
Я бы в цикле заполнял некий массив, потом перебором элементов массива удалял записи. *17
Изменено 16.04.13 03:01:19
Подсказка: Для выделения Кода используйте (в редакторе).
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.