8.х Обмен участками строки ТЗ

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем t.u.l.i.p, 28 апр 2014.

  1. TopicStarter Overlay
    t.u.l.i.p
    Offline

    t.u.l.i.p

    Регистрация:
    11 мар 2014
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    Добрый день!
    есть ТЗ.Выбирается 2 строки, случайным образом находится точка деления строк. Далее до позиции деления первая и вторая часть строки переписываюся, пока номер колонки не равен позиции деления. если равен, то конец второй части строки добавляется к первой строке, конец первой ко второй.
    как сделать обмен такими участками на синтаксисе 1с?спасибо!
  2. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    приведите пример, немного не понятно что такое изобретаете
  3. TopicStarter Overlay
    t.u.l.i.p
    Offline

    t.u.l.i.p

    Регистрация:
    11 мар 2014
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    допустим в 1 строке ТЗ :0 1 0 1 1
    во 2 строке :1 1 0 1 0
    Делитель 3
    тогда результирующие будут
    0 1 0 1 0
    1 1 0 1 1
  4. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Разбор по-символьно плюс конкатенция.
  5. TopicStarter Overlay
    t.u.l.i.p
    Offline

    t.u.l.i.p

    Регистрация:
    11 мар 2014
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    какая конкатенация, вы о чем вообще
    каждый символ в отдельной колонке
  6. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Ну тогда цикл по колонкам, в чем проблема ? Посмотрите в СП методы работы с таблицей значений.
  7. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    берете одну строку в массив, вторую в массив, далее берете те элементы, которые требуются и вперед - это пожалу самое неоптимальное и затратное решение, оптимизация - это ваше уже
  8. TopicStarter Overlay
    t.u.l.i.p
    Offline

    t.u.l.i.p

    Регистрация:
    11 мар 2014
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    мда...ни в чем. тут видимо бесполезно что-то спрашивать.
  9. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    а вы ждете готовый код?
  10. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    У вас проблема в синтаксисе или в алгоритме?

    Если в алгоритме - то сами, это задача на 5 минут размышления.
    Если в синтаксисе - напишите как вы решили задачу либо с использованием любого другого языка программирования, либо словами опишите алгоритм (функции) как решаете, я помогу с синтаксисом в 1С.
  11. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    пардон, не выдержала душа поэта... чего сложного, не знаю

    Код:
    к = ТабЗнач.Колонки.Количество() - 1;
     Для сч = нс3 - 1 По к Цикл 
      тмп = ТабЗнач[нс1 - 1][сч];
      ТабЗнач[нс1 - 1][сч] = ТабЗнач[нс2 - 1][сч];
      ТабЗнач[нс2 - 1][сч] = тмп;
    КонецЦикла;
    
    ТабЗнач - ваша таблица
    нс1 - номер 1 строки
    нс2 - номер 2 строки
    нс3 - номер символа с которого надо начать
    так как нумерация начинается с 0, а предположительно, что номера строк задает пользователь, то все номера сдвинуты на 1 влево. Разбирайтесь, ничего тут сложного нет.

    З.Ы.И не надо обижаться. Код вам тут в принципе никто не обязан выдавать.

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