8.х Удаление строк из ТаблицыЗначений

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем НиколайН, 6 мар 2014.

  1. TopicStarter Overlay
    НиколайН
    Offline

    НиколайН Опытный в 1С

    Регистрация:
    14 фев 2014
    Сообщения:
    246
    Симпатии:
    0
    Баллы:
    26
    Добрый день!

    Как правильно удалить необходимые строки из ТаблицыЗначений?
    Например:
    Колонка 1 Колонка 2
    Товар1 123
    Товар2 345
    Товар3 567
    Товар4 890

    Мне нужно чтобы удалились Товар1, Товар3 и Товар4, а ТОВАР 2 остался, как это сделать?
  2. rshakiro
    Offline

    rshakiro Профессионал в 1С Команда форума

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    Можно обратиться к строкам по Индексу, посмотрите СП
  3. jonsony
    Offline

    jonsony Опытный в 1С Заблокирован

    Регистрация:
    16 апр 2009
    Сообщения:
    224
    Симпатии:
    25
    Баллы:
    29
    удаляешь по номеру строки, лучше удалять в обратном порядке, от большего номера строки к меньшему
    если удаляешь по возрастанию, то номера строк сдвигаются

    Код:
    ТаблицаЗначений (ValueTable)
    Удалить (Delete)
    Вариант синтаксиса: Удаление по объекту
    
    Синтаксис:
    
    Удалить(<Строка>)
    Параметры:
    
    <Строка> (обязательный)
    
    Тип: СтрокаТаблицыЗначений.
    Удаляемая строка таблицы значений.
    Вариант синтаксиса: Удаление по индексу
    
    Синтаксис:
    
    Удалить(<Индекс>)
    Параметры:
    
    <Индекс> (обязательный)
    
    Тип: Число.
    Индекс строки, которую необходимо удалить.
    Описание:
    
    Удаляет строку таблицы значений.
    
    Доступность:
    
    Сервер, толстый клиент, внешнее соединение.
    Пример:
    
    ТаблицаЦен.Удалить(Индекс);
    
    для данного случая тебе надо
    Код:
    ТаблицаЗначений.Удалить(4);
    ТаблицаЗначений.Удалить(3);
    ТаблицаЗначений.Удалить(1);
    
    где "ТаблицаЗначений" - название твоей ТаблицыЗначений
  4. Thelearning
    Offline

    Thelearning Профессионал в 1С Команда форума

    Регистрация:
    9 сен 2010
    Сообщения:
    701
    Симпатии:
    72
    Баллы:
    54
    Только один нюанс. Если будете использовать индексы, тогда удаление запускать нужно с последней строки и идти вверх.

    PS не успел написать )))
    Последнее редактирование: 6 мар 2014
  5. TopicStarter Overlay
    НиколайН
    Offline

    НиколайН Опытный в 1С

    Регистрация:
    14 фев 2014
    Сообщения:
    246
    Симпатии:
    0
    Баллы:
    26
    По индексам у меня удалить получается. Ситуация в следующем.
    В документе "Заказ покупателя", есть свойства документа, это обработка "ОбработкаЗначенияСвойствОбъектов".
    Я удаляю 4 строки свойства, остаются одна, т.к. мне и нужно всё замечательно, НО Не могу понять, когда я пытаюсь из документа, на вкладке
    "Дополнительно" войти в подразделение или в номенклатуру табличной части, нажимая на значок лупы, у меня вылетает следующая Ошибка:

    Ошибка при вызове метода контекста (Удалить);

    И ругается на удаляемую строку с индексом 4.

    Поэтому я и подумал, что я не правильно удаляю!

    Может есть какой-то другой способ, более правильный?
  6. eksetro
    Offline

    eksetro

    Регистрация:
    2 апр 2013
    Сообщения:
    19
    Симпатии:
    0
    Баллы:
    1
    Что до этой ошибки содержится в тз?
  7. TopicStarter Overlay
    НиколайН
    Offline

    НиколайН Опытный в 1С

    Регистрация:
    14 фев 2014
    Сообщения:
    246
    Симпатии:
    0
    Баллы:
    26
    Свойство и их значения. Причем если я не удаляю эту строку, то ошибка не выскакивает!
  8. eksetro
    Offline

    eksetro

    Регистрация:
    2 апр 2013
    Сообщения:
    19
    Симпатии:
    0
    Баллы:
    1
    Свойства и значения чего? документа? На тот момент в ТЗ существует строка с таким индексом?
  9. TopicStarter Overlay
    НиколайН
    Offline

    НиколайН Опытный в 1С

    Регистрация:
    14 фев 2014
    Сообщения:
    246
    Симпатии:
    0
    Баллы:
    26
    Да, свойство и значения документа. Я понял в чем ошибка, буду пробовать её исправлять.

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