Переход с одной версии конфигурации 1С на другую, особенно с УТ 10.3 на УТ 11.4, является стандартной, но часто непростой задачей. Одной из наиболее частых проблем, с которой мы сталкиваемся при таком переносе, является некорректный перенос информации о сериях номенклатуры. В этой статье мы подробно разберем, почему возникают сложности с переносом серий, проанализируем предлагаемые решения и рассмотрим внутреннюю логику системы.
В типовом механизме переноса данных из УТ 10.3 в УТ 11.4 остатки номенклатуры могут переноситься без указания серий, либо с использованием "неизвестных серий". Это происходит даже при наличии в УТ 10.3 полных сведений о сериях. Мы выясним, какие настройки необходимо учесть, и какие действия предпринять для успешного переноса.
Типовой перенос данных из УТ 10.3 в УТ 11.4 осуществляется с помощью специальной обработки, которая обычно находится в установочном пакете 11-й редакции в папке AddFiles\Переходы с других конфигураций\УТ103 и называется "Выгрузка данных". Эта обработка работает в связке с "Помощником перехода с УТ 10.3" в УТ 11.4. При работе с этим механизмом важно понимать, как он обрабатывает серии.
При переносе данных нам предлагается выбрать одно из правил переноса серий:
Для корректной выгрузки информации по сериям номенклатуры необходимо установить параметр «ВыгружатьСерии» в значение «Да» в обработке переноса данных. При этом серии будут переноситься для остатков и оборотов с типом политики «Учет себестоимости по сериям». Если в УТ 10.3 учет по сериям велся и соответствующий параметр включен, серии будут выгружены в остатках и документах, а в видах номенклатуры в УТ 11.4 будет выбрана политика учета серий "Справочное указание серий".
Несмотря на наличие типовых настроек, на практике мы часто сталкиваемся с тем, что остатки переносятся без серий или с "неизвестной серией". Это может быть вызвано несколькими причинами:
Для более глубокого понимания ситуации, давайте рассмотрим фрагмент кода, который затрагивает логику определения режима учета серий и алкогольной продукции при создании вида номенклатуры в УТ 11.4. Этот фрагмент кода может дать нам представление о том, как система пытается сопоставить данные УТ 10.3 с новой структурой УТ 11.4.
В одном из сообщений форума был приведен следующий код:
ПодходящийРежимСерий = 1;
Если ИмяТЧ = Неопределено Или ИмяТЧ = "Товары" Тогда
ПодходящийРежимСерий = 2;
КонецЕсли;
Если Параметры.РежимВыгрузкиСерий = ПодходящийРежимСерий Тогда
Номенклатура = ОбъектКоллекции.Номенклатура;
// ... дальнейшая логика по алкогольной продукции и ГТД ...
СоздатьВидНоменклатуры_ИспользоватьСерии = Истина;
// ...
Выполнить(Алгоритмы.СоздатьВидНоменклатуры);
ИсходящиеДанные = Новый Структура("ВидНоменклатуры", Значение);
Значение = ОбъектКоллекции.Серия;
Если НЕ ЗначениеЗаполнено(ОбъектКоллекции.Серия) Тогда
Значение = "1";
ИмяПКО = "НеизвестнаяСерия";
КонецЕсли;
Иначе
Отказ = Истина;
КонецЕсли;
Давайте разберем этот код пошагово:
ПодходящийРежимСерий = 1; Мы видим инициализацию переменной ПодходящийРежимСерий значением 1. Это может быть дефолтное значение, соответствующее определенной политике учета серий, например, "Не переносить информацию о сериях" или "Справочное указание серий".Если ИмяТЧ = Неопределено Или ИмяТЧ = "Товары" Тогда ПодходящийРежимСерий = 2; КонецЕсли; Здесь происходит изменение значения ПодходящийРежимСерий на 2, если имя табличной части (ИмяТЧ) не определено или равно "Товары". Это условие, вероятно, указывает на то, что если данные обрабатываются в контексте товарных позиций, то предполагается более детализированный учет серий, например, "Переносить информацию об остатках серий" или "Учет себестоимости по сериям".Если Параметры.РежимВыгрузкиСерий = ПодходящийРежимСерий Тогда Это ключевое условие. Оно проверяет, соответствует ли установленный в параметрах выгрузки режим серий (Параметры.РежимВыгрузкиСерий) тому "подходящему" режиму, который был определен логикой. Если режимы не совпадают, то блок Иначе будет выполнен, и перенос может быть отклонен (Отказ = Истина). Это означает, что для успешного переноса нам нужно убедиться, что параметр выгрузки серий в обработке соответствует ожиданиям целевой системы.ВестиУчетПоГТД.СоздатьВидНоменклатуры_ИспользоватьСерии = Истина; Здесь явно указывается, что для создаваемого вида номенклатуры будет установлен флаг использования серий. Это говорит о том, что система пытается сохранить информацию о сериях на уровне вида номенклатуры.ОбъектКоллекции.Серия) не заполнено, система присваивает ему строковое значение "1" и указывает ИмяПКО = "НеизвестнаяСерия". Это прямо указывает на механизм, который создает "неизвестные серии" в УТ 11.4, когда исходные данные по сериям отсутствуют или некорректны.Таким образом, мы видим, что система ожидает определенный режим выгрузки серий, который должен соответствовать внутренней логике УТ 11.4. Несоответствие может привести к отклонению переноса или созданию "неизвестных серий". Этот анализ подсказывает нам, что для успешного переноса необходимо тщательно проверять и, при необходимости, дорабатывать правила обмена, чтобы обеспечить правильное сопоставление режимов учета серий.
Если типовой перенос не дает желаемого результата, мы можем рассмотреть несколько подходов:
Прежде чем приступать к переносу, критически важно подготовить базу УТ 10.3. Этот этап часто недооценивается, но именно он помогает избежать множества проблем:
В большинстве случаев, когда типовой механизм не справляется с переносом серий, наиболее надежным решением является доработка правил обмена. Мы можем использовать обработку "Универсальный обмен данными в формате XML" и изменить правила конвертации. Эти правила обычно находятся внутри отдельной обработки по переносу остатков из УТ 10.3 в УТ 11.4, в макетах. Доработка правил позволяет нам:
Для доработки правил обмена нам потребуются навыки программирования в 1С. Мы будем работать с объектами ПравилаОбмена, КонвертацияОбъектовИнформационныхБаз и детально прописывать логику переноса каждого реквизита, связанного с сериями.
Некоторые пользователи прибегают к частичному ручному переносу остатков. Этот метод может быть полезен для переноса обычных остатков, но имеет существенные ограничения для серий.
Однако, как показала практика на форуме, этот метод не всегда работает для серий. В сообщении 9 пользователь указывает: "открылась таблица, но серии там нет". И в сообщении 10 уточняется, что "обидно, значит тут только характеристики сработают а серии только через кнопку сработают". Это означает, что типовой механизм загрузки из табличного документа в документе ввода остатков в УТ 11.4 предназначен скорее для характеристик номенклатуры, чем для серий. Серии требуют более глубокого понимания логики учета и создания соответствующих объектов в системе.
После успешной загрузки данных в УТ 11.4 мы должны выполнить следующие шаги:
Перенос данных о сериях из УТ 10.3 в УТ 11.4 является сложной задачей, которая редко решается без дополнительных усилий. Мы убедились, что типовой механизм имеет свои ограничения, а альтернативные ручные методы не всегда эффективны для серий. Наиболее надежным подходом остается доработка правил обмена, которая позволяет учесть все нюансы учета серий в исходной и целевой конфигурациях. Тщательная подготовка базы и последующий контроль данных являются обязательными этапами для успешной миграции.