Имя: Пароль:
1C
1С v8
КопироватьДанныеФормы
0 4Derby
 
03.08.14
00:45
Не въезжаю!
Уже погуглено.
Но все равно, не срабатывает ни Форма.Обновить ни Открыть ни Записать
КопироватьДанныеФормы(НовыйОбъект, Форма.Объект);
форма.Обновить();
Форма.Записать();
Форма =ОткрытьФорму("Документ.РасходнаяНакладная.Форма.ФормаДокумента",КлючПоиска,,,Окно);
1 Лефмихалыч
 
03.08.14
10:04
а чего добиться-то хочешь?
2 4Derby
 
03.08.14
10:58
получается так, на сервере уже изменненный документ, с заполненными данными, а клиент не видит изменений. закрываю документ, система не спрашивает - записать? открываю заново - вижу данные.
внешняя обработка в унф заполняет документ.
3 m-serg74
 
03.08.14
11:05
может как то так пробовать?

Форма = ПолучитьФорму("Документ.РасходнаяНакладная.ФормаОбъекта");    
ДанныеФормы = Форма.Объект;
ЗаполнитьДанныеНаСервере(ДанныеФормы,КакойТоДокумент);
КопироватьДанныеФормы(ДанныеФормы, Форма.Объект);
Форма.Открыть();
4 4Derby
 
04.08.14
11:52
Ни как не получилось.
Может ли ктолибо подсказать, как сделать, чтоб записанный на сервере документ обновил форму у пользователя. Сейчас решено так - записали, закрыли, открыли.
5 Kurbash
 
04.08.14
11:55
Оповестить()
6 RomaH
 
naïve
04.08.14
11:58
а может
значениевреквизитформы
или в данныеформы?
7 4Derby
 
04.08.14
12:04
значениевреквизитформы - мне не понять как им пользоваться(((
8 RomaH
 
naïve
04.08.14
12:06
ДанныеФормы = Форма.Объект;
ЗаполнитьДанныеНаСервере(ДанныеФормы,КакойТоДокумент);

ДанныеФормы  - это у тебя что?
в заполнитьнасервере - что там с ним делаешь?
9 4Derby
 
04.08.14
12:09
Режим = РежимДиалогаВопрос.ДаНет;
    Текст = "В текущем документе ХХХ без возможности восстановления.
    |Продолжить?";
    Ответ = Вопрос(Текст, Режим, 0);
    Если Ответ = КодВозвратаДиалога.Да Тогда        
        Для каждого Элемент из ОбъектыНазначенияМассив Цикл
            КлючПоиска = Новый Структура("Ключ", Элемент);
            Окна = ПолучитьОкна();
            Для каждого Окно из Окна Цикл
                Если НЕ Окно.Основное И Найти(Окно.Заголовок, Элемент) Тогда
                    Форма = ОткрытьФорму("Документ.РасходнаяНакладная.Форма.ФормаДокумента",КлючПоиска,,,Окно);    
                    НовыйОбъект = Форма.Объект;
                    ЗаполнитьОбъект(НовыйОбъект);
                    КопироватьДанныеФормы(НовыйОбъект, Форма.Объект);
                    // вот тут у меня не получается, чтобы изменения отразились наКлиенте
                    Форма.Записать();  // ВОТ ЭТО
                    форма.Закрыть();  // НЕПРАВИЛЬНО
                    Форма=ПолучитьФорму("Документ.РасходнаяНакладная.Форма.ФормаДокумента",КлючПоиска);   //НЕКРАСИВО
                    Форма.Открыть(); // и ТУПО
                КонецЕсли;    
            КонецЦикла;    
        КонецЦикла;    
    КонецЕсли;
10 Kurbash
 
04.08.14
12:11
(7) ЗначениеВРеквизит форме кстати тоже может выручить, без оповещения. Пользоваться просто-сначала создаешь некий буфер, заполняешь его а потом возвращаешь на объект через РеквизитФОрмыВЗначение
НашОбъект=РеквизитФОрмыВЗначение("Объект");
                   СтрокаНарядов=НашОбъект.НарядыВыписанные.Добавить();
СтрокаНарядов.Наряд=Док.Ссылка;

ЗначениеВРеквизитФОрмы(НашОбъект,"Объект");
11 4Derby
 
04.08.14
12:13
RomaH
Заполняю документ через НовыйОбъект.Видцен =  СпрЦен;
        НовыйОбъект.НалогообложениеНДС = Перечисления.ТипыНалогообложенияНДС.НеОблагаетсяНДС;
Заполняю Табл.часть документа.
Причём выглядит так в табл.части данные отображаются, но не нужные колонки в следствии выбора "Не облагается НДС" не убираются. Текст надписи про Вид Цен на форме документа не обновляется.
12 Лефмихалыч
 
04.08.14
12:15
(7) на, держи


// форма документа
&НаКлиенте
Процедура НажалиНаКнопочкуЗаполнить(Кнопочка)
   ЗаполнитьНаСервере();
КонецПроцедуры;

&НаСервере
Процедура ЗаполнитьНаСервере()
   Об = РеквизитФормыВЗначение("Объект");
   Об.ЗаполнитьКа_тоХитро();
   ЗначениеВРекузитФормы(Об, "Объект");
КонецПроцедуры


// модуль объекта
Процедура ЗаполнитьКа_тоХитро() Экспорт
   // тут код заполнения
КонецПроцедуры
13 4Derby
 
04.08.14
12:25
(12)
Нет, не понять((
ЗаполнитьОбъект(НовыйОбъект); // аналог ЗаполнитьНаСервере
&НаСервере // НовыйОбъект - не нужен чтоли? Это ж мой открытый документ
Функция ЗаполнитьОбъект(НовыйОбъект)    
    // ПРОВЕРИТЬ НА "Передача в переработку"
    Если НовыйОбъект.ВидОперации = Перечисления.ВидыОперацийРасходнаяНакладная.ПередачаВПереработку Тогда
        Об = РеквизитФормыВЗначение("Объект");
        Об.Заполнить();
        ЗначениеВРеквизитФормы(Об, "Объект");
КонецЕсли;
// Об - это что?! Как мне в модуле Вн.Обработки получить Объект моего документа?
Сильно затрудняет работу то, что не возможно воспользоваться отладчиком!
Основная теорема систематики: Новые системы плодят новые проблемы.