8.х Функция приведения кода справочника к определенной длине

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Itsys, 27 янв 2010.

  1. TopicStarter Overlay
    Itsys
    Offline

    Itsys Опытный в 1С

    Регистрация:
    3 янв 2010
    Сообщения:
    1.394
    Симпатии:
    0
    Баллы:
    26
    Добрый день,

    При переносе справочника Контрагентов из ТиС в УТ все коды привелись к одной длине в 9 символов, т.е. было "У04752", стало "У00004752", было "AQ-п6058", стало "AQ-п06058". Возникла потребность обмена данными между базами.
    Вопрос: есть ли в УТ процедура по приведению кода к определенной длине, т.е. получив код из ТиС, привести к коду УТ?
    Или придется писать вручную?
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.566
    Симпатии:
    717
    Баллы:
    204
    вручную
  3. TopicStarter Overlay
    Itsys
    Offline

    Itsys Опытный в 1С

    Регистрация:
    3 янв 2010
    Сообщения:
    1.394
    Симпатии:
    0
    Баллы:
    26
    :) уже написал...
  4. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Здраствуйте!
    Ответ, есть.

    Код:
    Встроенные функции языка
    Формат (Format)
    Синтаксис:
    Формат(<Значение>, <Форматная строка>) 
    Параметры:
    <Значение> (обязательный)
    Тип: Число, Дата, Булево. Форматируемое значение. 
    <Форматная строка> (необязательный)
    ...
    ЧВН (NLZ) - Нужно ли выводить лидирующие нули. Значение данного параметра не задается, собственно наличие параметра определяет вывод лидирующих нулей. 
    
  5. TopicStarter Overlay
    Itsys
    Offline

    Itsys Опытный в 1С

    Регистрация:
    3 янв 2010
    Сообщения:
    1.394
    Симпатии:
    0
    Баллы:
    26
    Но мне надо вставить нули не в начало, а в середину, и реквизит текстовый, а не числовой...
  6. TopicStarter Overlay
    Itsys
    Offline

    Itsys Опытный в 1С

    Регистрация:
    3 янв 2010
    Сообщения:
    1.394
    Симпатии:
    0
    Баллы:
    26
    В данном случае мне помогло, может еще кому поможет:
    Код:
    				Если СтрДлина(Код) < 9 Тогда
    Для Т = 1 По СтрДлина(Код) Цикл
    Если Найти("0123456789", Сред(Код, Т, 1)) > 0 Тогда
    Прервать;
    КонецЕсли;
    КонецЦикла;
    НовыйКод = Лев(Код, Т-1) + Лев("0000000000", 9-СтрДлина(Код)) + Прав(Код, СтрДлина(Код)-Т+1);
    Иначе
    НовыйКод = Код;
    КонецЕсли;
    
    

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