8.х ОБМЕН Восстановление последовательности кодов при обмене УТ 10.2 (распр.)+БП 2.0

Тема в разделе "Обмен данными в "1С:Предприятие 8"", создана пользователем Region_64, 19 июн 2012.

  1. TopicStarter Overlay
    Region_64
    Offline

    Region_64

    Регистрация:
    14 окт 2011
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Уважаемые гуру 1с подсакажите?

    Исходные данные:
    Есть УТ 10.2 конфигурация когда то была типовая, в итоге ее уже никто не узнает. Есть удаленный офис, обмениваются по плану обмена, т.е. через XML. Кроме этого есть абсолютно типовая БП 2.0. Выгрузка осуществляется через универсальный механизм обмена XML. Правила обмена создавались не мной, но похоже долго и нудно (в будущем их тоже править буду).

    Суть проблемы:
    При переносе данных из УТ в БП не всегда находится Договор контрагента, в результате чего плывет аналитика по договорам, и как следствия в разрезе договоров получаются отрицательные или положительное сальдо, и пр.

    Мое видение решения:
    При XML обмене в моем случае все договоры сначала ищутся по УИН, если по УИН элемент, т.е. договор не находится, то продолжается поист по реквизитам поиска, например Код, Наименование, ВидДоговора, ВалютаВзаиморасчетов, Организация, Владелец, ЭтоГруппа как это указано в правилах, в моей ситуации. То есть если договор не был найден по УИН, то для выбора договора необходимо чтобы реквизиты всех этих полей совпали. Но это не возможно, т.к. поля Код в УТ = 10, в БП = 9, а длина поля Наименование в УТ = 150, в БП = 50. Кроме того в справочнике договоры, есть задвоенные коды. Т.е. в моем случае поиск при загрузке осуществляется только по УИН. Решение увеличить длину поля Код до 10 в УТ приняли "недобросовестные" программисты, когда какой-то "умный" пользователь поставил в коде букву где-то в середине, и как следствие закончилась последовательность кодов. Итак, я вижу решение в том, чтобы:
    1) обрезать длину кода до 9
    2) восстановить последовательность кодов, с помощью стандартной обработки.
    3) изменить поля поиска при обмене и оставить только Код, ВидДоговора, ВалютаВзаиморасчетов, Организация, Владелец, ЭтоГруппа.

    Но у меня возникло несколько вопросов, может кто то сталкивался?
    Вопросы:
    1) Не повлияет ли изменение длины кода и собственно кодна на обмен между центр. базой и удаленной (вроде все элементы при обмене сопоставляются по УИН, но все же).
    2) Как лучше поступить с префиксами, т.к. в они установлены на узлах обмена и на организациях, можно их просто затереть и восстановить коды без префикса, а в далльнейшем все договоры опять будут нумероваться согласно правил, т.е. с префиксами. Или же нужно перенумеровывать уже с префиксами.
    3) Может есть другой путь решения данной проблемы...?
  2. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    1. В распределенке ничего страшного - все договоры просто поменяются по кодам в узле.
    2. Конкретно для договоров можете задать префиксацию только на узел или вообще отключить - смотрите обработчики событий при установке кода и назначении префикса. Но, я бы все же, префикс для узла оставил, так как мало ли создадут везде одновременно по договору.
    3. Много вариантов:
    3.1 Использовать регистр сведений "Соответствие объектов при обмене" - если обмен писался на основании типового, то, возможно, он используется.
    3.2 Слегка доработать БП - сделать код 10.
    3.3 Сделать свой реквизит или регистр для соответствий и проставить его нужным значением (типа Код договора в БП или Код договора в УТ)
  3. TopicStarter Overlay
    Region_64
    Offline

    Region_64

    Регистрация:
    14 окт 2011
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Спасибо, по первому пункту я все понял. Я так и думал.
    По второму - для дальнейшей работы префиксы узлов и организаций я убирать не хочу, просто при перенумерации если на все договоры до текущей даты установить код без префикса. Это критично? По идее, после этого в удаленной базе при обмене тоже будет присвоен новый код и все, а при выгрузке в бухгалтерию коды договоров будут заменены на коды в УТ, но ни разу этого не делал...
    По третьему - Ввести регистр или реквизит можно, но в любом случае код нужно приводить к одной длине, т.к. разрядность у них разная. А менять типовую БП не охота, потом стоит один раз кому-то недосмотреть при обновлении и опять коды полетят.
  4. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Проверьте предварительно правила - как у вас синхронизируются договоры.
    Если сначала по внутреннему идентификатору - все отлично перезапишется и будет работать. Если синхронизация по коду уже сейчас стоит, то переделав коды в УТ вы создадите дубли договоров в бухгалтерии.
  5. TopicStarter Overlay
    Region_64
    Offline

    Region_64

    Регистрация:
    14 окт 2011
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Я писал что сначала по УИН, спасибо, буду экспериментировать на тестовых базах.
  6. TopicStarter Overlay
    Region_64
    Offline

    Region_64

    Регистрация:
    14 окт 2011
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Может кто-то еще подскажет, чтобы не плодить темы задам тут.
    У меня движения при обмене не выгружаются, но свойство документа - Проведен при перегрузке документов имеет значение Истина. как следствие в журнале документы отображаются галочки проведения. Какой обработчик добавить чтобы этих галочек не было и при повторном переносе документов чтобы эти галочки убирались(т.е. свойство Проведен менялось на значение Ложь) и удалялись движения по документу?
  7. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    В правилах обмена поставьте значение проведен, чтобы передавалось "Ложь", а не значение из источника или же принудительно пропишите проведение документов после загрузки.

Поделиться этой страницей