7.7 ! Поможите !

Тема в разделе "Отчеты и обработки для "1С:Предприятие 7.7"", создана пользователем Alexsey, 28 сен 2006.

  1. TopicStarter Overlay
    Alexsey
    Offline

    Alexsey

    Регистрация:
    28 сен 2006
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Кто-нибудь, подскажите как создать обработку для приведения в порядок кодов контрагентов, т.к. они набраны в беспорядочном хаосе т.е. 97, или 000045, или 1254 и т.д.
    заранее благодарен!!!!!!!!!
  2. Pilgrim
    Offline

    Pilgrim Опытный в 1С

    Регистрация:
    13 сен 2006
    Сообщения:
    242
    Симпатии:
    0
    Баллы:
    26
    Смотря что ты имеешь в виду, под "привести" в порядок. Даже если взять просто
    весь справочник и присваивать новые коды элементам, то можно же это делать внутри
    группы, например, а можно сквозную нумерацию ставить.
  3. TopicStarter Overlay
    Alexsey
    Offline

    Alexsey

    Регистрация:
    28 сен 2006
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Я имел ввиду то, что нужно сделать номера по порядку независимо группа это или элемент.
  4. Prospero
    Offline

    Prospero Опытный в 1С

    Регистрация:
    13 сен 2006
    Сообщения:
    111
    Симпатии:
    0
    Баллы:
    26
    А сортировка по коду не поможет?
  5. Amishechka
    Offline

    Amishechka Опытный в 1С

    Регистрация:
    8 сен 2006
    Сообщения:
    361
    Симпатии:
    1
    Баллы:
    26
    Сними контроль уникальности со справочника (а то при перекодировке вдруг нарвешься на такой же код). В обработке в таблицу значений сгрузи все элементы справочника включая группы (или в список значений). Перебирая их присваивай им новые коды (простой переборкой элементов справочника нельзя, при смене кода будет ругаться) и записывай. Установи контроль уникальности (чтобы вернуть как было).
  6. Vlad
    Offline

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

    Регистрация:
    16 авг 2006
    Сообщения:
    3.517
    Симпатии:
    19
    Баллы:
    29
    Если хочешь перенумеровать и чтобы все стояло по порядку, то на ИТС есть обработка, называется, кажется, "Универсальная обработка подбора объектов". Она это замечательно делает. И не только это.
  7. рамиль
    Offline

    рамиль Опытный в 1С

    Регистрация:
    12 мар 2006
    Сообщения:
    595
    Симпатии:
    0
    Баллы:
    26
    Сделайте Кодд Строковым . Далее перебирайте элементы и присваивайте новый номер с префиксом по порядку.После этого снова пребираете элементы и назначаете новый номер минус префикс.
    Спр=СоздатьЭлемент("Справочник.Контрагенты");
    Спр.выбратьЭлементы();
    н=0;
    Пока Спр.ПолучитьЭлемент()=1 Цикл
    Спр.Код="Р" + н;
    Спр.Записать();
    С префиксом программа не будет ругаться на неуникальность.

    После ...
    Спр=СоздатьЭлемент("Справочник.Контрагенты");
    Спр.выбратьЭлементы();
    н=0;
    Пока Спр.ПолучитьЭлемент()=1 Цикл
    НовыйКод=Прав(Спр.Код,7- Если разрядность равна 8);
    Спр.Код=НовыйКод;
    Спр.Записать();
  8. docent1971
    Offline

    docent1971

    Регистрация:
    4 окт 2006
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Все делается намного просче :unsure: ! Создаем объект("ТаблицаЗначений"); Заполняем его Элементами справочника. Если есть необходимость сортируем по алфавиту или по коду(хотя лучше всеж до выборки установить сортировку "ПорядокКодов()" (при етом не забывая включить графу "Код" и заполнить ее как Число(текущийЭлемент().код)) и начинаем производить выборку от количества строк данной таблицы к 1 с шагом (-1), проверяя наличие номера строки в графе "Код". после записи не забываем поменять в графе "Код" значение и все будет путем. при етом желательно использовать операнд "Попытка Исключение"

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