Переход с платформы 1С:Предприятие 7.7 на 8.2 (или 3.0 на базе 8.3) — это трудоемкий процесс, который часто сопровождается техническими сбоями. Одной из самых коварных проблем является ошибка исполнения обработчика ПВД_ПередОбработкойПравила_тДанныеПоНДСпоПоставщикам, указывающая на отсутствие поля Договор. В этой статье мы подробно разберем, как подготовить информационные базы, устранить ошибки в данных и успешно завершить перенос.
Прежде чем приступать к выгрузке, необходимо убедиться, что обе конфигурации обновлены до актуальных (на момент переноса) релизов. Рассмотрим, почему это важно. Правила обмена, которые встроены в Бухгалтерию предприятия 8.2, жестко завязаны на структуру метаданных Бухгалтерии 7.7. Если ваша «семерка» имеет старый релиз (например, ниже 550), а «восьмерка» — актуальный, возникнет конфликт имен полей и объектов.
Проанализируем необходимые действия в базе 7.7:
V7PLUS.DLL. Скопируем актуальный файл в каталог базы данных. Эта библиотека отвечает за корректное формирование XML-файла.Эта ошибка чаще всего возникает при попытке выгрузить данные по НДС. Выясним причину: правила обмена перебирают документы-основания на счетах учета НДС (например, 19.3) и пытаются программно обратиться к реквизиту Договор этого документа.
Если в базе 7.7 на счете 19.3 (или других субсчетах 19 счета) в качестве субконто Счета-фактуры указан документ, у которого в структуре нет договора (например, Авансовый отчет или ручная Операция), механизм переноса «спотыкается». Рассмотрим алгоритм исправления:
Поступление товаров или Счет-фактура.Авансовый отчет. Если в проводках по НДС в авансовом отчете не заполнен договор или вид документа не предусматривает наличие этого поля, его нужно скорректировать.Если стандартный помощник перехода (через прямое подключение к базе) выдает ошибки, перейдем к более надежному способу — выгрузке через файл XML. Разберем этот процесс по шагам:
В базе 8.2 найдем файлы правил обмена. Обычно они находятся в подкаталоге TradeWareEpf или ExtFiles каталога установки конфигурации. Нам понадобятся файлы: ACC77_82.XML (остатки и справочники) или ACC77_82_AccDoc.XML (с документами).
В базе 7.7 запустим обработку выгрузки. Рассмотрим пример логики подготовки выгрузки:
// Пример логики в обработчике ПВД (Правила выгрузки данных)
// Если объект не имеет реквизита "Договор", его нужно пропустить или подставить пустую ссылку
Если Метаданные.Документ(ДокОснование.Вид()).Выбран() = 1 Тогда
Если НайтиРеквизит(ДокОснование, "Договор") = 0 Тогда
// Код обработки исключения, чтобы избежать ошибки "Поле агрегатного объекта не обнаружено"
КонецЕсли;
КонецЕсли;
Поскольку мы не можем легко править скомпилированные правила «на лету» без Конвертации данных, проще всего при выгрузке в обработке Выгрузка данных из 1С:Бухгалтерии 7.7 (обычно это Exp77_82.ert) снять галочки с проблемных разделов («НДС по приобретенным ценностям», «Расчеты с персоналом») и выгрузить их позже отдельным этапом, предварительно почистив данные в 7.7.
При загрузке в 8.2 может возникнуть ошибка: Ошибка при вызове метода контекста (ПолучитьОбъект): Элемент не выбран!. Это происходит в обработчике ПослеЗагрузкиОбъекта для документа ВводНачальныхОстатков.
Выясним причину: программа пытается найти объект (например, организацию или номенклатуру) по ссылке, которая была выгружена, но не была создана в базе-приемнике из-за ошибки в правилах. Чтобы решить эту проблему:
УниверсальныйОбменДаннымиXML.После успешной загрузки данных мы увидим документы в журнале Ввод начальных остатков. Однако данные еще не зафиксированы в регистрах и бухгалтерии. Нам необходимо выполнить следующие действия:
Проанализируем состояние документов. Многие из них могут не проводиться из-за отсутствия обязательной аналитики, которой не было в 7.7 (например, Статьи движения денежных средств или Счета учета номенклатуры). Разберем, как это исправить:
Используя этот комплексный подход — от исправления 19 счета в «семерке» до отладки загрузки в «восьмерке» — мы сможем корректно перенести данные и избежать потери важной финансовой информации.