К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Управляемые формы: необновляется ТЧ после заполнения

Гость
0 - 12.03.2012 - 12:44
Здравствуйте!
Подскажите, пожалуйста, по управляемым формам.
Есть документ с основной управляемой формой и есть еще доп. упр.форма, которая открывается по команде из основной формы. В модуле доп. формы написана процедура заполнения табличной части основной формы, т.к. на доп. форме указываются реквизиты отбора для заполнения и на осн.форме они не нужны. так вот после заполнения таблиной части осн. формы табличная часть не обновляется. после записи документа и повторного входа в него видно, что табличная часть заполнена.
в чем причина? что не так?



Гость
1 - 12.03.2012 - 13:26
В том, что кто-то заполняет не коллекцию данных формы документа, представляющую табличную часть документа на клиенте, а табличную часть объекта на сервере.
Гость
2 - 12.03.2012 - 13:36
(2) В таком случае при закрытии основной формы, система ругалась бы на коллизию версий. Что то автор намутил с открытием этой внешней формы и передачей/возвратом параметров.
Гость
3 - 13.03.2012 - 04:45
Хорошо. Тогда подскажите, пожалуйста, как реализовать решение следующей задачи:
по кнопке на осн. упр.форме нужно вызвать команду - Заполнение ТЧ формы, при вызове команды нужно открывать форму, в которой указать доп. параметры, необходимые для отбора для формирования запроса, чтобы заполнить ТЧ осн. упр. формы. Затем заполнить ТЧ осн.упр.формы.
как сделать?
Гость
4 - 13.03.2012 - 06:38
расскажу, как реализаую:

есть док. "МойДок", в котором есть осн. упр.форма. создаю команду "ЗаполнитьПоОстаткам" в документе, модуль команды:

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)

ПараметрыФормы = Новый Структура("Ключ", ПараметрКоманды);
ИмяФормы = "Документ." + ПараметрКоманды.Метаданные().Имя + ".Форма.ФормаДокументаЗаполнитьПоОстаткам";
ОткрытьФормуМодально(ИмяФормы, ПараметрыФормы, ПараметрыВыполненияКоманды.Источник);

КонецПроцедуры

ФормаДокуметаЗаполнитьПоОстаткам - это доп. форма, в которй задаются параметры, нужные для отбора: Склад и Номенклатура.

Далее в модуле этой формы "ФормаДокуметаЗаполнитьПоОстаткам" создаю процедуры:

+ Code
&НаКлиенте
Процедура ЗаполнитьПоОстаткам(Команда)
// Вставить содержимое обработчика.


Если Объект.Материалы.Количество() > 0 Тогда

ТекстВопроса = "Перед заполнением табличная часть будет очищена. Заполнить?";
Ответ = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Да, );
Если Ответ <> КодВозвратаДиалога.Да Тогда
Возврат;
КонецЕсли;

Объект.Материалы.Очистить();
КонецЕсли;



Выборка = ЗаполнитьПоОстаткамНаСервере();
Для каждого ТекСтрока из Выборка Цикл

СтрокаТабличнойЧасти = Объект.Материалы.Добавить();

СтрокаТабличнойЧасти.Номенклатура = ТекСтрока.Номенклатура;
СтрокаТабличнойЧасти.Количество = ТекСтрока.Количество;
СтрокаТабличнойЧасти.Склад = СкладОтбор;

КонецЦикла;


Закрыть(Истина);
КонецПроцедуры

&НаСервере
Функция ЗаполнитьПоОстаткамНаСервере()
Документ = РеквизитФормыВЗначение("Объект");
ДатаОстатков = НачалоДня(Документ.Дата+1);
Запрос = Новый Запрос;

....
.... // текст запроса


ТЗ = Запрос.Выполнить().Выгрузить();

ЗначениеВРеквизитФормы(Документ, "Объект");

Возврат ТЗ;

КонецФункции


все. заполнение происходит, но появляется только после закрытия и повторного открытия документа.


К списку вопросов






Copyright ©, Все права защищены