8.х Проблемы с методом УФ ЗначениеВРеквизитФормы()

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Ktyf, 18 мар 2015.

  1. TopicStarter Overlay
    Ktyf
    Offline

    Ktyf Опытный в 1С

    Регистрация:
    16 янв 2013
    Сообщения:
    457
    Симпатии:
    12
    Баллы:
    29
    Следующим кодом, я создаю программно новый реквизит формы и соответствующую ему ТЗ. Два дня назад все чудно заработало во внешней обработке. Теперь это нужно повторить во встроенной обработке, желательно в процедуре ПриСозданииНаСервере.
    Код:
        Если Параметры.Свойство("АдресОпераций") И ЭтоАдресВременногоХранилища(Параметры.АдресОпераций) Тогда
            ОперРекв = Объект.Операции.Выгрузить();
            ОперРекв.Очистить();
            Операции = ПолучитьИзВременногоХранилища(Параметры.АдресОпераций);
            Для Каждого СтрокаОпераций Из Операции Цикл
                НоваяСтрока = ОперРекв.Добавить();
                ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаОпераций);
                НоваяСтрока.КоличествоПлан = НоваяСтрока.КоличествоФакт;
                НоваяСтрока.КоличествоФакт = 0;
            КонецЦикла;   
        Иначе
            Отказ = Истина;
        КонецЕсли;
        ОперРекв.колонки.Удалить("Исполнитель");
        п=0;
        Итог="";
        Для Каждого Работник из Бригада.Состав Цикл
            ПолноеФио = Строка(Работник.Сотрудник);
            Пробел1 = Найти(ПолноеФио," ");
            Итог = Сред(ПолноеФио,1,Пробел1-1);
            Итог = Итог+Сред(ПолноеФио,Пробел1+1,1);
            ПолноеФио  = Сред(ПолноеФио,пробел1+1);
            Пробел2 = Найти(ПолноеФио," ");
            Итог = Итог+Сред(ПолноеФио,Пробел2+1,1);
            ОперРекв.Колонки.Добавить(Итог,Новый ОписаниеТипов("Число"),Итог,50);
            новРаб = соотвРаботников.Добавить();
            новРаб.Работник  = Строка(Работник.Сотрудник);
            новРаб.Сотрудник = Работник.Сотрудник;
        КонецЦикла;
       
        МассивРеквизитов = Новый Массив;
        МассивРеквизитов.Добавить(Новый РеквизитФормы("тзИсполнители", Новый ОписаниеТипов("ТаблицаЗначений"), "", "Моя таблица", Ложь));
       
        Для Каждого Колонка Из ОперРекв.Колонки Цикл
            МассивРеквизитов.Добавить(Новый РеквизитФормы(Колонка.Имя, Колонка.ТипЗначения, "тзИсполнители", Колонка.Заголовок, Ложь));
        КонецЦикла;
       
        ИзменитьРеквизиты(МассивРеквизитов);
        Таблица = Элементы.Добавить("тзИсполнители", Тип("ТаблицаФормы"));//,Элементы.Группа1);
        Таблица.ПутьКДанным = "тзИсполнители";
        Таблица.Отображение = ОтображениеТаблицы.Список;    
       
        Для Каждого Колонка Из ОперРекв.Колонки Цикл
            НовыйЭлемент = Элементы.Добавить("тзИсполнители" + Колонка.Имя, Тип("ПолеФормы"), Таблица);
            НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
            НовыйЭлемент.ПутьКДанным = "тзИсполнители." + Колонка.Имя;
        КонецЦикла;
       
        ЗначениеВРеквизитФормы(ОперРекв,"тзИсполнители");
    НО!!! ЗначениеВРеквизитФормы ругается на параметр №2!!! Поиск по гуглу - не нашла причины. Привожу почти весь текст кода - может где уже глаз замылился и явный косяк не вижу?
  2. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    Отладчик в помощь.
  3. TopicStarter Overlay
    Ktyf
    Offline

    Ktyf Опытный в 1С

    Регистрация:
    16 янв 2013
    Сообщения:
    457
    Симпатии:
    12
    Баллы:
    29
    спасибо.... В отладчике видно идентичность стуктур и реквизита и ТЗ, а метод все равно ругается
  4. Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    403
    Симпатии:
    71
    Баллы:
    54
    Здравствуйте.
    Я пока не очень хорошо разбираюсь в восьмерке, но сразу возникает вопрос: а при выполнении ПриСозданииНаСервере форма уже существует?
    Вы пробовали в модуле формы запускать код?
  5. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.977
    Симпатии:
    397
    Баллы:
    104
    Форма доступна только на клиенте.
  6. TopicStarter Overlay
    Ktyf
    Offline

    Ktyf Опытный в 1С

    Регистрация:
    16 янв 2013
    Сообщения:
    457
    Симпатии:
    12
    Баллы:
    29
    в этот момент можно сказать форма создается - т.е. уже видны ее реквизиты и можно обработывать их заполнение. Но ПриСозданииНаСервере - это процедура модуля формы, а не модуляМенеджера.
    --- Объединение сообщений, 22 мар 2015 ---
    так именно там и идет работа
  7. Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    403
    Симпатии:
    71
    Баллы:
    54
    Я сравниваю Ваш код со своим - практически один в один. Если он работает во внешней обработке, то значит логично предположить, что дело только в размещении его в процедурах. Экзотику в виде разных релизов платформ, думаю, не стоит рассматривать.

Поделиться этой страницей