Доп.колонки в ТаблицеЗначений Документа

1. shatshat 22.02.12 18:44 Сейчас в теме
Коротко о сути: при записи документа значения дополнительных колонок табличной части документа "слетают". Это баг, фича или я неправильно курил мануал?

в ТЧ документа - список сотрудников с суммами. возникла необходимость видеть статус сотрудника на дату документа (уволенных выделять цветом). раньше статус был "полноценным" реквизитом ТЧ, заполняемым при создании документа. IMHO, не очень правильно - статус мог быть изменен "задним числом", сам документ может быть передвинут по времени вперед от даты создания...
Воспользовался дополнительными реквизитами табличной части (расчетными)

&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
    Для Каждого ТекСтрока из Объект.ТабличнаяЧасть Цикл
		
		Состояния=СостоянияСотрудника(ТекСтрока.Сотрудник);
		ТекСтрока.ОбходнойЛист=Состояния.ОбходнойЛист;
		ТекСтрока.СостояниеСотрудника=Состояния.СостояниеСотрудника;
		ТекСтрока.Должность=Состояния.должность;
		
    КонецЦикла;
КонецПроцедуры
Показать

СостоянияСотрудника(Сотрудник) - обращение к периодическому регистру сведений

Пользоваться для расчетных значений доп.реквизитами удобно - не надо хранить лишнюю (расчетную) инфу плюс оперативность значений. На топик меня сподвигло не это. Обнаружил интересную фичу
После выполнения записи документа все сотрудники "краснеют" (значения доп.реквизитов обнуляются)

Добавил
&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
	ПриЧтенииНаСервере(ТекущийОбъект);
КонецПроцедуры


помогло
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. sergathome 4 22.02.12 19:03 Сейчас в теме
Скорее всего это связано с кретинической (имхо) фичей 8.2 - данные формы существуют только в одном сеансе. Очевидно вызов ПриЧтенииНаСервере(ТекущийОбъект) продлевает сеанс... а скорее всего вообще переносят данные в новый. Надо будет попробовать переменные формы так погонять - интересно !
ЗЫ Птьфу, да тут тупо пересчитываются данные после закрытия сеанса. Бгы. Мозх под вечер спёкся. Расчётные колонки - суть переменные формы - уничтожаются на сервере всякий раз при закрытии сеанса. Сеанс, как правило, это одна процедура. При выходе из неё - опаньки. 1С считает это фичей. А я считаю это багом, ибо переменная формы, объявленная на сервере и установленная при инициализации формы, прямо из модуля, своё значение сохраняет !
3. shatshat 23.02.12 08:13 Сейчас в теме
(2) sergathome,

не совсем понял, о закрытии какого "сеанса" идет речь. документ записывается без закрытия формы.
суть в следующем
реквизиты формы сохраняют значение (установленные программно), а вот реквизиты-колонки ТЧ - "теряют" значения. просто придется иметь ввиду )
4. sergathome 4 23.02.12 11:35 Сейчас в теме
Если колонка не является реквизитом объекта, то её значение будет потеряно сразу, как завершится обработка текущей серверной функции. Вас вводит в заблуждение сохранение значений переменных клиентской стороны. Мне где-то на техфоруме 1С попадалось разъяснение на эту тему.
ЗЫ в 15 релизе в хелпе вообще написано, что переменные форм больше не поддерживаются.
Оставьте свое сообщение

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