gifts2017

Использование регистров сведений в качестве эталона для сверки остатков между базами

Опубликовал Владимир Доброродный (Kindman1980) в раздел Отчеты - Анализ учета

Наименее затратный метод сверки остатков между базами данных. Я его применил на проекте перехода с УПП одной редакции на другую при сверке и корректировке остатков партионного учета.

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

Представьте, что делать, если данные меняются.

Пример.  В источнике ведется учет производства, выполняется переход с базы "источника" в "приемник", при этом в источнике не закрыт год, а значит, например, вводятся документы учета затрат, которые на конец года меняют себестоимость производимых ТМЦ.  При этом учет в приемнике уже начат с нового года, и необходиом обеспечивать "приемник" актуальной себестоимостью на начало года.

 

Я придумал такой способ. Приведу его на примере регистра "ПартииТоваровНаСкладахБухгалтерскийУчет"

Для этого я решил использовать регистр сведений со структурой, аналогичной структуре измерений и ресурсов регистра накопления.

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)

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Константин Куликов (Светлый ум) 01.02.16 12:26
А почему бы и нет?)
Еще один альтернативный инструмент +1
2. Вадим Окунев (Upiterus) 03.02.16 20:59
3. Вадим Никонов (V.Nikonov) 04.02.16 17:58
При наличии возможности Com-подключения к источнику трудозатраты будут примерно такими же. Но только место инициализации синхронизации будет одно.
А так хорошая альтернатива прямому подключению... +
4. Владимир Доброродный (Kindman1980) 07.02.16 14:23
(3) V.Nikonov, Мне кажется при COM подключении результаты подключения негде хранить. Можно конечно в корректировке записей регистров сохранять , но тогда при сверке нужно писать запрос сверки остатков до документа корректировки записей регистров и оборотов по документу корректировки. Можно тупо запутаться . Я об этом думал. Если предложите вариант хранения результата подключения без доработки специфических объектов буду благодарен.
5. Василий Казьмин (awk) 12.02.16 14:14
1. Способ будет работать при идентичности регистров накопления
2. Есть гораздо более быстрый способ (без изменения конфигураций). Сделать два отчета и сравнить средствами 1С.
6. Владимир Доброродный (Kindman1980) 12.02.16 17:48
(5) awk, Про проверку средствами 1с - это сравнение MXL файлов?. Если да - то именно это сравнение привело к этой методологии. Я действительно писал запросы и сравнивал их результаты. Так что это пройденный этап. Если вы под стравнением имеете что-то другое , напишите даже интересно. Про идентичность регистров не очень понял. Но меня интересует хранение эталона в приемнике. Например по эталонному регистру бухгалтерских партий я могу получить запросом данные управленческого учета, исключив из него счет учета. Мне важно иметь для сверки это в приемнике.
7. Василий Казьмин (awk) 19.02.16 15:27
(6) Kindman1980,
1. Да именно этот способ. Непонятно зачем его менять.
2. Свойства для сравнения должны совпадать.
3. Без изменения конфигурации можно брать обычную таблицу и помещать ее в запрос для сравнения.
8. Владимир Доброродный (Kindman1980) 20.02.16 10:12
(7) awk, п.1 и п.2 годится для того чтобы увидеть, но не изменить, править то все равно разницы придется по другому. Про п. 3 не понял. Какую таблицу помщать в запрос?
9. Василий Казьмин (awk) 20.02.16 10:46
(8) Kindman1980, Табл = Новый ТаблицаЗначений;