![]() |
|
Управляемая форма, как обновить реквизит. | ☑ | ||
---|---|---|---|---|
0
Быдло замкадное
06.10.17
✎
11:14
|
На форме 2 таблички, при удалении строки из одной таблицы надо изменить значение в колонке другой таблице.
Все работало до того как я стал после этого действия еще принудительно проводить документ. Теперь во второй табличке на форме не видны изменения. Что пробовал: 1. ОбновитьОтображениеДанных - не помогло 2. Прочитать - не помогло 3. ОбъектОбработка = РеквизитФормыВЗначение("Объект"); //редактирование ТЧ ЗначениеВРеквизитФормы(ОбъектОбработка, "Объект"); - тоже не помогло. Каааак его обновить? Сейчас обновляется только после того как кнопку Записать нажмешь. Код: &НаКлиенте Процедура ТоварыПередУдалением(Элемент, Отказ) Номенклатура = Элемент.ТекущиеДанные.Номенклатура; Количество = Элемент.ТекущиеДанные.Количество; УбратьКоличествоНаСервере(Номенклатура, Количество); Записать(Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Проведение)); КонецПроцедуры &НаСервере Процедура УбратьКоличествоНаСервере(Номенклатура, Количество) СтруктураПоиска = Новый Структура; СтруктураПоиска.Вставить("Номенклатура", Номенклатура); МассивСтрок = Объект.ПланФакт.НайтиСтроки(СтруктураПоиска); СтрокаПланФакт = МассивСтрок[0]; СтрокаПланФакт.Количество = СтрокаПланФакт.Количество - Количество; КонецПроцедуры |
|||
1
Быдло замкадное
06.10.17
✎
11:16
|
Записать(Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Проведение));
Тоже делал и на сервере и на клиенте, все равно форма не обновляется |
|||
2
DmitrO
06.10.17
✎
11:23
|
А ничего, что сначала происходит запись, а потом удаляется строка из таблицы Товары?
|
|||
3
Быдло замкадное
06.10.17
✎
11:24
|
(2) почему? Последовательность вроде такая:
УбратьКоличествоНаСервере(Номенклатура, Количество); Записать(Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Проведение)); |
|||
4
DmitrO
06.10.17
✎
11:25
|
Да, обработчик-то называется ПередУдалением.
|
|||
5
Быдло замкадное
06.10.17
✎
11:27
|
(4) упс! щас исправлю
|
|||
6
Быдло замкадное
06.10.17
✎
11:36
|
Заработало! думал косяк управляемой формы, а оказался косяк моей логики)
Правильный код: &НаКлиенте Процедура ТоварыПередУдалением(Элемент, Отказ) Номенклатура = Элемент.ТекущиеДанные.Номенклатура; Количество = Элемент.ТекущиеДанные.Количество; УбратьКоличествоНаСервере(Номенклатура, Количество); КонецПроцедуры &НаСервере Процедура УбратьКоличествоНаСервере(Номенклатура, Количество) СтруктураПоиска = Новый Структура; СтруктураПоиска.Вставить("Номенклатура", Номенклатура); МассивСтрок = Объект.ПланФакт.НайтиСтроки(СтруктураПоиска); СтрокаПланФакт = МассивСтрок[0]; СтрокаПланФакт.Количество = СтрокаПланФакт.Количество - Количество; КонецПроцедуры &НаКлиенте Процедура ТоварыПослеУдаления(Элемент) Записать(Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Проведение)); КонецПроцедуры |
|||
7
DmitrO
06.10.17
✎
11:37
|
угу..
А теперь скажи, твои юзеры знают о такой чудесной возможности: выделить две строки и нажать Del один раз? Если нет, то лучше не рассказывай им об этом.. |
|||
8
Быдло замкадное
06.10.17
✎
11:45
|
(7) они на ТСД работают, там ни 2 строк, на правой кнопки мышки нет
|
|||
9
DmitrO
06.10.17
✎
11:49
|
ну тогда готово
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |