Имя: Пароль:
1C
 
Как в табличной части вывести информационную колонку?
,
0 lanc2233
 
05.01.21
21:54
УФ. В форме документа, в табличной части, для товара нужно выводить некоторую справочную информацию, которая берется из регистра сведений.
Тоесть добавить еще одну колонку. Какой самый правильный способ это организовать? Неохота для таких целей реквизит в табчасть документа добавлять.
1 evorle145
 
05.01.21
22:42
мне кажется это невозможно в принципе
2 lanc2233
 
05.01.21
22:48
(1) Можно сделать таблицу значений, заполнять при создании на сервере, и потом из нее записывать в документ в перед записью.
Но точно не охота так извращаться ради одной колонки ..
3 evorle145
 
05.01.21
23:15
(2) что то ты не то говоришь.
А как в типовых сделано?
Например в ПТУ?
Добавляем реквизит в форму Объект.Товары.ПроцентОтклоненияОтЦеныЗаказа.
Заполняем этот реквизит когда наступает нужно событие.. и все.. или как?
4 lanc2233
 
05.01.21
23:21
(3) Получается реквизит будет в базу данных добавляться. Типа денормализация, некрасиво ...
5 evorle145
 
05.01.21
23:30
(4) Шутишь? я же написал "Добавляем реквизит в форму Объект.Товары.ПроцентОтклоненияОтЦеныЗаказа" . В форму, это значит открыть форму документа, найти там вкладку реквизиты, найти там Объект, у объекта найти табличную часть Объект.Товары и добавить туда, в эту табличную часть реквизит формы, который при нужном событии у будешь заполнять как тебе надо.. Речь про реквизит формы, а не про реквизит документа..
6 evorle145
 
05.01.21
23:31
(5) ну и на форму его тоже выведешь (создашь элемент формы, путь к данным пропишешь по типу "Объект.Товары.ПроцентОтклоненияОтЦеныЗаказа"
7 lanc2233
 
05.01.21
23:34
:-) Не обращал внимания раньше, что для объекта на форме можно свои реквизиты добавлять. Думал что только в корне формы можно. Спасибо)
8 evorle145
 
05.01.21
23:36
(7) да не на чем... другое дело, на какое событие вешать алгоритм заполнения.. Тут либо в типовую конфу заглянуть надо, либо может сейчас кто-то из спецов быстрее подскажет)
9 ДедМорроз
 
06.01.21
08:22
Заполнение при чтении и не забыть его же вызвать при записи,так как при записи все добавленные колонки чистятся.
10 Fedor-1971
 
06.01.21
09:29
(9) Лучше в ПриСозданииНаСервере заполнять т.к. ПриЧтенииНаСервере не вызывается для новых документов, но, иногда, есть надобность, например, заполнить список выбора у поля ТЧ из РС
ПередЗаписьюНаСервере - сохраняешь данные из добавленной колонки (это если очень нужно)
ПослеЗаписиНаСервере - повторить заполнение твоих колонок, т.к. очистятся

и ОбработкаОповещения или ОбработкаВыбора - если нужно перезаполнить данную форму по внешнему событию, например, добавили новую запись в твой РС или изменили старую. Только учти, что между разными сеансами Оповещение не работает, т.е. поменял один пользователь, а другому нужно переоткрыть форму, что-бы увидеть изменения (как вариант решения - добавляешь кнопку ОбновитьКолонку, тогда без повторного открытия формы можно подтянуть нужную информацию)
11 ДедМорроз
 
06.01.21
10:14
Если мы делаем в дополнительной колонке отображение быстро меняющейся информации,то придется ещё и обновление отображения вызывать.
Опять же,заполнять приходится данные для всех строк,а не только видимых.
Ну и,как бы,динамический список тоже изменения в другом сеансе не видит.
12 ДенисЧ
 
06.01.21
10:15
(11) "динамический список тоже изменения в другом сеансе не видит"

Это как????? Он читает данные из БД. Если другой сеанс записал информацию, то ДС её увидит. Только ему надо сказать о том, что он должен туда посмотреть.
13 fisher
 
06.01.21
10:42
(10) В типовых подобный код принято вызывать из ПриЧтенииНаСервере, а именно для новых объектов - из ПриСозданииНаСервере.
Как я понял, для каких-то экзотических случаев когда в уже открытой форме нажимают "Перечитать". Может и еще для каких-то...