Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
21 сен 2021, 18:11

Объединение строк в одну в табличной части

Автор Серёжа Сухинин, 11 дек 2016, 22:45

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

Серёжа Сухинин

Доброго времени суток,
Нужно что бы если в табличной части присутствуют несколько одинаковых записей(товары),сделать одну и сложить их колличесто

СтрокаТабличнойЧасти=Элементы.ТабличнаяЧасть1.ТекущиеДанные;
    Реквезит = ПолучитьЗначениеРеквизитаНаСервере(Объект.НомерПрихода,"Товар");
    Количество = ПолучитьЗначениеРеквизитаНаСервере(Объект.НомерПрихода,"Количество");

Для  Каждого Стр из объект.ТабличнаяЧасть1 цикл               // получаем в цикле строки табличной части                     
    Если  Реквезит = Стр.Нименование    Тогда       
                       //СтрокаТабличнойЧасти.Нименование = Реквезит;
                                      СтрокаТабличнойЧасти.Количество = 0;
                                    СтрокаТабличнойЧасти.Количество=Число(Стр.Количество)+Число(Количество);
               
                    //объект.ТабличнаяЧасть1.Удалить(Стр);
                               
                 Иначе Если Реквезит <> Стр.Нименование   Тогда
                    СтрокаТабличнойЧасти.Нименование = Реквезит;
                  СтрокаТабличнойЧасти.Количество = Количество;
                  Прервать;
              КонецЕсли;
              КонецЕсли;
              КонецЦикла;



по какой - то причине


Если  Реквезит = Стр.Нименование    Тогда
это условие проскакивает, хотя значения равны, кто подскажет как решить проблему?

LexaK

:D да-а-а, с таким подходом вы ни когда на научитесь программировать на 1С
задача решается в 3 команды

&НаСервере
Процедура СвернутьТЧ()
    лкТЧ = Объект.ТабличнаяЧасть1.Выгрузить();
    лкТЧ.Свернуть("Номенклатура","Количество");
    Объект.ТабличнаяЧасть1.Загрузить(лкТЧ);
КонецПроцедуры;
ответ Понравился? (в смысле пригодился?)

Серёжа Сухинин

Цитата: LexaK от 12 дек 2016, 08:28лкТЧ = Объект.ТабличнаяЧасть1.Выгрузить();

почему то вообще перестал доюовлять, не чего не происходит

LexaK

повесьте эту процедуру на кнопку СвернутьТЧ (сделайте команду, поместите на форму) или вызывайте в событии перед закрытием формы!
ответ Понравился? (в смысле пригодился?)

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск