Версия для печати темы (https://pro1c.org.ua/index.php?s=2969d16efb8d8ab9dd7ce138e854aff9&showtopic=18481)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.1 (8.0) _ Удаление строк в таблице по условиям

Автор: llirik_87 24.06.14, 10:01

Здравствуйте!
Ситуация такая:
У меня 1С 8.1. Есть таблица ТАБ1, являющаяся результатом выборки:

Наименование    Артикул    Оригинал
Стол                     А1            А111
Стол                     А1            Нет
Стол                     А1            Нет
Кровать                К5            К321
Полка                   П4            Нет


Мне нужно из нее поудалять стоки по условиям:
1) если в строке в колонке Оригинал НЕ стоит "Нет" , то удалить эту строку
2) если в есть строки в которых одиноковы значения в колонках Наименование и Артикул и хотябы в одной из них в колонке Оригинал НЕ стоит "Нет" , то удалить все эти строи

Т.е. в итоге нужно чтоб получилась таблица:

Наименование    Артикул     Оригинал
Полка                    П4            Нет

Как это можно сделать?

Автор: sava1 24.06.14, 11:01

Проще всего в запросе

Автор: ignsv 24.06.14, 18:41

както так:

ВЫБРАТЬ
    "Стол" КАК Наименование,
    "А1" КАК Артикул,
    "А111" КАК Оригинал
ПОМЕСТИТЬ СписокНом

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    "Стол",
    "А1",
    "НЕТ"

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    "Стол",
    "А1",
    "НЕТ"

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    "Кровать",
    "К5",
    "К321"

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    "Полка",
    "П4",
    "НЕТ"
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    СписокНом.Наименование,
    СписокНом.Артикул,
    СписокНом.Оригинал КАК Оригинал,
    КОЛИЧЕСТВО(СписокНом.Артикул) КАК АртикулКолво,
    КОЛИЧЕСТВО(СписокНом.Оригинал) КАК ОригиналКолво
ПОМЕСТИТЬ ПромежуточныеРасчеты
ИЗ
    СписокНом КАК СписокНом

СГРУППИРОВАТЬ ПО
    СписокНом.Наименование,
    СписокНом.Артикул,
    СписокНом.Оригинал
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ПромежуточныеРасчеты.Наименование,
    ПромежуточныеРасчеты.Артикул,
    ПромежуточныеРасчеты.Оригинал
ИЗ
    ПромежуточныеРасчеты КАК ПромежуточныеРасчеты
ГДЕ
    ПромежуточныеРасчеты.АртикулКолво = 1
    И ПромежуточныеРасчеты.ОригиналКолво = 1
    И ПромежуточныеРасчеты.Оригинал = "НЕТ"

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua