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

1. Andq 14.10.22 10:45 Сейчас в теме
Добрый день! ERP. Пытаюсь свернуть строки ТЧ в поступлении.

&НаСервере
Процедура тч_ОбъединитьПослеНаСервере()

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

КонецПроцедуры

&НаКлиенте
Процедура тч_ОбъединитьПосле(Команда)
	тч_ОбъединитьПослеНаСервере();
КонецПроцедуры
Показать


По номенклатуре, сумме, количеству строки свертываются, но ошибка: "Обнаружено нулевое количество при пересчете в единицу хранения в строке 1 списка "Товары".

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

Ну и характеристики вообще не свертываются.
По теме из базы знаний
Найденные решения
13. Zevzm 18.10.22 23:30 Сейчас в теме
Добавьте РеквизитФормыВЗначение и обратное преобразование ЗначениеВРеквизитФормы. Вот эта процедура в модуле формы документа свернула строки ТЧ.Товары:

&НаСервере
Процедура СвернутьТЧНаСервере(ИмяТабличнойЧасти)
	ИзмеренияТаблицы = Новый Массив;
    РесурсыТаблицы   = Новый Массив;
    ДокОбъект = РеквизитФормыВЗначение("Объект");
    КолонкиТабличнойЧасти = ДокОбъект.Метаданные().ТабличныеЧасти[ИмяТабличнойЧасти].Реквизиты;
    Для Каждого МетаданныеКолонки Из КолонкиТабличнойЧасти Цикл
        Если МетаданныеКолонки.Тип.СодержитТип(Тип("Число")) Тогда
            РесурсыТаблицы.Добавить(МетаданныеКолонки.Имя);
        Иначе
            ИзмеренияТаблицы.Добавить(МетаданныеКолонки.Имя);
        КонецЕсли;
    КонецЦикла;
    
    ДокОбъект[ИмяТабличнойЧасти].Свернуть(
        СтрСоединить(ИзмеренияТаблицы, ","), 
        СтрСоединить(РесурсыТаблицы, ","));
   ЗначениеВРеквизитФормы(ДокОбъект, "Объект");
КонецПроцедуры
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user1826630 14.10.22 10:47 Сейчас в теме
(1)
Понимаю, что видимо, дело упаковках и единицах хрнанения, но что с этим делать не понимаю.
Например, сворачивать и по ним тоже.
3. VictorRGB2 13 14.10.22 11:17 Сейчас в теме
(1) а как вы себе представляете процесс сворачивания, например, штук и коробок в единицах или красного и желтого в характеристиках?
ну и кроме того, раз единица измерения отсутствует в списках сворачивания или суммирования, то система вам ее очистила, в результате чего и возникает ошибка

свернуть можно только похожее полностью
приведите строки к единому виду по тем же единицам измерения, добавьте в списки сворачивания единицу и все свернется без ошибок
4. Andq 14.10.22 12:40 Сейчас в теме
Для теста я разделил строку и попробовал свернуть назад, группирую по:
"Номенклатура,Характеристика,Упаковка,Цена,СтавкаНДС,Склад,Подразделение"

Суммирую по
"КоличествоУпаковок,Сумма"


То же самое. Если добавить в группировку "ЕдиницаИзмерения" - ошибка "неверное имя колонки"
5. tamidi 8 14.10.22 13:38 Сейчас в теме
(4)Если у вас ERP, то там не ЕдиницаИзмерения, а Упаковка.
Перед тем как группировать посмотрите какие еще есть заполненные реквизиты и по всем группируйте, суммируйте, иначе ошибки так и будут
6. Zevzm 14.10.22 13:48 Сейчас в теме
(4) Попробуйте свернуть так, как описано здесь, списки колонки сформируются по типам:

