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

Изменение ТЧ во внешней обработке

Автор BruceWayne007, 28 янв 2025, 10:55

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

BruceWayne007

Есть внешняя обработка вида ЗаполнениеОбъекта. Необходимо в ТЧ документа округлять количество номенклатуры до кратного упаковке. Какие варианты реализации есть? Думал сворачивать таблицу по номенклатуре и количеству и затем применять округление. Что необходимо учесть еще? Хотя метод Свернуть не найден) Значит надо как-то иначе делать. Кто знает?

BruceWayne007

BruceWayne007, Так, а недоступно потому что он на клиенте недоступен) то есть по идее мне надо в серверной процедуре сначала выгрузить свою ТЧ, затем свернуть ее и обратно загрузить в ТЧ?

antoneus


BruceWayne007

antoneus, не до конца понимаю. На клиенте мы обращаемся к данным документа через ВладелецФормы, так? а на сервере? до меня был написан код для отладки, где через навигационную ссылку получали ссылку на данный документ(Объект.ссылкаДляОтладки).

И получается я создал функцию, в результате ошибка отображения типов

Функция ВернутьСвернутуюЧастьТЧДокумента()
ОбъектДокумента = Объект.СсылкаДляОтладки.ПолучитьОбъект();

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

КонецФункции

antoneus

Нет, ну прямо сразу в объект лезть-то не надо. Во владельце формы форма документа сидит?

Максим75

BruceWayne007, приведите весь модуль формы обработки (не модуль объекта)

BruceWayne007

antoneus, насколько я понимаю, да

Максим75

BruceWayne007, обычно ВладелецФормы.Объект.Ссылка - это и есть ссылка в таких обработках.

BruceWayne007

Максим75, ну по сути это почти весь модуль формы. Главная процедура это

Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт


ВладелецФормы.Объект.Товары = ВернутьСвернутуюТЧДокумента();

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

Функция ВернутьСвернутуюЧастьТЧДокумента()
ОбъектДокумента = Объект.СсылкаДляОтладки.ПолучитьОбъект();

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

КонецФункции

Но наверное не очень удачная идея. Я же выгружал только три колонки и потом загружаю только три. Сейчас пока писал мысль пришла, что это не очень хорошо, колонок то больше, чем три в доке

BruceWayne007

Максим75, да, я тоже такой вывод сделал) но это только на клиенте. а если процедура на сервере?

Теги:

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

Рейтинг@Mail.ru

Поиск