При переходе на современные версии программных продуктов «1С» часто возникает ситуация, когда миграция данных происходит в несколько этапов. Рассмотрим типичный сценарий: изначально учет велся в «1С:Бухгалтерии 7.7», затем был осуществлен переход на «1С:Бухгалтерию предприятия 3.0» (БП 3.0), а следующим шагом стало выделение зарплатного учета в специализированную базу «1С:Зарплата и управление персоналом 3.1» (ЗУП 3.1). Разберем, почему в этой цепочке часто «теряются» данные для расчета среднего заработка и как их восстановить.
Проанализируем механику переноса. Когда мы переходим из версии 7.7 в БП 3.0 через ввод начальных остатков, программа фиксирует лишь состояние взаиморасчетов на определенную дату (например, сальдо по счету 70). Однако для расчета среднего заработка для отпусков (за 12 месяцев) и больничных (за 2 предыдущих года) требуются не остатки по счетам, а детализированные обороты в разрезе начислений и времени.
В конфигурации ЗУП 3.1 расчет среднего заработка опирается на специализированные регистры накопления. Если мы выполняем типовой перенос из БП 3.0, программные механизмы пытаются найти данные в следующих регистрах исходной базы:
Так как в БП 3.0 данные из «семерки» попали только через документы ввода остатков, указанные регистры остались пустыми. Следовательно, при последующем переносе в ЗУП 3.1 системе просто нечего «подхватить», и таблицы в документах начислений остаются пустыми. Рассмотрим подробнее, как мы можем решить эту задачу.
Если в старой базе «1С:Бухгалтерия 7.7» велся полноценный расчет зарплаты (а не просто отражение проводок), то наиболее корректным, хоть и трудоемким способом, будет попытка перенести данные напрямую. Однако типовой помощник перехода в ЗУП 3.1 ориентирован на конфигурацию «Зарплата и Кадры 7.7» (ЗиК 2.3).
Разберем алгоритм действий в этом случае: мы можем сначала перенести данные из БУ 4.5 (Бухгалтерия 7.7) в ЗиК 2.3, используя имеющиеся правила обмена или обработки, а уже оттуда запустить штатный переход в ЗУП 3.1. Это позволит сохранить историю начислений в тех самых регистрах, которые нужны для среднего заработка. Но стоит учитывать, что этот путь требует высокой квалификации программиста и понимания структуры таблиц обеих версий.
Посмотрим на ситуацию со стороны пользователя ЗУП 3.1. В программе предусмотрен специальный инструмент, предназначенный именно для таких случаев — документ «Ввод данных для расчета среднего заработка». Если штат сотрудников относительно небольшой, это самый быстрый и надежный метод.
Проанализируем шаги по заполнению:
После проведения этого документа, при создании «Больничного листа» или «Отпуска», программа автоматически увидит эти записи и рассчитает средний заработок корректно.
Если мы не хотим набивать данные вручную в ЗУП 3.1, мы можем «обмануть» перенос, предварительно наполнив регистры в БП 3.0. Для этого можно использовать внешнюю обработку, которая прочитает данные из файла (например, выгрузки из Excel из 7.7) и запишет их в регистры Данные о начислениях для расчета среднего заработка.
Рассмотрим схематично, как мог бы выглядеть код для записи в такой регистр (пример для общего среднего):
МенеджерЗаписи = РегистрыНакопления.ДанныеОНачисленияхДляРасчетаСреднегоЗаработкаОбщий.СоздатьНаборЗаписей();
МенеджерЗаписи.Отбор.Регистратор.Установить(ТехническийДокумент);
НоваяЗапись = МенеджерЗаписи.Добавить();
НоваяЗапись.Период = ДатаМесяца;
НоваяЗапись.Сотрудник = СсылкаНаСотрудника;
НоваяЗапись.Организация = СсылкаНаОрганизацию;
НоваяЗапись.Сумма = СуммаДохода;
НоваяЗапись.КалендарныеДни = 29.3; // или фактические дни
МенеджерЗаписи.Записать();
После того как данные появятся в регистрах БП 3.0, штатная выгрузка в ЗУП 3.1 увидит их и перенесет в соответствующие регистры новой базы.
Выясним, есть ли способ ускорить процесс, если сотрудников сотни. Наиболее эффективным методом является использование сторонних или самописных обработок по загрузке данных из Excel напрямую в ЗУП 3.1.
Алгоритм действий следующий: рассчитаем средний заработок (или выгрузим базу для него) из старой программы 7.7 в формат таблицы. Затем в ЗУП 3.1 воспользуемся обработкой «Загрузка данных из файлов», настроив сопоставление колонок с полями регистров среднего заработка. Это исключит человеческий фактор при ручном вводе и позволит быстро запустить расчет зарплаты в новой программе.
Подведем итоги. Автоматический перенос среднего заработка из БП 3.0 в ЗУП 3.1 невозможен, если в БП 3.0 расчет не велся, а данные были введены остатками. Проанализировав объем данных, выберите наиболее подходящий путь:
Важный момент: помните, что для расчета больничных листов в ЗУП 3.1 также существует документ «Справка другого страхователя о заработке». Несмотря на название, его часто используют для ввода данных за прошлые периоды, если другие способы недоступны, хотя методологически верным является использование документов ввода остатков среднего заработка.