https://fastcode.im/Templates/7421/svernut-tablichnuyu-chast
7. Zevzm 14.10.22 13:50 Сейчас в теме
(4)Табличная часть сама имеет метод Свернуть(). В справке также написано: "Важно! Оба списка колонок должны покрывать всю табличную часть. Списки колонок не должны пересекаться."
8. гаврюша 2 14.10.22 15:51 Сейчас в теме
В ERP "КоличествоУпаковок"? "Количество" нет реквизита? И при сворачивании, необходимо учитывать ЕдиницуИзмерения.
9. гаврюша 2 14.10.22 15:53 Сейчас в теме
Также проверьте количество * коэффициент единицы хранения остатков в 0 не уходит?
При проведении документа, в регистры записывается количество в единицах хранения остатков.
10. Andq 18.10.22 12:35 Сейчас в теме
(7)Скажите рожалуйста, что значит "Оба списка колонок должны покрывать всю табличную часть"? Нужно обязательно использовать все колонки? Как тогда быть с номером строки, кодом строки?

Перепробовал все варианты, пробовал в документе ДвижениеПродукцииИМатериалов, группировал по
ТипНоменклатуры,Код,Артикул,Номенклатура,Характеристика,СтатусУказанияСерий,Назначение,Упаковка,Цена,Распоряжение,ГруппаПродукции,Серия
суммировал по
Сумма,КоличествоУпаковок
- то же самое.
11. Zevzm 18.10.22 12:42 Сейчас в теме
(10) Номер строки доступен только для чтения и уникален для всех строк, его не нужно использовать при свертке. Пробовали воспользоваться процедурой из ссылки в (6), в отладчике посмотреть списки измерений и ресурсов?
12. Andq 18.10.22 13:29 Сейчас в теме
(11)
&НаСервере
Процедура СвернутьТабличнуюЧасть(Объект, ИмяТабличнойЧасти) Экспорт
	
	ИзмеренияТаблицы = Новый Массив;
	РесурсыТаблицы   = Новый Массив;
	
	КолонкиТабличнойЧасти = Объект.Метаданные().ТабличныеЧасти[ИмяТабличнойЧасти].Реквизиты;
	Для Каждого МетаданныеКолонки Из КолонкиТабличнойЧасти Цикл
		Если МетаданныеКолонки.Тип.СодержитТип(Тип("Число")) Тогда
			РесурсыТаблицы.Добавить(МетаданныеКолонки.Имя);
		Иначе
			ИзмеренияТаблицы.Добавить(МетаданныеКолонки.Имя);
		КонецЕсли;
	КонецЦикла;
	
	Объект[ИмяТабличнойЧасти].Свернуть(
		СтрСоединить(ИзмеренияТаблицы, ","), 
		СтрСоединить(РесурсыТаблицы, ",")
	);
	
КонецПроцедуры

&НаКлиенте
Процедура Andq_Свернуть2После(Команда)
	СвернутьТабличнуюЧасть(Объект,"Товары");
КонецПроцедуры
Показать

Метод объекта не обнаружен (Метаданные)
13. Zevzm 18.10.22 23:30 Сейчас в теме
Добавьте РеквизитФормыВЗначение и обратное преобразование ЗначениеВРеквизитФормы. Вот эта процедура в модуле формы документа свернула строки ТЧ.Товары:

&НаСервере
Процедура СвернутьТЧНаСервере(ИмяТабличнойЧасти)
	ИзмеренияТаблицы = Новый Массив;
    РесурсыТаблицы   = Новый Массив;
    ДокОбъект = РеквизитФормыВЗначение("Объект");
    КолонкиТабличнойЧасти = ДокОбъект.Метаданные().ТабличныеЧасти[ИмяТабличнойЧасти].Реквизиты;
    Для Каждого МетаданныеКолонки Из КолонкиТабличнойЧасти Цикл
        Если МетаданныеКолонки.Тип.СодержитТип(Тип("Число")) Тогда
            РесурсыТаблицы.Добавить(МетаданныеКолонки.Имя);
        Иначе
            ИзмеренияТаблицы.Добавить(МетаданныеКолонки.Имя);
        КонецЕсли;
    КонецЦикла;
    
    ДокОбъект[ИмяТабличнойЧасти].Свернуть(
        СтрСоединить(ИзмеренияТаблицы, ","), 
        СтрСоединить(РесурсыТаблицы, ","));
   ЗначениеВРеквизитФормы(ДокОбъект, "Объект");
КонецПроцедуры
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот