Очищаются значения в колонках табличной части при записи. УТ 11.4
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(3) давайте все же определимся с терминологией. Как и где добавили "колонки"? Подозреваю, что на форме добавили в окне Реквизиты как колонку реквизита табличной части. Это именно реквизит формы и он не будет сохраняться в базу. Для сохранения в базу нужно добавлять в дереве метаданных как Реквизит табличной части.
(4) во время записи, содержимое объекта может измениться
(в обработчиках ПередЗаписью в модуле объекта или на форме)
соответственно, платформа после перезаписи перечитывает Объект, затирая "привязанные" реквизиты.
пример из УТ11:
Форма Документа, ЗаказКлиента, в обработчике события ПриЧтенииНаСервере() есть запуск процедуры ЗаполнитьЦенаТовара()
т.к. Цена не хранится в базе, а рассчитывается на основании Суммы и Количества
соответственно, в обработчике ПослеЗаписиНаСервере() снова запускается ЗаполнитьЦенаТовара(), т.к. Цена - это реквизит формы и было обнулено.
(в обработчиках ПередЗаписью в модуле объекта или на форме)
соответственно, платформа после перезаписи перечитывает Объект, затирая "привязанные" реквизиты.
пример из УТ11:
Форма Документа, ЗаказКлиента, в обработчике события ПриЧтенииНаСервере() есть запуск процедуры ЗаполнитьЦенаТовара()
т.к. Цена не хранится в базе, а рассчитывается на основании Суммы и Количества
соответственно, в обработчике ПослеЗаписиНаСервере() снова запускается ЗаполнитьЦенаТовара(), т.к. Цена - это реквизит формы и было обнулено.
(8)
Пересчет надо запускать ПриЧтенииНаСервере(). Тогда он будет работать автоматически и при открытии формы и по кнопке "Записать". А по кнопке "Записать и закрыть" - работать не будет (ибо незачем).
в обработчике ПослеЗаписиНаСервере() снова запускается ЗаполнитьЦенаТовара()
Бесполезная трата времени. А если форма записывается с одновременным закрытием? То мы получается тратим время на никому не нужный пересчет цен?
Пересчет надо запускать ПриЧтенииНаСервере(). Тогда он будет работать автоматически и при открытии формы и по кнопке "Записать". А по кнопке "Записать и закрыть" - работать не будет (ибо незачем).
(10)
Нет. Там все правильно используется ПослеЗаписиНаСервере(). Это обработчик формы. "А если форма записывается с одновременным закрытием", то и не вызывается.
А вот этот обработчик как раз наоборот, не будет работать по кнопке "Записать".
Бесполезная трата времени. А если форма записывается с одновременным закрытием? То мы получается тратим время на никому не нужный пересчет цен?
Нет. Там все правильно используется ПослеЗаписиНаСервере(). Это обработчик формы. "А если форма записывается с одновременным закрытием", то и не вызывается.
Пересчет надо запускать ПриЧтенииНаСервере(). Тогда он будет работать автоматически и при открытии формы и по кнопке "Записать".
А вот этот обработчик как раз наоборот, не будет работать по кнопке "Записать".
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот