Имя: Пароль:
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)
Нет, не понять((
ЗаполнитьОбъект(НовыйОбъект); // аналог ЗаполнитьНаСервере
&НаСервере // НовыйОбъект - не нужен чтоли? Это ж мой открытый документ
Функция ЗаполнитьОбъект(НовыйОбъект)    
    // ПРОВЕРИТЬ НА "Передача в переработку"
    Если НовыйОбъект.ВидОперации = Перечисления.ВидыОперацийРасходнаяНакладная.ПередачаВПереработку Тогда
        Об = РеквизитФормыВЗначение("Объект");
        Об.Заполнить();
        ЗначениеВРеквизитФормы(Об, "Объект");
КонецЕсли;
// Об - это что?! Как мне в модуле Вн.Обработки получить Объект моего документа?
Сильно затрудняет работу то, что не возможно воспользоваться отладчиком!
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn