Очистка остатков ко...
 
Уведомления
Очистить все

Очистка остатков корректировкой записей регистра

1 Записи
1 Пользователи
0 Likes
439 Просмотры
10-150 Okolokompa Форум
 dom
(@dom)
Honorable Member
Присоединился: 5 лет назад
Записи: 200
Создатель темы  

1) Создаем пустой док с нужными регистрами
2) Обработкой заполняем этот док.

Пример кода:
Если В_Док.Пустая() Тогда
Предупреждение("В док пусто");
Возврат
КонецЕсли;

Группа = Справочники.Номенклатура.НайтиПоКоду("А240716 ");
Если Группа.Пустая() или Группа.ЭтоГруппа=Ложь Тогда
Сообщить("Либо не нашли по коду, либо найденная - не группа:"+Группа.Наименование);
Возврат
КонецЕсли;
Об = В_Док.ПолучитьОбъект();
ТовНаСл = Об.Движения.ТоварыНаСкладах;
ТовОрг = Об.Движения.ТоварыОрганизаций;

ТовНаСл.Очистить();
ТовОрг.Очистить();

Запрос = Новый Запрос("
|ВЫБРАТЬ
| ТоварыНаСкладахОстатки.Склад,
| ТоварыНаСкладахОстатки.Номенклатура,
| ТоварыНаСкладахОстатки.СерияНоменклатуры,
| ТоварыНаСкладахОстатки.Качество,
| СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток) КАК КоличествоОстаток
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки(&НаДату, ) КАК ТоварыНаСкладахОстатки
|ГДЕ
| ТоварыНаСкладахОстатки.Номенклатура В ИЕРАРХИИ(&Номенклатура)
|
|СГРУППИРОВАТЬ ПО
| ТоварыНаСкладахОстатки.Склад,
| ТоварыНаСкладахОстатки.Номенклатура,
| ТоварыНаСкладахОстатки.СерияНоменклатуры,
| ТоварыНаСкладахОстатки.Качество
|
|
|УПОРЯДОЧИТЬ ПО
| ТоварыНаСкладахОстатки.Номенклатура.Наименование
|");

Запрос.УстановитьПараметр("НаДату", КонецДня(В_Док.Дата));
Запрос.УстановитьПараметр("Номенклатура", Группа);

Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Запись = ТовНаСл.Добавить();
Запись.Активность=Истина;
Запись.Период=В_Док.Дата;
Запись.ВидДвижения=ВидДвиженияНакопления.Расход;
Запись.Склад=Выборка.Склад;
Запись.Номенклатура = Выборка.Номенклатура;
Запись.Качество = Справочники.Качество.Новый;
Запись.СерияНоменклатуры = Выборка.СерияНоменклатуры;
Запись.Количество = Выборка.КоличествоОстаток;
КонецЦикла;

Запрос = Новый Запрос("
|ВЫБРАТЬ
| ТоварыОрганизацийОстатки.Организация,
| ТоварыОрганизацийОстатки.Номенклатура,
| ТоварыОрганизацийОстатки.СерияНоменклатуры,
| ТоварыОрганизацийОстатки.Качество,
| СУММА(ТоварыОрганизацийОстатки.КоличествоОстаток) КАК КоличествоОстаток
|ИЗ
| РегистрНакопления.ТоварыОрганизаций.Остатки(&НаДату, ) КАК ТоварыОрганизацийОстатки
|ГДЕ
| ТоварыОрганизацийОстатки.Номенклатура В ИЕРАРХИИ(&Номенклатура)
|
|СГРУППИРОВАТЬ ПО
| ТоварыОрганизацийОстатки.Номенклатура,
| ТоварыОрганизацийОстатки.Качество,
| ТоварыОрганизацийОстатки.Организация,
| ТоварыОрганизацийОстатки.СерияНоменклатуры
|
|
|УПОРЯДОЧИТЬ ПО
| ТоварыОрганизацийОстатки.Номенклатура.Наименование
|");

Запрос.УстановитьПараметр("НаДату", КонецДня(В_Док.Дата));
Запрос.УстановитьПараметр("Номенклатура", Группа);

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

Попытка
Об.Записать()
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;


   
Цитата
Поделиться: