7.7 Допольнительный номер строки.

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем Stella, 4 авг 2008.

  1. TopicStarter Overlay
    Stella
    Offline

    Stella

    Регистрация:
    4 авг 2008
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Всем привет.
    Застряла в работе с табличной частью документа.
    Для дальнейшей работы, для связи между разными документами и так далее необходимо сделать номер строки табличной части.
    Есть стандартный номер строки – НомерСтроки. Но необходим дополнительный. Объясню зачем. При удалении строки в табличной части документа она удаляется физически плюс идет пересчет всех строк табличной части.
    Хотелось бы хранить старый номер строки где-то (НомерСтрокиСпец). То есть выглядеть должно это примерно так:

    Номер строки (станд) Номер строки (спец)
    1 1
    2 2
    3 3
    4 4

    После удаления третьей строки
    1 1
    2 2
    3 4
    После создания новой строки
    1 1
    2 2
    3 4
    4 5

    Проблема именно с номером строки специальным после удаления какой либо строки и создания новой (следующей).
    Уважаемые, может быть кто-то, где-то встречался с такой необходимостью.
    Ну ничего не получается( уже как только можно перекрючила процедуры а-ля ПриНачалеРедактированияСтроки(), ПриВВодеСТроки(), ПриОкончанииРедактированияСтроки().
    Ничего
    ЗЫ. Спасибо!!!
  2. Kaboom
    Offline

    Kaboom Опытный в 1С

    Регистрация:
    2 июл 2007
    Сообщения:
    158
    Симпатии:
    0
    Баллы:
    26
    Нужен еще один дополнительный реквизит шапки, для того чтобы хранить специальный номер последней добавленной строки (назовем его ПоследнийНомер). А дальше ... одна процедурка:
    Код:
    Процедура ПриОкончанииРедактированияСтроки(НоваяСтрока)
    Если НоваяСтрока = 1 Тогда
    ПоследнийНомер = ПоследнийНомер+ 1;
    НомерСтрокиСпец = ПоследнийНомер;
    КонецЕсли;
    КонецПроцедуры
    
  3. TopicStarter Overlay
    Stella
    Offline

    Stella

    Регистрация:
    4 авг 2008
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Что то как то так нарядно не вышло. При удалении строки где-нибудь в середине документа и создании новой строки он не присваивает НомерСтрокиСпециальный+1, как хотелось бы.
    Обошла немного иначе.
    В процедуре ПриРедактированииНовойСтроки() выгрузила табличную часть документа в таблицу значений, отсортировала ее в порядке убывания по дополнительному номеру строки и теперь всегда (независимо от того что меняется) присваиваю НомерСтрокиСпециальный = ТабЗнач.НомерСтрокиСпециальный+1.
    Спасибо, что откликнулись.
  4. Kaboom
    Offline

    Kaboom Опытный в 1С

    Регистрация:
    2 июл 2007
    Сообщения:
    158
    Симпатии:
    0
    Баллы:
    26
    Попробуйте удалите последнюю строку и добавьте снова строку - у вас номера будут идентичны. Тоесть
    1 1
    2 2
    3 3
    4 4
    Удаляем последнюю строку и добавляем новую, тогда у Вас получаем:
    1 1
    2 2
    3 3
    4 4
    У меня:
    1 1
    2 2
    3 3
    4 5
    Как правильно решать Вам.
  5. TopicStarter Overlay
    Stella
    Offline

    Stella

    Регистрация:
    4 авг 2008
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Согласна. Меня это тоже смутило. Но по факту, хранение строки нужно для записи в справочник соответствия другим видам документов, где важно на основании какой строки какого документа был создан текущий. Если последнюю строку удалили, потом опять создали - по идее хронология не нарушается. Другой вопрос, если записали документ, прописали в справочник соответствия, затем удалили и опять создали...чОрт его знает. Буду подумать. Спасибо.
  6. Kaboom
    Offline

    Kaboom Опытный в 1С

    Регистрация:
    2 июл 2007
    Сообщения:
    158
    Симпатии:
    0
    Баллы:
    26
    Собьются соответствия. Без дополнительного реквизита не обработать эту ситуацию.

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