Имя: Пароль:
1C
 
Передача табличной части дока в процедуру
0 Kongo2019
 
31.03.20
08:37
Доброго. Засел тут вроде над простой задачей.
Необходим для некоторых доков из  Процедура ОбработкаПроведения(Модуль объекта) передать в процедуру в общем модуле часть табличной части.
Тут так и просится таблица Значений. Но если тупо выгрузить табличную часть, то название колонок будет как название реквизитов в табличной части, а они каждого дока разные, не говоря. Формировать свою Таблицу Значений, это надо каждом доке написать создание самой Таблицы Значения, и описание Колонок, плюс выгрузка.
Может есть кого более изящное решение?
1 dka80
 
31.03.20
09:22
Передаешь в процедуру таблицу значений и тип документа. В процедуре, в зависимости от типа документа формируешь фиксированную таблицу значений с известными колонками и уже ее обрабатываешь
2 Kongo2019
 
31.03.20
09:24
(1) Те же яйца виде сбоку. Либо я рисую нужную ТЗ сразу в доке, либо я рисую нужную ТЗ в своей процедуре.
В общем другого варианта походу нет.
3 RomanYS
 
31.03.20
09:25
(1) +1
Можно саму даже ТЧ передать и описание соответствия колонок в структуре
4 dka80
 
31.03.20
09:26
(2) те же, да не те же. Так тебе нужно каждый документ править и при обновлении это учитывать, а так ты в одном месте делаешь
5 Kongo2019
 
31.03.20
09:31
Да можно вообще тогда не заморачиватся, и тупо ссылку на объект передать. А уже в моей процедуре его разобрать как мне надо.
6 fisher
 
31.03.20
09:31
Да, в каждом доке выгружать в ТЗ, приводить ее к унифицированному виду (колонки переименовать несложно) и передавать в общий модуль. Как по мне, тут даже думать нечего. Ничего изящнее тут не придумать.
7 fisher
 
31.03.20
09:35
(5) Вот ненавижу такой подход. Когда вместо универсальных блоков и обработки не универсального кода "по месту", вызывается якобы общий код в котором стопицот заплаток на все случаи жизни. Дорабатывать такое очень тяжело, потому что очень тяжело отслеживать зависимости. Когда у тебя 20 псевдоуниверсальных вызовов, в каждом из которых возможно придется новые заплатки тулить.
8 Kongo2019
 
31.03.20
09:46
(7) Тож вот не люблю такое.
9 mistеr
 
31.03.20
09:57
(4) С другой стороны, когда меняется док, нужно не забыть поправить "в одном месте". А в самом доке на это никакого намека нет.
10 dka80
 
31.03.20
10:01
(9) Куча общих модулей с постфиксом Переопределяемый в типовых конфигурациях как бы намекает, что можно изменить стандартное поведение нескольких объектов в одном месте.
Но на вкус и цвет... Если вам так удобнее.
11 fisher
 
31.03.20
10:16
(10) В "глубоких" фреймворках это неизбежное зло. Когда у тебя есть большая штука, которая очень много работы делает за тебя (много "магии"), то влиять на эту большую штуку ты можешь только через предусмотренные точки входа. Это ключевая разница между библиотекой и фреймворком. Когда уже не "ты вызываешь", а "тебя вызывают". И это большая цена, за которую многие не любят "глубокие" фреймворки. Потому что когда что-то идет не так, то разобраться может быть очень непросто. И даже там стараются это минимизировать и упростить. А по доброй воле и без особой причины раскладывать себе эти грабли - это мазохизм.
2 + 2 = 3.9999999999999999999999999999999...