Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
12 Дек 2017, 19:12
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Вырезание строк в новую таблицу  (Прочитано 1084 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн RomanCasper

  • *
  • Сообщений: 23
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-04-23
  • Сайт: 
  • Профессия: Программист 1С
Привет знатоки.

Помогите с одним вопросом, я просто не хочу накосячить.

Есть ТаблицаЗначиний ТЗ1 вида:
Адрес Паллета Количество
ADR1    P001    100
ADR1    P002    103
ADR2    P003    5
ADR2    P004    88
ADR3    P005    100
ADR4    P006    150


Во такая простенькая, теперь нужно вырезать строки в которых "Адрес" равен "ADR2" и "Адрес" равен "ADR4" вставить в таблицу ТЗ2

В иготе должно быть так:
ТЗ1
Адрес Паллета Количество
ADR1    P001    100
ADR1    P002    103
ADR3    P005    100


ТЗ2
Адрес Паллета Количество
ADR2    P003    5
ADR2    P004    88
ADR4    P006    150


Когда удаляешь строку то индексы путаются, как сделать правильно? Чтобы каждая строка была проверена, и выборка не выходила за границы массива?:dfbsdfbsdf:

Спасибо! :lol:


Оффлайн nemox

  • *
  • Сообщений: 13
  • РЕПУТАЦИЯ: 4
  • КПД: 31%
  • Регистрация: 2015-04-18
  • Сайт: 
  • Профессия: Программист 1С
Отбор = Новый Структура();

Отбор.Вставить("Адрес", "ADR2");

Отбор.Вставить("Адрес", "ADR4");

Строки = ТЗ1.НайтиСтроки(Отбор);

Для Каждого стр из строки Цикл
    НоваяСтрока = ТЗ2.Добавить();
    НоваяСтрока....
    НоваяСтрока.....
    ТЗ1.Удалить(стр);
КонецЦикла;

Оффлайн LexaK

  • *****
  • Сообщений: 1267
  • РЕПУТАЦИЯ: 347
  • КПД: 27%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
не надо ни чего удалять, у вас таблица ТЗ в каком-то виде находится в базе данных, вы ее формируете запросом,
или сразу при формировании вашей ТЗ добавьте условие по отбору нужных строк,
или используйте временную таблицу ТЗ и к ней сделайте запрос

Запрос на равенство нужным адресам (ADR2,ADR4)
Запрос.текст = "
|выбрать
|  *
|из ТЗ
|где
|  Адрес в (&Адреса)
"


и второй Запрос на НЕ равенство нужным адресам (ADR2,ADR4)
Запрос.текст = "
|выбрать
|  *
|из ТЗ
|где
|  Не Адрес в (&Адреса)
"


Выполняете эти два запроса, можно даже в одном пакете запросов, см.книгу.
получаете две таблицы одну с нужными адресами, другую с остальными адресами не вошедшими в нужные.
Помогло? - Нажми СПАСИБО!!!
                       :)

Оффлайн RomanCasper

  • *
  • Сообщений: 23
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-04-23
  • Сайт: 
  • Профессия: Программист 1С
Если я не ошщибаюсь, то ваш алгоритм будет пропускать строки после удаления. Ну в общем я сам написал. вот код:
ТаблицаДокИПол = Новый ТаблицаЗначений;
ТаблицаДокИПол.Колонки.Добавить("Адрес");
ТаблицаДокИПол.Колонки.Добавить("Паллета");
Сч = 0;
Пока Сч < ТаблицаОстатков.Количество() Цикл
Состояние("Подсчет на "+Формат(ДатаОтчета, "ДФ=""дд.ММ.гггг""")+" - обработка ячеек POL и DOK "+Сч+" из "+ТаблицаОстатков.Количество()+"");
Строка = ТаблицаОстатков[Сч];
Если (Найти(Строка.Получить(0),"POL") > 0) ИЛИ (Найти(Строка.Получить(0),"DOK") > 0) Тогда
НоваяСтрока = ТаблицаДокИПол.Добавить();
НоваяСтрока.Адрес = Строка.Адрес;
НоваяСтрока.Паллета = Строка.Паллета;
ТаблицаОстатков.Удалить(Строка);
Иначе // Благодаря этой переменной мы
  // не пропускаем строки в таблице значений
Сч = Сч + 1;
КонецЕсли;
КонецЦикла;

Данные тут другие, но думаю смысл будет понятен.
Добавлено: 12 Май 2015, 10:07

LexaK, до этого я почему-то не догадался. Спасибо)

Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Ну в общем я сам написал. вот код

Попробуйте те строки которые нужно удалить помещать в массив. В качестве примера:
МассивСтрок=ТЗ.НайтиСтроки(СтруктураОтбора);
Для Каждого ЭлемМассив ИЗ МассивСтрок Цикл
     ТЗ.УдалитьСтроку(ЭлемМассив);
КонецЦикла;



 

(Копирование строк из ТЧ документа в ТЧ другого документа в Обычном приложении)

Автор GanG031Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 1650
Последний ответ 25 Янв 2016, 19:01
от cska-fanat-kz
Рассчет НДФЛ в документе "Начисление зарплаты" при вводе строк вручную

Автор AzgerdРаздел Пользователям "1С - Предприятие 8"

Ответов: 2
Просмотров: 3428
Последний ответ 28 Янв 2013, 08:33
от Azgerd
Как добавить столбец "Номенклатура" в таблицу "Реализация товаров и услуг"

Автор ZanderBlackРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 9
Просмотров: 9843
Последний ответ 19 Ноя 2012, 11:12
от Gunner
как настроить реглам.отчетность, чтобы из расшифровок строк попадать в оборотно-сальдовые ведомости

Автор ВофисРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 5
Просмотров: 1710
Последний ответ 06 Авг 2015, 09:36
от vitasw
Вывести заголовок колонки Таблицы в УФ (Табличная часть документа) в несколько строк

Автор dv.garkinРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 297
Последний ответ 27 Окт 2017, 15:15
от dv.garkin

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
168 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
55 Сообщений
alex0402
48 Сообщений
andron81_81
42 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 359
  • Точка Скрытых: 0
  • Точка Пользователей: 7
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal