|
Как вывести расчетное значение в поле ТаблицеФормы (аналогично ПриВыводеСтроки)? | ☑ | ||
---|---|---|---|---|
0
Электроник2
22.12.22
✎
13:07
|
Здравствуйте. Есть управляемая форма документа с табличной частью (ТаблицаФормы). В таб. части есть два реквизита Сумма1 и Сумма2, на форме размещен только Сумма1. Как в таблице в ячейках колонки Сумма1 вывести, например, сумму "Сумма1+Сумма2"? Т.е. не статичный текст, а расчетный показатель, которого нет в таб. части документа.
|
|||
1
denk
22.12.22
✎
16:36
|
1. В реквизитах формы добавляем реквизит: Объект.ТабЧасть.РасчетноеПоле. 2. Выводим добавленный реквизит на форму. 3. В модуль формы добавляем серверную процедуру заполнения добавленного реквизита. 4. Добавляем вызов процедуры заполнения в обработчики модуля формы: ПриЧтенииНаСервере(), ПослеЗаписиНаСервере(), ПриОткрытии().
|
|||
2
Электроник2
23.12.22
✎
15:50
|
(1) Пробовал так делать. Но при вызове серверных контекстных процедур это поле, естественно, очищается (при вызове ЗначениеВРеквизитФормы()). И ладно бы оно очищалось при событиях только ТаблицыФормы. Но еще и при событиях реквизитов шапки документа, например, при изменении Организации, при котором напрямую не меняется табличная часть.
|
|||
3
ass1c
23.12.22
✎
16:54
|
(2) не понятно почему "процедур это поле, естественно, очищается". Покажи процедуру заполнения этого реквизита и + к примеру код изменения организации
|
|||
4
unenu
23.12.22
✎
17:01
|
(3) в ЗУПЕ форма списка ШтатноеРасписание
&НаСервереБезКонтекста Процедура СписокПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки) Если Строки.Количество() = 0 Тогда Возврат; КонецЕсли; УстановитьПривилегированныйРежим(Истина); ДанныеСтроки = Строки[Строки.ПолучитьКлючи()[0]].Данные; Если Не (ДанныеСтроки.Свойство("СтавокЗанято") Или ДанныеСтроки.Свойство("СтавокСвободно")) Тогда Возврат; КонецЕсли; Запрос = Новый Запрос; Запрос.УстановитьПараметр("ПозицииКОбновлению", ОбщегоНазначения.ВыгрузитьКолонку(Строки.ПолучитьКлючи(), "Ссылка")); Запрос.УстановитьПараметр("ДатаОстатков", Настройки.ПараметрыДанных.Элементы.Найти("ДатаОстатков").Значение); Запрос.Текст = "ВЫБРАТЬ | ЗанятостьПозицийШтатногоРасписанияИнтервальный.ПозицияШтатногоРасписания КАК ПозицияШтатногоРасписания, | СУММА(ЗанятостьПозицийШтатногоРасписанияИнтервальный.КоличествоСтавок) КАК КоличествоСтавок |ИЗ | РегистрСведений.ЗанятостьПозицийШтатногоРасписанияИнтервальный КАК ЗанятостьПозицийШтатногоРасписанияИнтервальный |ГДЕ | ЗанятостьПозицийШтатногоРасписанияИнтервальный.ПозицияШтатногоРасписания В(&ПозицииКОбновлению) | И НЕ ЗанятостьПозицийШтатногоРасписанияИнтервальный.ВидЗанятостиПозиции В (ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиПозицийШтатногоРасписания.ПустаяСсылка), ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиПозицийШтатногоРасписания.Свободна)) | И &ДатаОстатков МЕЖДУ ЗанятостьПозицийШтатногоРасписанияИнтервальный.ДатаНачала И ЗанятостьПозицийШтатногоРасписанияИнтервальный.ДатаОкончания | |СГРУППИРОВАТЬ ПО | ЗанятостьПозицийШтатногоРасписанияИнтервальный.ПозицияШтатногоРасписания"; Данные = Запрос.Выполнить().Выгрузить(); Данные.Индексы.Добавить("ПозицияШтатногоРасписания"); Для Каждого КлючЗначение Из Строки Цикл СтавокЗанято = 0; ДанныеПозиции = Данные.Найти(КлючЗначение.Ключ.Ссылка, "ПозицияШтатногоРасписания"); Если ДанныеПозиции <> Неопределено Тогда СтавокЗанято = ДанныеПозиции.КоличествоСтавок; КонецЕсли; Если ДанныеСтроки.Свойство("СтавокЗанято") Тогда КлючЗначение.Значение.Данные["СтавокЗанято"] = СтавокЗанято; КонецЕсли; Если ДанныеСтроки.Свойство("СтавокСвободно") Тогда КлючЗначение.Значение.Данные["СтавокСвободно"] = КлючЗначение.Значение.Данные["КоличествоСтавок"] - СтавокЗанято; КонецЕсли; КонецЦикла; УстановитьПривилегированныйРежим(Ложь); КонецПроцедуры |
|||
5
Электроник2
26.12.22
✎
10:31
|
(3) Пример. Есть форма документа "Реализация товаров и услуг", на ней поле Организация и табличная часть Товары. В ТЧ товары я добавил реквизит ОбщаяСумма и заполнил его при открытии/создании формы. При изменении организации выполняется код:
И на форме таких реквизитов много, которые передают управление на сервер для манипуляций с объектом. |
|||
6
Электроник2
26.12.22
✎
10:32
|
(4) События ПриПолученииДанныхНаСервере нет у Таблицы упр. формы.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |