Как решить проблему парных строк в отчете сравнения конфигураций УТ 10.3, когда объекты с одинаковым именем отображаются как разные?

Программист 1С v8.3 (Обычные формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

При работе с доработанными конфигурациями 1С:Предприятие, особенно при их обновлении или сравнении с типовыми версиями, часто возникает ситуация, когда механизм сравнения и объединения конфигураций выводит отчет с «парными» строками. Это означает, что для объектов, которые, казалось бы, имеют абсолютно одинаковые названия, вы видите две отдельные записи: одна гласит «Объект присутствует только в файле», а другая — «Объект присутствует только в основной конфигурации». Это может ввести в заблуждение, особенно когда речь идет о важных элементах, таких как реквизиты форм или группы справочников, как в случае с объектами, связанными с «Прослеживаемостью» в УТ 10.3.

Рассмотрим подробно, почему это происходит, и как мы можем эффективно управлять такими ситуациями.

Выясняем причину различий: Внутренние идентификаторы (UUID)

Мы сталкиваемся с такой ситуацией, потому что, несмотря на внешнее сходство (одинаковое имя объекта), для 1С:Предприятия это на самом деле два абсолютно разных объекта. Каждый объект метаданных в системе 1С (будь то справочник, документ, форма, реквизит или что-либо еще) при своем создании получает уникальный внутренний идентификатор — UUID (Universally Unique Identifier). Этот идентификатор является его «паспортом» внутри конфигурации.

  1. Разные UUID при одинаковых именах: Если два объекта с одинаковыми именами были созданы независимо друг от друга в разных конфигурациях (например, вы вручную создали реквизит с именем ЕдиницаИзмеренияПрослеживаемости в одной конфигурации, а в типовой конфигурации такой реквизит появился в результате обновления), то их UUID будут отличаться. Механизм сравнения, пытаясь найти пары, сначала сопоставляет объекты по имени. Однако, если по имени найдено несколько объектов или объекты с одинаковым именем имеют разные UUID, система воспринимает их как два отдельных объекта: один уникален для одной конфигурации, другой — для другой.
  2. Особенности копирования объектов: Важно помнить, что при копировании объектов (даже в процессе объединения конфигураций, если не выбрана полная загрузка или перезапись), их внутренние идентификаторы изменяются. Это создает новые, уникальные UUID для скопированных элементов.
  3. Режимы сравнения "родственных" и "произвольных" конфигураций:
    • При сравнении «родственных» конфигураций (например, конфигурации информационной базы с конфигурацией хранилища) сопоставление объектов происходит исключительно по идентификатору.
    • При сравнении «произвольных» конфигураций (например, двух файлов конфигурации — .cf или .epf) платформа сначала пытается сопоставить объекты по имени, а затем, если по имени пару найти не удалось или объектов с таким именем несколько, то по идентификатору. Если соответствия по имени и ID не найдено, они считаются разными.
  4. Контекст "Прослеживаемости" в УТ 10.3: Упоминание объектов, связанных с Прослеживаемость (таких как ЕдиницаИзмеренияПрослеживаемости или КоэффициентПрослеживаемыхТоваров), является показательным. Функционал прослеживаемости импортных товаров (учет РНПТ – регистрационных номеров партий товаров) был добавлен в УТ 10.3 начиная с определенных релизов (например, 10.3.70 или 10.3.71). Если ваша доработанная конфигурация была обновлена с более ранней версии или разрабатывалась параллельно с типовой, которая получила эти изменения, то вполне вероятно, что в одной конфигурации (например, в типовой) эти объекты уже существуют с определенными UUID, а в вашей доработанной конфигурации они либо отсутствуют, либо были созданы или скопированы иным образом, что привело к другим UUID.

Таким образом, суть проблемы в том, что 1С видит два разных объекта, даже если мы видим одно и то же название.

Как управлять соответствием объектов и устранить "парные" строки

Для решения проблемы с «парными» строками и правильного объединения объектов, имеющих одинаковые имена, но разные UUID, мы можем использовать функционал интерактивной установки соответствия объектов в окне сравнения и объединения конфигураций.

Пошаговая установка соответствия объектов

  1. Откройте окно сравнения и объединения: Запустите сравнение вашей доработанной конфигурации с типовой (или с той конфигурацией, откуда вы хотите взять изменения).
  2. Найдите "парные" объекты: В отчете сравнения вы увидите те самые «парные» строки, где объект присутствует «только в файле» и «только в основной конфигурации». Найдите одну из таких пар, например, ЕдиницаИзмеренияПрослеживаемости.
  3. Выберите объект и вызовите контекстное меню: Выберите один из этих объектов (например, тот, который «присутствует только в основной конфигурации») и щелкните по нему правой кнопкой мыши.
  4. Используйте пункт "Установить соответствие объектов": В контекстном меню выберите пункт "Установить соответствие объектов...".

    Примечание по поводу сообщения автора "У меня нет установки соответствия": Пункт "Установить соответствие объектов" становится доступен только тогда, когда платформа не смогла самостоятельно найти пару для выбранного объекта. Если платформа уже нашла пару (даже если вы хотите ее отменить, что делается через "Отменить соответствие"), или если вы выбрали объект, который присутствует в обеих конфигурациях и помечен как измененный, то этот пункт может быть неактивен. Вам нужно выбрать именно один из объектов, который по мнению платформы "присутствует только в файле" или "только в основной конфигурации", чтобы предложить ему пару вручную.

  5. Выберите соответствующий объект: Откроется список объектов того же типа (например, список реквизитов формы), из которого мы можем выбрать тот, который, по нашему мнению, является логическим «двойником» выбранного объекта (тот, что «присутствует только в файле»).
  6. Подтвердите выбор: После выбора соответствия платформа свяжет эти два объекта, и они перестанут отображаться как два разных. Вместо этого они будут показаны как один объект, для которого могут быть показаны различия в свойствах, модулях и т.д.

Этот механизм позволяет нам вручную «сказать» 1С, что два объекта с разными UUID, но одинаковыми именами, на самом деле являются одним и тем же логическим объектом.

Режимы объединения после установки соответствия

После того как мы установили соответствие между объектами, мы сможем выбрать, как именно объединить их изменения:

  1. Взять из основной конфигурации: Если мы хотим сохранить версию объекта, которая находится в нашей текущей (основной) конфигурации.
  2. Взять из загружаемой конфигурации: Если мы хотим принять версию объекта из конфигурации, с которой мы сравниваем (например, из типового обновления).
  3. Объединить: Этот режим позволяет выполнить поблочное объединение изменений, если таковые имеются (например, в модулях, формах). Особенно это актуально для текстовых данных, таких как код модулей.

Мы можем также настроить параметры сравнения, например, разрешить удаление объектов основной конфигурации, если это необходимо.

Детальное сравнение модулей и форм

Автор в сообщении 9 упоминал, что «по шестеренке показывает различие в модуле». Это очень важный момент. После установки соответствия, если в связанных объектах есть реальные изменения (например, в коде модуля или в свойствах формы), значок «шестеренки» (или аналогичный индикатор различий) появится рядом с объединенным объектом. Мы можем кликнуть по нему, чтобы открыть детальное сравнение, которое покажет поблочно, что именно изменилось в модуле, форме или других свойствах. Это позволяет нам вручную выбрать, какие изменения принять, какие отклонить или какие объединить.

Контекст "Прослеживаемости" в 1С УТ 10.3

Давайте подробнее разберем, что такое "Прослеживаемость" и почему объекты, связанные с ней, могли появиться в одной конфигурации, но отсутствовать или быть другими в другой.

Что такое Прослеживаемость (учет РНПТ)?

Функционал прослеживаемости импортных товаров, или учет РНПТ (регистрационных номеров партий товаров), был добавлен в УТ 10.3 для соответствия законодательным требованиям по учету определенных категорий импортных товаров. Это важная часть налогового и управленческого учета.

Как это работает в УТ 10.3:

  1. Включение функционала: Для активации учета прослеживаемости мы должны включить соответствующую опцию в "Настройках параметров учета" (обычно это меню «Сервис» -> «Настройка учета» -> «Настройка параметров учета»).
  2. Настройка номенклатуры: Для товаров, подлежащих прослеживаемости, в справочнике Номенклатура необходимо указать код ТН ВЭД, единицу измерения прослеживаемости и установить флажок "Прослеживаемый товар". Именно эти поля и связанные с ними реквизиты формы, вероятно, и фигурируют в вашем отчете сравнения.
  3. Работа с документами: Учет РНПТ ведется с использованием специальных документов. Например:
    • Уведомление об остатках прослеживаемых товаров используется для ввода начальных остатков.
    • При поступлении товаров номера партий могут вводиться вручную.
    • В документах реализации, списания и требования-накладной предусмотрено автоматическое списание РНПТ.

Появление объектов, связанных с Прослеживаемость, только в одной из сравниваемых конфигураций (например, в типовой, с которой сравнивается ваша измененная) означает, что в этой конфигурации функционал учета прослеживаемости уже реализован или обновлен до версии, которая его включает. В вашей доработанной конфигурации эти объекты могли отсутствовать, быть созданы другим образом или быть измененными, что привело к расхождению UUID и появлению «парных» строк в отчете сравнения.

Важность изучения "матчасти" (ИТС) и обновления конфигурации

Как справедливо было указано в одном из сообщений форума, для глубокого понимания механизмов работы платформы 1С и конфигураций критически важно изучать "матчасть". Основным источником такой информации является ИТС (Информационно-технологическое сопровождение 1С), которое содержит подробные описания функционала, методики работы и решения типовых проблем.

Также стоит учитывать, что поддержка УТ 10.3 прекращается. Фирма "1С" активно рекомендует переход на более современные решения, такие как УТ 11. Обновление с УТ 10.3 на УТ 11 — это, по сути, не просто обновление, а переход на совершенно новую архитектуру (управляемые формы, другие принципы работы). Этот процесс обычно требует выгрузки данных из УТ 10.3 в файл и их загрузки в новую, пустую базу УТ 11 с использованием специальных обработок.

Заключение

Проблема «парных» строк при сравнении конфигураций в 1С:Предприятии 8.3, особенно в УТ 10.3, является распространенной и вызвана различием во внутренних идентификаторах (UUID) объектов, имеющих одинаковые имена. Для ее решения необходимо использовать механизм интерактивной установки соответствия объектов в окне сравнения и объединения конфигураций. После установления соответствия мы сможем выбрать подходящие режимы объединения, а при наличии реальных различий (в модулях или формах) — детально проанализировать и объединить изменения.

Всегда помните о важности официальной документации 1С (ИТС) для получения точной и актуальной информации о работе платформы и конфигураций.

← На главную