Выгрузка регистров 1С во внешнюю базу со сверкой сходимости
Интеграция - Перенос данных 1C
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Выгрузка из 1С во внешнюю базу отработала без ошибок, а отчёт в хранилище не сходится с 1С. Обычно виновата правка задним числом: документ перепровели с другой суммой или другим товаром за пределами окна, которое выгрузка перечитывает каждый раз. Обработка выгружает движения регистра и проверяет каждый день всей истории, включая месяцы, до которых окно выгрузки давно не достаёт.
Как это устроено и на каких сценариях проверялось, разобрано в статье "Выгрузка из 1С во внешнюю базу не видит правку задним числом. Как её поймать".
Что делает
- Выгружает движения одного регистра накопления (остатков или оборотного) или бухгалтерии в каталог пакета: файл дней к замене и файл всех строк этих дней. Для регистра бухгалтерии с субконто и отбором по счетам. Единица замены в приёмнике - день, пакеты пронумерованы и грузятся по порядку номеров.
- Паспорт дня. По каждому дню всей истории число строк и суммы ресурсов сравниваются с тем, что уже выгружено. Разошёлся день в марте - он уходит в новый пакет, даже если окно давно его не видит.
- Версии документов. ВерсияДанных, дата, проведение и пометка каждого регистратора. Ловит правку, которая не меняет ни числа строк, ни сумм: другой товар, склад, контрагент.
- Окно. Последние N дней перевыгружаются всегда, как у всех.
- Сверка приёмника. Приёмник кладёт в каталог свой паспорт, обработка называет дни, где разошлись число строк или суммы, и сама собирает ремонтный пакет на них.
- Разбор дня. Строки приёмника за день против строк 1С: чего нет, что лишнее, какое поле какой строки какого документа отличается. Подмену значения при тех же суммах находит только он.
Результат каждого прогона - короткий вердикт на форме и таблица находок: день, слой, который его поймал, было и стало, попал ли день в окно. Каталог пакета закрывается замком на время прогона, второй прогон в тот же каталог получит отказ.

Чего не делает
- Не подключается к приёмнику и к СУБД базы 1С и в базу не пишет. Работает на запросах 1С и файлах.
- Не грузит пакет в приёмник: это делает ваша сторона по простому правилу "удалить строки дней из пакета, вставить строки пакета". Описание колонок и порядок загрузки обработка кладёт в каталог файлом format.txt при каждом прогоне.
- Не видит движений, записанных кодом прямо в набор записей без записи документа, если число строк и суммы дня не изменились. Такой день находит разбор дня.
- Не работает с регистрами сведений: слой версий держится на документе-регистраторе, а у независимого регистра сведений его нет.
На чём проверялась
- Управление торговлей 11.5.22.67, платформа 8.3.27, регистр "Товары на складах": первая выгрузка 5 545 строк, пять сценариев правки, включая перенос документа на полгода назад и замену товара без изменения количества, плюс тестовый приёмник MS SQL: порча строки, потерянный пакет, ремонт.
- Там же, регистр "Движения денежных средств", синтетика за 1 362 дня. На 300 000 строк: паспорт всей истории 0,25-0,37 секунды, версии 3 000 документов 0,55-0,66 секунды, повторный прогон с окном 14 дней 5,7-5,8 секунды, первая выгрузка 481-521 секунда. На 10 миллионах строк: паспорт 4,0-8,6 секунды, версии 12 700 документов 4,8-8,5 секунды (16 ГБ памяти, 1С и SQL Server на одной машине, свободно 0,6-4 ГБ; первый проход на холодном кэше СУБД 35 секунд, под нагрузкой соседних процессов около 20 секунд).
- Первая выгрузка пишет около 600 строк в секунду: регистр на десятки миллионов строк в одну ночь она не выгрузит.
- Регистр бухгалтерии с корреспонденцией и тремя субконто, Бухгалтерия для Казахстана 3.0: выгрузка по счетам денег, паспорт и версии. Регистр бухгалтерии без корреспонденции не проверялся.
Что в файле
- Обработка на управляемых формах. Внутри справка "Как это работает": какие файлы она пишет в каталог пакета, как грузить пакеты и что приёмник кладёт обратно.
Собрано и проверено на платформе 8.3.27.
Проверено на следующих конфигурациях и релизах:
- Управление торговлей, редакция 11, релизы 11.5.22.67
Вступайте в нашу телеграмм-группу Инфостарт