Добавляем остаток в перемещение запасов УНФ 3.0.
В обработчике ПриСозданииНаСервере создаем реквизит и элемент формы
&НаСервере
Процедура ЕГ_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
// 1. Создаём массив новых реквизитов
ДобавляемыеРеквизиты = Новый Массив;
// 2. Создаём реквизит "Остаток" как дочерний для табличной части "Запасы"
Реквизит_Остаток = Новый РеквизитФормы(
"Остаток", // Имя реквизита
Новый ОписаниеТипов("Число"), // Тип данных (может быть и другой)
"Объект.Запасы", // Родитель – табличная часть
"Остаток" // Заголовок (необязательно)
);
ДобавляемыеРеквизиты.Добавить(Реквизит_Остаток);
// 3. Регистрируем новые реквизиты в форме (ОБЯЗАТЕЛЬНО!)
ИзменитьРеквизиты(ДобавляемыеРеквизиты);
// 4. Теперь можно создать элемент управления и указать путь
НовыйЭлемент = Элементы.Добавить("ЗапасыОстаток", Тип("ПолеФормы"), Элементы.Запасы);
НовыйЭлемент.ПутьКДанным = "Объект.Запасы.Остаток"; // путь совпадает с добавленным реквизитом
НовыйЭлемент.Вид = ВидПоляФормы.ПолеНадписи;
//НовыйЭлемент
КонецПроцедуры
Далее в Обработчике ЗапасыНоменклатураПриИзменении заполняем остаток:
&НаСервере
Функция ЕГ_ЗапасыНоменклатураПриИзмененииПослеНаСервере(Номенклатура, СтруктурнаяЕдиница)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗапасыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток
|ИЗ
| РегистрНакопления.ЗапасыНаСкладах.Остатки(
| &ДатаДок,
| Номенклатура = &Номенклатура
| И СтруктурнаяЕдиница = &СтруктурнаяЕдиница) КАК ЗапасыНаСкладахОстатки";
Запрос.УстановитьПараметр("ДатаДок", ?(Параметры.Ключ.Пустая(), ТекущаяДата(), Объект.Дата));
Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
Запрос.УстановитьПараметр("СтруктурнаяЕдиница", СтруктурнаяЕдиница);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Возврат ВыборкаДетальныеЗаписи.КоличествоОстаток;
КонецЦикла;
Возврат 0;
КонецФункции
&НаКлиенте
Процедура ЕГ_ЗапасыНоменклатураПриИзмененииПосле(Элемент)
ТекДанные = Элементы.Запасы.ТекущиеДанные;
ТекДанные.Остаток = ЕГ_ЗапасыНоменклатураПриИзмененииПослеНаСервере(ТекДанные.Номенклатура, Объект.СтруктурнаяЕдиница);
КонецПроцедуры
Проверено на следующих конфигурациях и релизах:
- Управление нашей фирмой, редакция 3.0, релизы 3.0.12.237, 3.0.9.163, 3.0.7.113
Вступайте в нашу телеграмм-группу Инфостарт