8.х Несоответствие типов (параметр номер '1')

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Екатерина1992, 23 авг 2016.

  1. TopicStarter Overlay
    Екатерина1992
    Offline

    Екатерина1992

    Регистрация:
    23 авг 2016
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Выдает вот такую ошибку {Форма.Форма2.Форма(35)}: Ошибка при вызове метода контекста (Загрузить)
    Номенклатура.Загрузить(ТЗ);
    по причине:
    Несоответствие типов (параметр номер '1') Понимаю что есть уже очень много тем, но никак не могу разобраться.

    Модуль объекта;:
    Код:
    перем мСКД_Номенклатура;
    перем СхемаКомпоновки;
    
    Функция СведенияОВнешнейОбработке() Экспорт
      
        РегистрационныеДанные = Новый Структура;
        РегистрационныеДанные.Вставить("Наименование", "Обработка: переименование номенклатуры v1");
        РегистрационныеДанные.Вставить("БезопасныйРежим", Ложь);
        РегистрационныеДанные.Вставить("Версия", "1.0.1");
     
        //ДополнительнаяОбработка
        //ДополнительныйОтчет
        //ЗаполнениеОбъекта
        //Отчет
        //ПечатанаяФорма
        //СозданиеСвязанныхОбъектов
        РегистрационныеДанные.Вставить("Вид", "ДополнительнаяОбработка");
     
        РегистрационныеДанные.Вставить("Информация", "Обработка для переименования элементов в справочнике номенклатуры (управляемое приложение)");
     
        ///////////// команды /////////////////////////
        тзКоманд = Новый ТаблицаЗначений;
        тзКоманд.Колонки.Добавить("Идентификатор");
        тзКоманд.Колонки.Добавить("Представление");
        тзКоманд.Колонки.Добавить("Модификатор");
        тзКоманд.Колонки.Добавить("ПоказыватьОповещение");
        тзКоманд.Колонки.Добавить("Использование");
     
        строкаКоманды = тзКоманд.Добавить();
        строкаКоманды.Идентификатор = "Обработка1";
        строкаКоманды.Представление = "Обработка: переименование номенклатуры v1";
        строкаКоманды.ПоказыватьОповещение = Истина;
        строкаКоманды.Модификатор = "";
        строкаКоманды.Использование = "ОткрытиеФормы";
     
        РегистрационныеДанные.Вставить("Команды", тзКоманд);
     
        ////////////// назначение (в каких объектах используется) /////////////////////////
        //для печ.форм, заполнения, ввода свазанных объектов
        МассивНазначений = Новый Массив;
        МассивНазначений.Добавить("Справочник.*"); // все справочники назначаются
        МассивНазначений.Добавить("Справочник.Номенклатура");
       // МассивНазначений.Добавить("Документ.ЗаказПокупателя");
        РегистрационныеДанные.Вставить("Назначение", МассивНазначений);
     
        Возврат РегистрационныеДанные;
               
    КонецФункции
    //&НаСервере
    Функция РезультатКомпоновкиВТЗ(СКД) Экспорт
    
        КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
        КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СКД));
        КомпоновщикНастроек.ЗагрузитьНастройки(СКД.НастройкиПоУмолчанию);
    
        Настройки = КомпоновщикНастроек.Настройки;
        //ПараметрыНастройки = НастройкиКомпоновщика.ПараметрыДанных;
    
    //СхемаКомпоновкиДанных = ПолучитьИзВременногоХранилища(АдресКомпоновки);  
    //Настройки = Компоновщик_Номенклатура.Настройки;
      
    //Формируем макет, с помощью компоновщика макета
    
    
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
      
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД, Настройки,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
      
    //Выполним компоновку с помощью процессора компоновки
    
    
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
        ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);
      
    Результат = Новый ТаблицаЗначений;
    
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
        ПроцессорВывода.УстановитьОбъект(Результат);
      
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
    
    //Для каждого ТекСтрока из Результат Цикл
    //НоваяСтрока=ТабЧастьДобавить();
    //        ЗаполнитьЗначенияСвойств(НоваяСтрока,ТекСтрока);
    //НоваяСтрока.Пометка = Истина;
    //КонецЦикла;
    Возврат Результат;
    КонецФункции

    Модуль формы:
    Код:
    &НаКлиенте
    Перем СКД;
    Перем АдресКомпоновки;
    
    &НаСервере
    Функция ПолучитьМакетНаСервере()
    Возврат РеквизитФормыВЗначение("Объект").ПолучитьМакет("Макет");
    КонецФункции
    
    &НаКлиенте
    Процедура ПриОткрытии(Отказ)
        СКД = ПолучитьМакетНаСервере();
    Компоновщик_Номенклатура.ЗагрузитьНастройки(СКД.НастройкиПоУмолчанию);
     
    АдресКомпоновки = ПоместитьВоВременноеХранилище(СКД, Новый УникальныйИдентификатор);  
    Компоновщик_Номенклатура.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресКомпоновки));
    КонецПроцедуры
    
    &НаСервере
    Функция РезультатНаСервере()
        СКД = ПолучитьМакетНаСервере();
       ОбъектНаСервере = РеквизитФормыВЗначение("Объект");
       ОбъектНаСервере.РезультатКомпоновкиВТЗ(СКД);
       ЗначениеВРеквизитФормы(ОбъектНаСервере, "Объект");
    КонецФункции
    
    &НаКлиенте
    Процедура Команда1(Команда)
        Команда1НаСервере();
    КонецПроцедуры
    
    &НаСервере
    Процедура Команда1НаСервере()
    Номенклатура.Загрузить(ТЗ);
    КонецПроцедуры[DOUBLEPOST=1471982948][/DOUBLEPOST]&НаСервере
    Процедура Команда1НаСервере()
      
    Номенклатура.Загрузить(РезультатНаСервере());
    КонецПроцедуры
    Последнее редактирование модератором: 24 авг 2016
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.554
    Симпатии:
    716
    Баллы:
    204
    Что есть ТЗ и как этот объект формируется?
  3. TopicStarter Overlay
    Екатерина1992
    Offline

    Екатерина1992

    Регистрация:
    23 авг 2016
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Последняя процедура выглядит вот так

    Процедура Команда1НаСервере()

    Номенклатура.Загрузить(РезультатНаСервере());
    КонецПроцедуры

    Там нет ТЗ
  4. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.755
    Симпатии:
    509
    Баллы:
    204
    Почитайте как в УФ работать с таблицами значений.
  5. TopicStarter Overlay
    Екатерина1992
    Offline

    Екатерина1992

    Регистрация:
    23 авг 2016
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Да в том то и дело, что я не могу никак понять как правильно это присвоить....
  6. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.755
    Симпатии:
    509
    Баллы:
    204
    Курите РеквизитФормыВЗначение() и ЗначениеВРеквизитФормы()
  7. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.554
    Симпатии:
    716
    Баллы:
    204
    Не, это не тот случай.

    Значит

    Код:
    &НаКлиенте
    Процедура Команда1(Команда)
        Команда1НаСервере();
    КонецПроцедуры
    
    &НаСервере
    Процедура Команда1НаСервере()
    Номенклатура.Загрузить(ТЗ);
    КонецПроцедуры
    Можно смело удалить.


    Номенклатура.Загрузить(РезультатНаСервере()) - отрабатывает без ошибок?
  8. TopicStarter Overlay
    Екатерина1992
    Offline

    Екатерина1992

    Регистрация:
    23 авг 2016
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Все до Загрузить отрабатывает исправно, то есть таблица результат выглядит должным образом.
    --- Объединение сообщений, 26 авг 2016 ---
    Код:
    &НаКлиенте
    Процедура Команда1(Команда)
    Команда1НаСервере();
    КонецПроцедуры


    Вот это нельзя удалять
  9. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.554
    Симпатии:
    716
    Баллы:
    204
    Почему нельзя удалять? У вас используется:

    Код:
    Процедура Команда1НаСервере()
    
    Номенклатура.Загрузить(РезультатНаСервере());
    
    КонецПроцедуры
  10. TopicStarter Overlay
    Екатерина1992
    Offline

    Екатерина1992

    Регистрация:
    23 авг 2016
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Потому что вот это
    &НаКлиенте
    Процедура Команда1(Команда)
    Команда1НаСервере();
    КонецПроцедуры
    Это процедура вызова команды без которой модуль не будет работать
  11. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.554
    Симпатии:
    716
    Баллы:
    204
    Хорошо. Как в данный момент выглядит модуль формы?
  12. TopicStarter Overlay
    Екатерина1992
    Offline

    Екатерина1992

    Регистрация:
    23 авг 2016
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    КонецФункции

    Модуль формы:
    Код:
    &НаКлиенте
    Перем СКД;
    Перем АдресКомпоновки;

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

    &НаКлиенте
    Процедура ПриОткрытии(Отказ)
    СКД = ПолучитьМакетНаСервере();
    Компоновщик_Номенклатура.ЗагрузитьНастройки(СКД.НастройкиПоУмолчанию);

    АдресКомпоновки = ПоместитьВоВременноеХранилище(СКД, Новый УникальныйИдентификатор);
    Компоновщик_Номенклатура.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресКомпоновки));
    КонецПроцедуры

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

    &НаКлиенте
    Процедура Команда1(Команда)
    Команда1НаСервере();
    КонецПроцедуры

    &НаСервере
    Процедура Команда1НаСервере()

    Номенклатура.Загрузить(РезультатНаСервере());
    КонецПроцедуры
  13. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.554
    Симпатии:
    716
    Баллы:
    204
    Хорошо. В данный момент ошибка сохраняется и такая же?
  14. TopicStarter Overlay
    Екатерина1992
    Offline

    Екатерина1992

    Регистрация:
    23 авг 2016
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Да ничего не изменилось
  15. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.554
    Симпатии:
    716
    Баллы:
    204
    У вас функция РезультатНаСервере() ничего не возвращает.
  16. TopicStarter Overlay
    Екатерина1992
    Offline

    Екатерина1992

    Регистрация:
    23 авг 2016
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    А подскажите чио она должна возвращать если необходимая таблица Результат формируется в функцииРезультатКомпоновкиВТЗ(СКД)
  17. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.554
    Симпатии:
    716
    Баллы:
    204
    Значит и возвращать она должна эту функцию:

    Возврат ОбъектНаСервере.РезультатКомпоновкиВТЗ(СКД);
  18. TopicStarter Overlay
    Екатерина1992
    Offline

    Екатерина1992

    Регистрация:
    23 авг 2016
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Большое спасибо. Ошибка действительно исчезла, но на форму в табличную часть так ничего и не выводится
    --- Объединение сообщений, 1 сен 2016 ---
    Большое спасибо. Ошибка действительно исчезла, но на форму в табличную часть так ничего и не выводится

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