Мы перешли с 1С:Зарплата и Кадры 7.7 на 1С:Зарплата и Управление Персоналом 8.2 в середине года. Перенос осуществлялся штатной обработкой.
После перехода было принято решение о том, что в первый месяц после перехода (июль 2013) учёт зарплаты будет вестись параллельно в старой и в новой программе.
Но возникла проблема - документов, оформляемых каждый день в 7-ке было настолько много, что перенабивать их в 8-ке вручную было просто нереально. Возникла задача - как-то оперативно перебрасывать вновь создаваемые документы из 7-ки в 8-ку. Как это сделать?
Я не умею пользоваться конвертацией данных, и вообще не люблю это крайне неудачное и бестолковое творение от компании 1С. Поэтому я создал упрощённую самодельную перегрузку наиболее ходовых документов из 7-ки в 8-ку. Упрощённую - потому, что она (в отличие от конвертации данных) не перегружает отсутствующие реквизиты документов, а рассчитывает на то, что они и так имеются в обеих программах. Так оно, собственно, и есть - сразу после переноса данных из 7-ки в 8-ку типовой обработкой.
Здесь на Инфостарте есть аналогичные разработки - работающие через COМ-подключение. Мне это не нравится - потому что COМ-подключение - это лишняя проблема, к примеру, портабельная 7-ка вообще не способна организовать приём COМ-подключения. Поэтому моя обработка работает просто через обычный текстовый файл. Вернее, у меня в пакете 2 обработки - одна выгружает данные из 7-ки в текстовый файл, а вторая - загружает данные из текстового файла в 8-ку.
Вот таблица соответствий перегрузки документов 7.7 - 8.2:
Документы 1С 7.7 | Документы 1С 8.2 |
Выплата заработной платы | Зарплата к выплате организаций |
Приказ по отпуску | Отпуска организаций |
Начисление заработной платы | Начисление зарплаты сотрудникам организаций |
Приказ об увольнении | Увольнение из организаций |
Индивидуальный наряд | Сдельный наряд на выполненные работы |
Невыходы | Невыходы в организациях |
Начисление отпуска | Начисление отпуска сотрудникам организаций |
Расчет при увольнении сотрудника организаций | |
Невыходы в организациях (если отпуск за свой счет) | |
Ввод расчета сотруднику | Регистрация разовых начислений сотрудников организаций |
Регистрация разовых удержаний сотрудников организаций | |
Премии сотрудников организаций | |
Ввод расчета списку сотрудников | Регистрация разовых начислений сотрудников организаций |
Премии сотрудников организаций | |
Приказ на оплату по среднему заработку | Оплата по среднему заработку |
Больничный лист | Начисление по больничному листу |
Кадровое перемещение | Кадровое перемещение организаций |
Как видно из таблицы, обработка перегружает наиболее популярные виды документов. Некоторые виды семёрочных документов перегружаются не в один, а в несколько восьмёрочных документов. Обработка сама автоматически опеределяет вид восьмёрочного документа в таком случае.
Если Вам понадобится перегрузить ещё какие-то виды документов - то потребуется добавить программный код обработчиков выгрузки-загрузки. Это относительно несложно сделать (особенно прост код выгрузки).
Описание использования
Открываем в ЗиК обработку "ВыгрузкаДокументов77.ert". Выставляем диапазон дат выгружаемых документов. Указываем каталог, куда будут выгружаться файлы переноса. Далее можно выгрузить весь справочник "Должности" - он нам потребуется потом в 8-ке - хотя бы для кадровых перемещений. Кнопка "2. Выгрузить новых сотрудников" означает, что мы выгружаем всех тех сотрудников, кто присутствует в документах "Приём на работу", попавших в диапазон дат выгрузки. Кнопка "3. Выгрузить расценки" нужна не всем - а только тем, кто использует сдельные наряды - тут выгружается справочик "Нормы".
Кнопка "4. Выгрузить документы" - основная, она выгружает все документы (из таблицы выше), попавшие в заданный диапазон дат. Каждый вид документа выгружается в отдельный одноимённый текстовый файл.
Загрузка в 8-ке.
Открываем в ЗУП обработку "ЗагрузкаДокументов82.epf". Указываем организацию и каталог импорта. Загружаем справочник "Должности организаций" кнопкой. Загружаем новых физлиц (только если есть приказы и приёме на работу). Загружаем расценки (только если есть сдельные наряды).
Загрузка документов происходит отдельно по каждому виду документа (в отличие от 7-ки, где выгружались все виды документов одновременно). Пользователь выбирает в выпадающем списке, какой вид документа он хочет загрузить, и нажимает кнопку "4. Загрузить документы".
Технические подробности
Чтобы добавить в 7-ку выгрузку своего вида документа, нужно в модуле формы в самом внизу описать выгрузку Вашего документа вызовами всего лишь нескольких функций. Это просто - смотрите на пример уже готовых выгрузок.
В 8-ке проблем больше. При загрузке документов в 8-ку могут выводиться сообщения вида "не опознан вид начисления" или т.п. - и загрузка будет прерываться. В этом случае Вам понадобиться дописать в обработчик загрузки нужный вид начисления или т.п. Все такие "дописываемые" пользователем функции-обработчики собраны в самом верху модуля обработки - в разделе "Раздел настраиваемых функций". По тексту выдаваемой ошибки Вы легко определите, какую именно фунцию из настраиваемого раздела нужно подкоректировать. Вот пример такой функции:
Функция ПолучитьСтатьюУвольнения(КодОКИН) Экспорт
Если КодОКИН = "08" Тогда
Возврат Справочники.ОснованияУвольненияИзОрганизации.НайтиПоНаименованию("п. 3 ст. 77 ТК");
ИначеЕсли КодОКИН = "13" Тогда
Возврат Справочники.ОснованияУвольненияИзОрганизации.НайтиПоНаименованию("Расторжение срочного трудового договора Ст. 79 ТК РФ");
Иначе
Сообщить("Не опознана причина увольнения с кодом """ + КодОКИН + """.");
Возврат Неопределено;
КонецЕсли;
КонецФункции // ПолучитьСтатьюУвольнения()
Как видите, ничего запредельного. Всё, что Вам может потребоваться - добавить туда ещё одну ветку "Если...". Документы из 7-ки выгружаются построчно, все реквизиты шапки выгружаются в одну строку, и такая строка всегда начинается с символа "#". Каждая строка многострочной части семёрочного документа выгружается в одну строку текстового файла.
В 8-ке ядром обработки загрузки служит процедура "ЗагрузитьДок(ДокВид77, ДокВид82)", которая читает построчно текстовый файл переноса, и для каждой строки с описанием шапки документа вызывает процедуру "ЗаполнитьШапку", а для каждой строки с описанием строки многострочной части вызывает процедуру "ЗаполнитьСтроку".
Каждая из процедур "ЗаполнитьШапку" и "ЗаполнитьСтроку" делится, в свою очередь, на десяток-другой вызовов ЗаполнитьШапку1, ЗаполнитьШапку2, ЗаполнитьШапку3, ЗаполнитьШапку4, ... (ЗаполнитьСтроку1, ЗаполнитьСтроку2, ЗаполнитьСтроку3, ЗаполнитьСтроку4, ...), где ЗаполнитьШапку1 и ЗаполнитьСтроку1 - это специализированные обработчики заполнения конкретного вида восьмёрочного документа. Можете добавить аналогичный обработчик - для своего вида документа.
Разумеется, в процессе перегрузки могут возникать и иные непредвиденные ошибки - в силу сложности самого процесса. Надеюсь, что Вы сможете самостоятельно разобраться в них - во всяком случае, это будет гораздо проще сделать, чем разобраться в ошибках конвертации данных.
Этими обработками я оперативно перегрузил сотни документов - за один переходный месяц. Всё получилось нормально, и никаких неприятных последствий потом не возникло.