Довольно частая ситуация. Переход на новую систему и необходиомость сверки остатков. При этом данные в базе "источнике" могут еще меняться, а с базой "приемником" нужно быстро делиться этими изменениями. Возможны следующие варианты решения: перенос с помощью типовых првавил, когда создаются документы ввода остатков, либо свертка остатков обработкой в документ "Корректировка записей регистров" с последующим переносом. Во втором случае нужно как минимум создать правила переноса документа "Корректировка записей регистров". Второй случай довольно затратный, и его можно применять в случае статичных данных источника, которые уже не меняются.
Представьте, что делать, если данные меняются.
Пример. В источнике ведется учет производства, выполняется переход с базы "источника" в "приемник", при этом в источнике не закрыт год, а значит, например, вводятся документы учета затрат, которые на конец года меняют себестоимость производимых ТМЦ. При этом учет в приемнике уже начат с нового года, и необходиом обеспечивать "приемник" актуальной себестоимостью на начало года.
Я придумал такой способ. Приведу его на примере регистра "ПартииТоваровНаСкладахБухгалтерскийУчет"
Для этого я решил использовать регистр сведений со структурой, аналогичной структуре измерений и ресурсов регистра накопления.
1. Скопировать регистр накопления в регистр сведений, удалить реквизиты в базе "источник". Затраты времени - 5 минут.
2. Написать обработку, которой положить остатки регистра накопления в записи регистра сведений на дату на которую выполняется сверка. Максимум 0.5 часа.
3. Скопировать структуру регистра сведений в приемник. 5 минут (копи паст)
4. Созать правила обмена по регистру сведений. Как правило, уже существуют правила конвертации для измерений регистра, поэтому с учетом выгрузки структуры с помощью Md82exp.epf, загрузки в конвертацию и написанию правил регистра + 2 часа затрат. При этом пункт 4 выполняется 1 раз.
5. Выгрузка данных регистра сведений в приемник. Зависит от объема данных. 16000 записей выгружалось и загружалось 10 минут.
6. Обработка корректировки остатка в приемнике. Ниже листинг запроса . В моем случае я выполняю перенос для сверки при условии, что уже есть остатки на 31.12.2015, и мне нужно лишь отразить корректировку по регистру. Результат запроса дает разницы между количеством и стоимостью в качестве источника корректировки в базе приемнике.
ВЫБРАТЬ
_ПартииТоваровНаСкладахБухУчет.Организация,
_ПартииТоваровНаСкладахБухУчет.Номенклатура,
_ПартииТоваровНаСкладахБухУчет.СчетУчета,
_ПартииТоваровНаСкладахБухУчет.Склад,
_ПартииТоваровНаСкладахБухУчет.ДокументОприходования,
_ПартииТоваровНаСкладахБухУчет.ХарактеристикаНоменклатуры,
_ПартииТоваровНаСкладахБухУчет.СерияНоменклатуры,
_ПартииТоваровНаСкладахБухУчет.Заказ,
_ПартииТоваровНаСкладахБухУчет.Качество,
_ПартииТоваровНаСкладахБухУчет.Количество,
_ПартииТоваровНаСкладахБухУчет.Стоимость
ПОМЕСТИТЬ ВТ_1
ИЗ
РегистрСведений._ПартииТоваровНаСкладахБухУчет КАК _ПартииТоваровНаСкладахБухУчет
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Организация,
ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура,
ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.СчетУчета,
ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Склад,
ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.ДокументОприходования,
ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.ХарактеристикаНоменклатуры,
ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.СерияНоменклатуры,
ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Заказ,
ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Качество,
-ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоКонечныйОстаток,
-ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.СтоимостьКонечныйОстаток
ИЗ
РегистрНакопления.ПартииТоваровНаСкладахБухгалтерскийУчет.ОстаткиИОбороты(, КОНЕЦПЕРИОДА(&КонПериода, ДЕНЬ), , , ) КАК ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ_1.Организация КАК Организация,
ВТ_1.Номенклатура КАК Номенклатура,
ВТ_1.СчетУчета КАК СчетУчета,
ВТ_1.Склад КАК Склад,
ВТ_1.ДокументОприходования КАК ДокументОприходования,
ВТ_1.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
ВТ_1.СерияНоменклатуры КАК СерияНоменклатуры,
ВТ_1.Заказ КАК Заказ,
ВТ_1.Качество КАК Качество,
СУММА(ВТ_1.Количество) КАК Количество,
СУММА(ВТ_1.Стоимость) КАК Стоимость
ИЗ
ВТ_1 КАК ВТ_1
СГРУППИРОВАТЬ ПО
ВТ_1.Организация,
ВТ_1.Номенклатура,
ВТ_1.СчетУчета,
ВТ_1.Склад,
ВТ_1.ДокументОприходования,
ВТ_1.ХарактеристикаНоменклатуры,
ВТ_1.СерияНоменклатуры,
ВТ_1.Заказ,
ВТ_1.Качество
ИМЕЮЩИЕ
(СУММА(ВТ_1.Стоимость) <> 0
ИЛИ СУММА(ВТ_1.Количество) <> 0)