Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Как программно переоткрыть форму владельца          
martynovalena Подменю пользователя
сообщение 13.12.17, 11:41
Сообщение #1

Молчаливый
*
Группа: Пользователи
Сообщений: 9
Спасибо сказали: 0 раз
Рейтинг: 0

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


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



&НаСервере
Процедура ЗаполнитьНаСервере()
    Об = Объект.ТекущДопСогл.ПолучитьОбъект();
    ОсновнДоговор=Объект.ПроектДоговора.ПолучитьОбъект();
    //Сообщить("Основной договор тек ДопСог"+Об.ОсновнойДоговор);
    ЕстьИзменения = Ложь;
    Если Об.ОсновнойДоговор=Документы.бит_ПроектДоговора.ПустаяСсылка() или Об.ОсновнойДоговор=неопределено тогда
        Об.ОсновнойДоговор=ОсновнДоговор.Ссылка;
        Сообщить("Основной Договор ДопСоглашения"+ОсновнДоговор.Ссылка);
        ЕстьИзменения=истина;
    КонецЕсли;
        
    
    Если Об.ДатаДоговора=Дата('00010101')  тогда
        Об.ДатаДоговора= ОсновнДоговор.ДатаДоговора;
        Сообщить("Дата ДопСоглашения"+ОсновнДоговор.ДатаДоговора);
        ЕстьИзменения = Истина;
    КонецЕсли;
    
    Если  Об.бит_П_МенеджерПоЗакупкам= справочники.ФизическиеЛица.ПустаяСсылка() тогда
        Об.бит_П_МенеджерПоЗакупкам= ОсновнДоговор.бит_П_МенеджерПоЗакупкам;
        Сообщить("МенеджерПоЗакупкам ДопСоглашения"+ОсновнДоговор.бит_П_МенеджерПоЗакупкам);
        ЕстьИзменения = Истина;
    КонецЕсли;
    
    Если Об.Контрагент = Справочники.Контрагенты.ПустаяСсылка()   Тогда
        //и ОсновнДоговор <> Документы.бит_ПроектДоговора.ПустаяСсылка()    Тогда
        Об.Контрагент = ОсновнДоговор.Контрагент;
        Сообщить("Контрагент ДопСоглашения"+ОсновнДоговор.Контрагент);
        ЕстьИзменения = Истина;
    КонецЕсли;
    
    Если Об.бит_П_Аналитика_1 = Справочники.бит_П_СтатьиРасходов.ПустаяСсылка() Тогда
        Об.бит_П_Аналитика_1 = ОсновнДоговор.бит_П_Аналитика_1;
        Сообщить("Статьи расходов ДопСоглашения"+ОсновнДоговор.бит_П_Аналитика_1);
        ЕстьИзменения = Истина;
    КонецЕсли;
    
    Если Об.бит_П_Аналитика_2 = Справочники.бит_П_ИсточникиФинансирования.ПустаяСсылка() Тогда
        Об.бит_П_Аналитика_2 = ОсновнДоговор.бит_П_Аналитика_2;
        Сообщить("Источники фоинансирования ДопСоглашения"+ОсновнДоговор.бит_П_Аналитика_2);
        ЕстьИзменения = Истина;
    КонецЕсли;                                                      
    
    Если Об.бит_П_Аналитика_6 = Справочники.Подразделения.ПустаяСсылка() или Об.бит_П_Аналитика_6 = Неопределено Тогда
        Об.бит_П_Аналитика_6 = ОсновнДоговор.бит_П_Аналитика_6;
        Сообщить("Инициатор расходов ДопСоглашения"+ОсновнДоговор.бит_П_Аналитика_6);
        ЕстьИзменения = Истина;
    КонецЕсли;                                    
    
    Если Об.ЦФО = Справочники.Подразделения.ПустаяСсылка() Тогда
        Об.ЦФО = ОсновнДоговор.ЦФО;
        Сообщить("ЦФО ДопСоглашения"+ОсновнДоговор.ЦФО);
        ЕстьИзменения = Истина;
    КонецЕсли;
    
    Если ЕстьИзменения Тогда
        Об.Записать(?(Об.Проведен, РежимЗаписиДокумента.Проведение, РежимЗаписиДокумента.Запись));
    КонецЕсли;
    
КонецПроцедуры

&НаКлиенте
Процедура Заполнить(Команда)
    ЗаполнитьНаСервере();
    ОповеститьОбИзменении(Объект.ТекущДопСогл);
    ВладелецФормы.Прочитать();
    ЭтаФорма.Закрыть();
КонецПроцедуры

Ефремов Подменю пользователя
сообщение 03.04.18, 6:40
Сообщение #2

Молчаливый
*
Группа: Пользователи
Сообщений: 3
Спасибо сказали: 0 раз
Рейтинг: 0

martynovalena @ 13.12.17, 15:41 * ,

Мне тоже нужно было переоткрыть документ. Я сделал так:
&НаКлиенте
Процедура Переоткрыть(Команда)
    Если ЭтаФорма.ВладелецФормы <> Неопределено Тогда
        ЭтаФорма.ВладелецФормы.Закрыть();
        ОткрытьФорму("Документ.СписаниеМатериаловИзЭксплуатации.ФормаОбъекта", новый Структура("Ключ", ЭтаФорма.Документ));
    КонецЕсли;
КонецПроцедуры

хакерок Подменю пользователя
сообщение 03.04.18, 20:44
Сообщение #3

Оратор
*****
Группа: Пользователи
Сообщений: 258
Из: Київ
Спасибо сказали: 12 раз
Рейтинг: 0

Ефремов @ Сегодня, 7:40 * ,
Если произошли изменения в базе данных то для обновления того что показывают открытые формы можно использовать
"Оповещения об изменнния" можно прочитать в книге "Профессиональная разработка в системе ..." -> Разработка форм ->Обновление данных в динамических списках.

logist Подменю пользователя
сообщение 03.04.18, 21:54
Сообщение #4

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(martynovalena @ 13.12.17, 12:41) *
Заполняет реквизиты и при обновлении формы не проставляется один реквизит .Он заполняется , но на форме не выходить

вероятно, у вас неправильный подход к программированию в управляемом приложении, необходимо взять объект через ДанныеФормывзначение передать в обработку, обработать его там и получить обработанный объект, вернуть его обратно через Значениевданныеформы


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Ефремов Подменю пользователя
сообщение 04.04.18, 9:04
Сообщение #5

Молчаливый
*
Группа: Пользователи
Сообщений: 3
Спасибо сказали: 0 раз
Рейтинг: 0

хакерок @ Сегодня, 1:44 * ,
Спасибо!

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 13:05
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!