Очищаются значения в колонках табличной части при записи. УТ 11.4

1. Az18011993 05.10.21 07:49 Сейчас в теме
Доброе утро,уважаемые форумчане!
Столкнулся с проблемой, добавил на форму документа ЗаказКлиента две колонки в табличную часть Товары. Заполняю значения в колонках и при записи документа значения в колонках очищаются,в чем может быть причина?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. EVKash 15 05.10.21 08:01 Сейчас в теме
(1) Реквизиты формы - это не реквизиты объекта и в БД они не запишутся.
FatPanzer; +1 Ответить
3. Az18011993 05.10.21 08:04 Сейчас в теме
(2)Так колонки добавлены в табличную часть объекта,просто выведены на форму)Наверное не так выразился.
6. spacecraft 05.10.21 08:44 Сейчас в теме
(3) давайте все же определимся с терминологией. Как и где добавили "колонки"? Подозреваю, что на форме добавили в окне Реквизиты как колонку реквизита табличной части. Это именно реквизит формы и он не будет сохраняться в базу. Для сохранения в базу нужно добавлять в дереве метаданных как Реквизит табличной части.
FatPanzer; +1 Ответить
4. Az18011993 05.10.21 08:05 Сейчас в теме
(2)У меня они уже после нажатия кнопки записать,затираются,даже не после закрытия.
7. FatPanzer 05.10.21 09:03 Сейчас в теме
(4) Конечно, потому что рассчитываются один раз при создании формы. А после запись (при чтении объекта) - не пересчитываются.
Ну а про невозможность записи в БД - уже все высказались.
8. -AI- 05.10.21 09:20 Сейчас в теме
(4) во время записи, содержимое объекта может измениться
(в обработчиках ПередЗаписью в модуле объекта или на форме)

соответственно, платформа после перезаписи перечитывает Объект, затирая "привязанные" реквизиты.

пример из УТ11:

Форма Документа, ЗаказКлиента, в обработчике события ПриЧтенииНаСервере() есть запуск процедуры ЗаполнитьЦенаТовара()
т.к. Цена не хранится в базе, а рассчитывается на основании Суммы и Количества

соответственно, в обработчике ПослеЗаписиНаСервере() снова запускается ЗаполнитьЦенаТовара(), т.к. Цена - это реквизит формы и было обнулено.
victorree; +1 Ответить
10. FatPanzer 05.10.21 10:43 Сейчас в теме
(8)
в обработчике ПослеЗаписиНаСервере() снова запускается ЗаполнитьЦенаТовара()
Бесполезная трата времени. А если форма записывается с одновременным закрытием? То мы получается тратим время на никому не нужный пересчет цен?
Пересчет надо запускать ПриЧтенииНаСервере(). Тогда он будет работать автоматически и при открытии формы и по кнопке "Записать". А по кнопке "Записать и закрыть" - работать не будет (ибо незачем).
11. spacecraft 05.10.21 10:52 Сейчас в теме
(10)
Бесполезная трата времени. А если форма записывается с одновременным закрытием? То мы получается тратим время на никому не нужный пересчет цен?

Нет. Там все правильно используется ПослеЗаписиНаСервере(). Это обработчик формы. "А если форма записывается с одновременным закрытием", то и не вызывается.


Пересчет надо запускать ПриЧтенииНаСервере(). Тогда он будет работать автоматически и при открытии формы и по кнопке "Записать".

А вот этот обработчик как раз наоборот, не будет работать по кнопке "Записать".
5. yurikmellon 6 05.10.21 08:25 Сейчас в теме
продам отладчик. Дорого.
KonecEsli; +1 Ответить
9. Dem0 05.10.21 10:09 Сейчас в теме
Вы добавляли новые реквизиты в табличную часть в дереве метаданных (слева).
Если нет - тогда какого члена им записываться в базу =)
Оставьте свое сообщение

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