gifts2017

Исправление регистра "Партии на складах (бухгалтерский учет)" для Комплексной автоматизации

Опубликовал Сергей valer (tank68) в раздел Обработки - Обработка документов

Не секрет, что многие сталкиваются с проблемой расхождения регистров накопления в Комплексной автоматизации, каждый может выбрать свой вариант, но я пошел по следующему. Одним документом "Корректировка записи регистров" привожу регистр к нулю, а вторым на основании данных регистра "Товары организации" и данным по бух. учету ввожу новые партии. Может быть, кому-то пригодится данный метод или он его как-то расширит.

 Обработка корректировки регистра накопления партии товаров на складах (бух. учет)

Процедура КнопкаВыполнитьНажатие(Кнопка)

ДатаЗакрытия = КонецДня(ДатаЗакрытия);

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

Запрос.УстановитьПараметр("Дата", ДатаЗакрытия);
Запрос.УстановитьПараметр("Организация", Организация);
Запрос.УстановитьПараметр("Склад", Склад);

Результат = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = Результат.Выбрать();

Регистр = РегистрыНакопления.ПартииТоваровНаСкладахБухгалтерскийУчет.СоздатьНаборЗаписей();

Регистр.Отбор.Регистратор.Установить(ДокументЗакрытия);

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

КонецЦикла;

Регистр.Записать(Истина);



КонецПроцедуры

Процедура ОсновныеДействияФормыСоздатьПартии(Кнопка)

ДатаЗакрытия = КонецДня(ДатаЗакрытия);
СчетУчета = ПланыСчетов.Хозрасчетный.СпецоснасткаИСпецодеждаНаСкладе;

Запрос = Новый Запрос;

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

Запрос.УстановитьПараметр("Дата", ДатаЗакрытия);
Запрос.УстановитьПараметр("Организация", Организация);
Запрос.УстановитьПараметр("Склад", Склад);
Запрос.УстановитьПараметр("Счет", СчетУчета);

Результат = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = Результат.Выбрать();

Регистр = РегистрыНакопления.ПартииТоваровНаСкладахБухгалтерскийУчет.СоздатьНаборЗаписей();

Регистр.Отбор.Регистратор.Установить(ДокументЗакрытия);

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

КонецЦикла;

Регистр.Записать(Истина);


КонецПроцедуры

 

Также прикладываю отчет, который сравнивает регистры и выводит расхождения по ним.

Также прикладываю обработку для перезаполнения регистров "Свободные остатки", которые выравниваются в соответствии с бухгалтерским учетом. Для корректировки лучше использовать два документа "Корректировка записей регистров", в одном делаете обнуление, а в другом заполняете данные регистра по данным бух учета.

Скачать файлы

Наименование Файл Версия Размер
ЗакрытиеПартийБУНаСкладеВручную.epf 10
.epf 8,36Kb
19.03.15
10
.epf 8,36Kb Скачать
Расхождения остатков по регистрам.erf 11
.erf 23,67Kb
19.03.15
11
.erf 23,67Kb Скачать
Корректировка свободные остатки.epf 5
.epf 9,85Kb
19.03.15
5
.epf 9,85Kb Скачать

См. также

Подписаться Добавить вознаграждение
В этой теме еще нет сообщений.