7.7 Дублирование строк в табличной части документа.

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

  1. TopicStarter Overlay
    Onimuro
    Offline

    Onimuro

    Регистрация:
    29 июл 2010
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Доброго времени суток.
    Проблема такого плана. Нужна проверка на дублирование строк, но чтобы при одинаковых значениях "номенклатуры" были разные (и не повторящющиеся, для данной номенклатуры) значения "назначения использования". При всем при этом, само наименование у всех "назначение использования" является пустым, и у меня загвоздка.

    Заранее благодарю за решение проблемы.
  2. WaRDeR
    Offline

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

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Обычно делается так:
    - Выгружается табличная часть в таблицу значений
    - Сворачивается с нужными параметрами
    - Загружается назад в документ.

    Если нужна просто проверка, то нужно сравнить количество строк ТЗ до и после свертки, если разное, значит есть дубли.
  3. TopicStarter Overlay
    Onimuro
    Offline

    Onimuro

    Регистрация:
    29 июл 2010
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Я решил проблему в 2 цикла:




    Код:
    ТЗ=СоздатьОбъект("ТаблицаЗначений");
    ВыгрузитьТабличнуюЧасть(ТЗ,);
    ТЗ.ВыбратьСтроки();
    Пока ТЗ.ПолучитьСтроку()=1 цикл
    ВыбратьСтроки();
    Пока ПолучитьСтроку()=1 цикл
    Если (ТЗ.Номенклатура=Номенклатура)
    и (ТЗ.НазначениеИспользования=НазначениеИспользования)
    и (ТЗ.НомерСтроки<>НомерСтроки)
    тогда
    Сообщить ("В строке №"+НомерСтроки+" имеется одинаковое Назначение Использования!Поправьте значение.");
    КонецЕсли;
    КонецЦикла;
    КонецЦикла;
    
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Так быстрее
    Код:
    ВыгрузитьТабличнуюЧасть(ТЗ);
    ТЗ.Свернуть("Номенклатура,НазначениеИспользования","Счетчик");
    Если ТЗ.КоличествоСтрок()<>КоличествоСтрок() Тогда
    Предупреждение("Есть дубли");
    КонецЕсли;
    
    

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