Имя: Пароль:
1C
 
Не заполняется ТЧ документа внешней обработкой заполнения ТЧ
0 dka80
 
13.04.18
08:53
Добрый день.

Вот таким кодом во внешней обработки заполнения ТЧ пытаюсь заполнить документ:
Процедура ПослеВводаЗначения(ВыбЗнач, Параметры) Экспорт
    
    Если ВыбЗнач<>Неопределено Тогда
        
        Для каждого Элемент из ОбъектыНазначения Цикл

            ФормаОбъекта = ПолучитьФорму(ПолучитьПолноеИмяДокумента(Элемент)+".Форма.ФормаДокумента", Новый Структура("Ключ", Элемент));

            Если ФормаОбъекта = Неопределено Тогда
                Сообщить("Не удалось заполнить документ!");
                Возврат;
            КонецЕсли;
            
            ОбъектСсылки = ФормаОбъекта.Объект;

            ЗаполнитьПоТерритории(ОбъектСсылки, ВыбЗнач);
            ФормаОбъекта.ОбновитьОтображениеДанных();
            КопироватьДанныеФормы(ОбъектСсылки, ФормаОбъекта.Объект);
            ФормаОбъекта.Модифицированность = Истина;
            
        КонецЦикла;
    
    КонецЕсли;
    
КонецПроцедуры

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

В цикле сообщить выводятся сотрудники. Но на форме документа ничего не появляется. Что я делаю не так?
1 Cyberhawk
 
13.04.18
08:55
Смешной - ты форму получаешь, но она не та
2 dka80
 
13.04.18
08:56
Пояснишь, почему не та?
3 Cyberhawk
 
13.04.18
08:57
Вопрос поставлен неверно. Это ты объясни, с чего ты взял / рассчитываешь, что будет та
4 mehfk
 
13.04.18
09:00
Пятнично.
5 dubraver
 
13.04.18
09:01
Загружай в объект.
ВладелецФормы.Объект.ТЧ.Загрузить(тз);
6 dka80
 
13.04.18
09:01
Потому, что имя формы Документ.ОтпускБезСохраненияОплатыСписком.Форма.ФормаДокумента
7 dka80
 
13.04.18
09:08
(5) не помогло
8 dubraver
 
13.04.18
09:29
По шаблону попробуйте.
Я написал несколько обработок по заполнению.
Проблем не было.
http://dubraver.ru/?page_id=151
9 dka80
 
13.04.18
09:34
Разобрался.
Отдельное спасибо (1) и (5).
Действительно форму получал того объекта, но не уже открытую.
Заменил ФормаОбъекта = ПолучитьФорму(ПолучитьПолноеИмяДокумента(Элемент)+".Форма.ФормаДокумента", Новый Структура("Ключ", Элемент));
            
на ФормаОбъекта = ВладелецФормы;
и получилось
2 + 2 = 3.9999999999999999999999999999999...