1с ошибка отображения типов valuetable

В управляемых формах может появиться следующая ошибка:

Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: param Форма: Элемент Тип: {http://www.w3.org/2001/XMLSchema}anyType
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа '{http://v8.1c.ru/8.1/data/core}ValueTable'

С данной ошибкой я столкнулся, когда пытался в управляемой форме на стороне сервера выполнить следующую команду:

 ОбъектФормы = РеквизитФормыВЗначение("Объект");
 ТЗВывода = ОбъектФормы.Бонусы.Выгрузить().Скопировать();
 ЗначениеВРеквизитФормы(ОбъектФормы, "Объект");

Решением данной проблемы было обнулить переменную с таблицей данных:

ТЗВывода = Неопределено;

v8: Как передать таблицу значений с сервера на клиент ☑ 0

Shrek_yar

06.12.11

17:51

Здравствуйте, есть функция на сервере , она возвраша5ет переменую на клиент с типом «ТаблицаЗначений»

но выскакиет ошибка Ошибка отображения типов:

Отсутствует отображение для типа ‘{http://v8.1c.ru/8.1/data/core}ValueTable’,

я как понял он не может передать данный тип переменной обраьно на клиент, как с этим бороться и как передать результат фунции на клиент обратно если у нее тип ТаблицаЗначений

1

Shrek_yar

06.12.11

17:53

заранее спсибо))

2

GROOVY

06.12.11

17:55

Нельзя передавать между сервером и клиентом мутабельные значения.

3

YF

06.12.11

17:55

(0) А как передаешь?

4

GROOVY

06.12.11

17:56

Используйте временное хранилище. Поиск по форуму поможет.

5

YF

06.12.11

17:57

(4) Т.е. если создать ТЗ на клиенте, а потом передать на сервер для заполнения — не получится?

6

Shrek_yar

06.12.11

17:58

(3) в плане как ??

7

Shrek_yar

06.12.11

17:58

Возврат Сп;  // сп — таблица значений

8

YF

06.12.11

17:59

(6) Да не, я ступил … зато веточку поднял :-)

9

GLazNik

06.12.11

17:59

ТаблицаЗначений. Доступность: Сервер, толстый клиент, внешнее соединение.

Если клиент тонкий или веб, то использовать ТЗ нельзя.

Как вариант использовать массив структур

10

Shrek_yar

06.12.11

18:00

самое страное на другом компе работает, такая обработка и на той же конфе _)))))))))))))))))))))

11

Shrek_yar

06.12.11

18:00

и запускается в тонком клиенте))

12

БибиГон

06.12.11

18:01

(10) тогда почисти кеш )

13

Shrek_yar

06.12.11

18:01

(12) кеш то тут причем? мож я что не понимаю

14

Shrek_yar

06.12.11

18:02

аспирин на все лекарство ?? )))

15

БибиГон

06.12.11

18:03

а как у тебя работает то что не должно работать? ))

16

Живой Ископаемый

06.12.11

18:03

2(14) нет, это как раз от загадочных случаев когда одно и тоже на другом компе работает

17

GROOVY

06.12.11

18:04

(9) На клиенте использовать ТЗ можно.

18

GROOVY

06.12.11

18:05

19

Shrek_yar

06.12.11

18:05

(16)случай и в правду загадочный))

20

Shrek_yar

06.12.11

18:07

что мне тоже через табличную часть делать))?

21

GLazNik

06.12.11

18:07

(10) вполне возможно, ибо «Возможен обмен с сервером», но тогда

(11) таки клиент тонкий

(17) тогда СП меня обманывает:

«Доступность:

Сервер, толстый клиент, внешнее соединение.

Возможен обмен с сервером. Сериализуется. Данный объект может быть сериализован в/из XDTO. Тип XDTO, соответствующий данному объекту, определяется в пространстве имен {http://v8.1c.ru/8.1/data/core}. Имя типа XDTO: ValueTable»

22

Shrek_yar

06.12.11

18:07

сначало в нее , потом на клиент?

23

Shrek_yar

06.12.11

18:08

(21) тонкий, правда запуск стоит автоматически выбирать, но по интерфейсу фидно что в тонком вариенте запускается

24

БибиГон

06.12.11

18:09

(10) кс тати , а может платформы разные? )

25

GROOVY

06.12.11

18:10

(21) ТЗ может быть реквизитом формы. В этом случае работать с ней на клиенте можно.

Программно создать объект на клиенте нельзя.

26

БибиГон

06.12.11

18:10

(23) в смысле видно по нтерфейсу? на глаз определяешь чтоли? )

27

GLazNik

06.12.11

18:10

(22) а начнем сначала, а зачем ТЗ на клиенте?

(23) лично я не могу раличать интерфейсы тонкого и толстого клиента

28

GROOVY

06.12.11

18:11

(23) Толстый клиент в режиме управляемого приложения выглядит так же как и тонкий.

29

GLazNik

06.12.11

18:11

(25) Это верно, но на клиенте тип уже не таблица значений, а иной. Точно не помню.

30

Shrek_yar

06.12.11

18:12

(26) на глаз, там же сразу видны отличие, обычного от управляемого

31

Shrek_yar

06.12.11

18:12

или я не прав?

32

Shrek_yar

06.12.11

18:12

не прав)) все извиняюсь за безграмотность

33

GLazNik

06.12.11

18:13

(30) обычного от управляемого видно, а тонкий от толстого нет

34

GROOVY

06.12.11

18:13

(30) Ты определись про что ты про разных клиентов или разные режимы функционирования платформы.

35

Shrek_yar

06.12.11

18:14

(33) я с этим и с путал

36

Shrek_yar

06.12.11

18:14

платфформы у нас разные у них 13, у нас 14

37

Shrek_yar

06.12.11

18:15

но неужели из за платформы могут быть такие отличия и ошибки??

38

GLazNik

06.12.11

18:16

Но все таки. Зачем ТЗ на клиенте? Если конечно это не элемент интерфейса.

39

Shrek_yar

06.12.11

18:17

(38) на клиенте есть поле ТЗ, где выводиться результат

40

GLazNik

06.12.11

18:18

(39) так заполнять его на сервере

41

Shrek_yar

06.12.11

18:18

(40)щас в 13 платформе запущу, проверю

42

GROOVY

06.12.11

18:19

Ветка про общение слепого с глухим…

43

Shrek_yar

06.12.11

18:19

(41) дело не платформе

44

Shrek_yar

06.12.11

18:19

ну извините

45

Shrek_yar

06.12.11

18:20

придеться на сервере заполнять), про это я понял

46

БибиГон

06.12.11

18:20

(42) ну, он говорит что конфигурация одна и таже…

47

Shrek_yar

06.12.11

18:20

просто в прежней обработке возвращается на клиент все

48

Shrek_yar

06.12.11

18:21

конфа УНФ, но по моему это не имеет отношение, так как там и там она одна и одной версии

49

GROOVY

06.12.11

18:21

О, уже и обработки оказались разные…

50

Shrek_yar

06.12.11

18:22

&НаСервере

Функция ПолучитьМакет()

   ЭтотОбъект = РеквизитФормыВЗначение(«Объект»);

     Возврат ЭтотОбъект.ПолучитьМакет(«Макет»);

КонецФункции

&НаСервере

Функция ДайВидИТС(Вид)

Если Вид = Перечисления.ВидыИТС.ИТСПрофПлат Тогда

     Возврат 10;

ИначеЕсли    Вид = Перечисления.ВидыИТС.ИТСТехно Тогда    

   Возврат 4;      

ИначеЕсли    Вид = Перечисления.ВидыИТС.ИТСПрофБесплатный Тогда

   Возврат 16;      

ИначеЕсли    Вид = Перечисления.ВидыИТС.ИТСБюджет Тогда

   Возврат 7;      

ИначеЕсли    Вид = Перечисления.ВидыИТС.ИТСБюджетПроф Тогда

   Возврат 8;      

ИначеЕсли    Вид = Перечисления.ВидыИТС.ИТСБюджетПрофБесплатный Тогда

   Возврат 9;      

ИначеЕсли    Вид = Перечисления.ВидыИТС.ИТССтроительство Тогда

   Возврат 18;      

ИначеЕсли    Вид = Перечисления.ВидыИТС.ИТССтроительствоБесплатный Тогда

   Возврат 17;      

ИначеЕсли    Вид = Перечисления.ВидыИТС.ИТСМедицина Тогда

   Возврат 65;      

ИначеЕсли    Вид = Перечисления.ВидыИТС.ИТСПрофГоловной Тогда

   Возврат 19;      

ИначеЕсли    Вид = Перечисления.ВидыИТС.ИТСДляУдаленного Тогда

   Возврат 20;      

КонецЕсли;

   

КонецФункции // ДайВидИТС()

&НаСервере

Функция ДайМыло()

   
   Возврат Справочники.ВидыКонтактнойИнформации.EmailКонтрагента;

КонецФункции // ДайМыло()

&НаСервере

Функция ДайМыло2(Ссылка,Вид)

   Запрос = Новый Запрос;

   Запрос.Текст =

       «ВЫБРАТЬ

       |    КонтактнаяИнформация.Представление

       |ИЗ

       |    Справочник.Контрагенты.КонтактнаяИнформация КАК КонтактнаяИнформация

       |ГДЕ

       |    КонтактнаяИнформация.Ссылка = &Ссылка

       |    И КонтактнаяИнформация.Вид = &Вид»;

   Запрос.УстановитьПараметр(«Вид», Вид);

   Запрос.УстановитьПараметр(«Ссылка», Ссылка);

   Результат = Запрос.Выполнить();

   Выборка = Результат.Выбрать();

   Пока Выборка.Следующий() Цикл

       Возврат Выборка.Представление;

   КонецЦикла;

   

КонецФункции // ДайМыло2()

&НаСервере

Функция ДайПолнНаименование (Контрагент)

   Возврат  Контрагент.НаименованиеПолное;

КонецФункции // ДайПонНаименование (Контрагент)()

&НаСервере

Функция ДайИНН (Контрагент)

   Возврат  Контрагент.ИНН;

КонецФункции // ДайПонНаименование (Контрагент)()

&НаСервере

Функция ДайГород(Контрагент)

   Запрос = Новый Запрос;

   Запрос.Текст =

       «ВЫБРАТЬ

       |    Инфа.Город

       |ИЗ

       |    Справочник.Контрагенты.КонтактнаяИнформация КАК Инфа

       |ГДЕ

       |    Инфа.Ссылка = &Ссылка

       |    И Инфа.Вид.Наименование = «»Фактический адрес»»»;

   Запрос.УстановитьПараметр(«Ссылка», Контрагент);

   Результат = Запрос.Выполнить();

   Выборка = Результат.Выбрать();

   Пока Выборка.Следующий() Цикл

       Возврат Выборка.Город;

   КонецЦикла;

   КонецФункции // ДайГород()

&НаКлиенте

Процедура Заполнить()

попытка

   Макет = ПолучитьМакет();

   Эксель = Новый COMОбъект(«Excel.Application»);

   ИмяВременногоФайла = ПолучитьИмяВременногоФайла(«XLS»);

   Макет.Записать(ИмяВременногоФайла);

   Книга = Эксель.WorkBooks.Open(ИмяВременногоФайла);

   //Эксель.Documents.Open(ИмяВременногоФайла);

Исключение

   Сообщить(«Возможно у вас не установлена программа Microsoft Office: Word («+ОписаниеОшибки()+»)»);

   Возврат ;

конецпопытки;

Лист = Книга.WorkSheets(1);

i = 11;

j = 1;

Для каждого Стр из Таблица Цикл

   
 Контрагент = Стр.Контрагент;    

//  Договор = Стр.Договор;

 
 
 
 
 //— Заполнение строки Excel

 Книга.Sheets(1).Cells(i,1).Value  = j;

 Книга.Sheets(1).Cells(i,2).Value  = «13942-78»;

 Книга.Sheets(1).Cells(i,3).Value  = 1;

 Книга.Sheets(1).Cells(i,4).Value  = «32855-40»;

 Книга.Sheets(1).Cells(i,5).Value = ДайВидИТС(Стр.ВидИТС);

 Книга.Sheets(1).Cells(i,6).Value  = Стр.РегНомер;

 
 
 Книга.Sheets(1).Cells(i,7).Value  = ДайПолнНаименование(Стр.Контрагент);

 Книга.Sheets(1).Cells(i,8).Value  = ДайИНН (Стр.Контрагент);

 Книга.Sheets(1).Cells(i,9).Value  = Стр.КолВоРабМест;

 Книга.Sheets(1).Cells(i,10).Value  = «»;

 Книга.Sheets(1).Cells(i,11).Value  = «»;

 Книга.Sheets(1).Cells(i,12).Value  = Стр.Контакт;

 
 Книга.Sheets(1).Cells(i,13).Value  = «»;

 Книга.Sheets(1).Cells(i,14).Value  = ДайГород (Стр.Контрагент);   // фактический

 Книга.Sheets(1).Cells(i,15).Value  = «»;

 Книга.Sheets(1).Cells(i,16).Value  = «»;

 Книга.Sheets(1).Cells(i,17).Value  = «»;

 Книга.Sheets(1).Cells(i,18).Value  = «»;

 Книга.Sheets(1).Cells(i,19).Value  = Стр.КодГорода; //ручками

 Книга.Sheets(1).Cells(i,20).Value  = Стр.Телефон; //ручками

 Книга.Sheets(1).Cells(i,21).Value  = «»;

 Книга.Sheets(1).Cells(i,22).Value  = ДайМыло2(Стр.Контрагент, ДайМыло());

 Книга.Sheets(1).Cells(i,23).Value  = «»;

 Книга.Sheets(1).Cells(i,24).Value  = «»;

 Книга.Sheets(1).Cells(i,25).Value  = «»;

 Книга.Sheets(1).Cells(i,26).Value  = Формат(Стр.ДатаНачала,»ДФ=MM.yy»);

 Книга.Sheets(1).Cells(i,27).Value  = Стр.Выпусков;

 Книга.Sheets(1).Cells(i,28).Value  = Стр.Способ;

 Книга.Sheets(1).Cells(i,29).Value  = Стр.РегНомер1;

 Книга.Sheets(1).Cells(i,30).Value  = Стр.РегНомер2;

 Книга.Sheets(1).Cells(i,31).Value  = Стр.РегНомер3;

 Книга.Sheets(1).Cells(i,32).Value  = Стр.РегНомер4;

 Книга.Sheets(1).Cells(i,32).Value  = Стр.РегНомер5;

 //+ рег номера

 //— — — — — — — — —

 j = j + 1;

 i = i + 1;

КонецЦикла;    

   Попытка

       Книга.SaveAs(«C:\1.xls»);

   Исключение

       Сообщить(ОписаниеОшибки()+» Файл не сохранен!»);

   КонецПопытки;

   Эксель.Application.Quit();

   
   НоваяКартинка = БиблиотекаКартинок.СостояниеОбменаДаннымиУспех;

   Элементы.Заполнить.Картинка = НоваяКартинка;

   Элементы.Заполнить.Заголовок = «Заполнено!»;

КонецПроцедуры // Заполнить()

&НаСервере

Функция ДайРегНомера(Контрагент)

   Запрос = Новый Запрос;

   Запрос.Текст =

       «ВЫБРАТЬ

       |    Номера.РегНомер

       |ИЗ

       |    РегистрСведений.Номера КАК Номера

       |ГДЕ

       |    Номера.Контрагент = &Контрагент»;

   Запрос.УстановитьПараметр(«Контрагент»,Контрагент);

   Результат = Запрос.Выполнить();

//   Выборка = Результат.Выбрать();

   
   ТаблицаРезультатов = Результат.Выгрузить();

   МассивТоваров = ТаблицаРезультатов.ВыгрузитьКолонку(«РегНомер»);

   ДанныеВыбора = Новый СписокЗначений;

   ДанныеВыбора.ЗагрузитьЗначения(МассивТоваров);

   Элементы.ТаблицаРегНомер.СписокВыбора.ЗагрузитьЗначения(МассивТоваров);

   Элементы.ТаблицаРегНомер1.СписокВыбора.ЗагрузитьЗначения(МассивТоваров);

   Элементы.ТаблицаРегНомер2.СписокВыбора.ЗагрузитьЗначения(МассивТоваров);

   Элементы.ТаблицаРегНомер3.СписокВыбора.ЗагрузитьЗначения(МассивТоваров);

   Элементы.ТаблицаРегНомер4.СписокВыбора.ЗагрузитьЗначения(МассивТоваров);

   Элементы.ТаблицаРегНомер5.СписокВыбора.ЗагрузитьЗначения(МассивТоваров);

//    Пока Выборка.Следующий() Цикл

//        ДанныеВыбора.Добавить(Выборка.РегНомер);

//    КонецЦикла;

   
    Возврат ДанныеВыбора;

КонецФункции // ДайРегНомера()

&НаСервере

Функция ДайКонтакты(Контрагент)

   Запрос = Новый Запрос;

   Запрос.Текст =

       «ВЫБРАТЬ

       |    КонтактныеЛица.Представление

       |ИЗ

       |    Справочник.КонтактныеЛица КАК КонтактныеЛица

       |ГДЕ

       |    КонтактныеЛица.Владелец = &Контрагент»;

   Запрос.УстановитьПараметр(«Контрагент», Контрагент);

   Результат = Запрос.Выполнить();

   ТаблицаРезультатов = Результат.Выгрузить();

   МассивТоваров = ТаблицаРезультатов.ВыгрузитьКолонку(«Представление»);

   ДанныеВыбора = Новый СписокЗначений;

   ДанныеВыбора.ЗагрузитьЗначения(МассивТоваров);

   Элементы.ТаблицаКонтакт.СписокВыбора.ЗагрузитьЗначения(МассивТоваров);

   Возврат ДанныеВыбора;

КонецФункции // ДайКонтакты()

&НаКлиенте

Процедура ТаблицаКонтрагентПриИзменении(Элемент)

 Строка = Элементы.Таблица.ТекущиеДанные;    

 Список =  ДайРегНомера(Строка.Контрагент);

 Контакты = ДайКонтакты(Строка.Контрагент);

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

&НаКлиенте

Процедура Запустить(Команда)

   ЗапуститьПриложение(«C:\1.xls»);

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

&НаКлиенте

Процедура Отправить(Команда)

    Профиль = Новый ИнтернетПочтовыйПрофиль;

    Профиль.АдресСервераSMTP = «smtp.yandex.ru»;

    Профиль.ПортSMTP = 587;

    Профиль.Пользователь = «info@allzon.ru»;

    Профиль.Пароль = «38gjgeuftd»;

    Профиль.АутентификацияSMTP     = СпособSMTPАутентификации.Login;

    Профиль.ПарольSMTP           = «38gjgeuftd»;

    Профиль.ПользовательSMTP     = «info@allzon.ru»;

   
    Почта = Новый ИнтернетПочта;

    Попытка

       Почта.Подключиться(Профиль);

       
    Исключение

       Сообщить(«Ошибка при подключении к серверу» + ОписаниеОшибки());

       Возврат;

    КонецПопытки;

   
    Сообщение = Новый ИнтернетПочтовоеСообщение;

    Сообщение.Отправитель = «info@allzon.ru»;

    Сообщение.Получатели.Добавить(«itsrobot@1c.ru»);

    Сообщение.Тема = «Выгрузка ИТС»;

    Сообщение.Тексты.Добавить(«Сабж»,ТипТекстаПочтовогоСообщения.HTML);

    Сообщение.Вложения.Добавить(«C:\1.xls»);

    Почта.Послать(Сообщение);

    Почта.Отключиться();

   
    //Попытка

    //    УдалитьФайлы («C:\1.xls»);

    //Исключение

    //    Сообщить(ОписаниеОшибки());

    //КонецПопытки;

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

&НаСервере

Функция НайдиКонтрагента (Контрагент, РегНомер)

   Запрос = Новый Запрос;

   Запрос.Текст =

       «ВЫБРАТЬ

       |    Контрагенты.Ссылка

       |ИЗ

       |    Справочник.Контрагенты КАК Контрагенты

       |ГДЕ

       |    Контрагенты.НаименованиеПолное ПОДОБНО &Контрагент

       |    И (НЕ Контрагенты.ПометкаУдаления)»;

   Запрос.УстановитьПараметр(«Контрагент», Контрагент);

   Результат = Запрос.Выполнить();

   Выборка = Результат.Выбрать();

   Пока Выборка.Следующий() Цикл

       Возврат Выборка.Ссылка;

   КонецЦикла;

   
   Запрос = Новый Запрос;

   Запрос.Текст =

       «ВЫБРАТЬ

       |    Номера.Контрагент

       |ИЗ

       |    РегистрСведений.Номера КАК Номера

       |ГДЕ

       |    Номера.РегНомер = &РегНомер»;

   Запрос.УстановитьПараметр(«РегНомер», РегНомер);

   Результат = Запрос.Выполнить();

   Выборка = Результат.Выбрать();

   Пока Выборка.Следующий() Цикл

       Возврат Выборка.Контрагент;

   КонецЦикла;

       
   
   СпрК =  Справочники.Контрагенты.НайтиПоНаименованию(Контрагент);

   Если НЕ СпрК.ПометкаУдаления Тогда

       Возврат СпрК;

   КонецЕсли;

   
КонецФункции // НайдиКонтрагента (Контрагент)()

&НаСервере

Функция ПустойКонтрагент()

   Возврат Справочники.Контрагенты.ПустаяСсылка();

КонецФункции // ПустойКонтрагент()

&НаСервере

Функция ВидИТС (Строка)

Если строка = «ИТС Проф DVD Бесплатный» Тогда

   Возврат  Перечисления.ВидыИТС.ИТСПрофБесплатный;

ИначеЕсли строка = «ИТС Бюджет Проф» Тогда    

   Возврат  Перечисления.ВидыИТС.ИТСБюджетПроф;

ИначеЕсли строка = «ИТС Бюджет Проф Бесплатный» Тогда    

   Возврат  Перечисления.ВидыИТС.ИТСБюджетПрофБесплатный;

ИначеЕсли строка = «ИТС Технологическая поставка» Тогда    

   Возврат  Перечисления.ВидыИТС.ИТСТехно;    

ИначеЕсли строка = «ИТС для удаленного офиса» Тогда    

   Возврат  Перечисления.ВидыИТС.ИТСДляУдаленного;    

ИначеЕсли строка = «ИТС Франчайзинговый» Тогда    

   Возврат  Перечисления.ВидыИТС.Отсутствует;    

ИначеЕсли строка = «ИТС Проф DVD» Тогда    

   Возврат  Перечисления.ВидыИТС.ИТСПрофПлат;        

ИначеЕсли строка = «ИТС Строительство Бесплатный» Тогда    

   Возврат  Перечисления.ВидыИТС.ИТССтроительствоБесплатный;            

ИначеЕсли строка = «ИТС Медицина» Тогда    

   Возврат  Перечисления.ВидыИТС.ИТСМедицина;                

   
       
КонецЕсли;    

   

КонецФункции // ВидИТС()

&НаКлиенте

Функция Дата_(стрДата)

   стрДата_ = СокрЛП(СтрЗаменить(стрДата,».»,»»));

   датДата = Сред(стрДата_,5)+Сред(стрДата_,3,2)+Лев(стрДата_,2);

   Если СтрДлина(стрДата_)=6 Тогда

       датДата = «20»+датДата;

   КонецЕсли;            

   //Сообщить(датДата+»=»+стрДата);

   Попытка

       Возврат Дата(датДата);

   Исключение

       Возврат Дата(0);

   КонецПопытки;

КонецФункции    // Дата_

&НаКлиенте

Процедура Загрузить(Команда)

   перем ИмяФайла;

   Попытка

   Ex = Новый COMОбъект(«Excel.Application»);

   Ex.WorkBooks.Open(ИмяФайла);

   Состояние(«Обработка файла Microsoft Excel…»);

   Исключение

    ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);

    ДиалогВыбораФайла.Заголовок = «Прочитать табличный документ из файла»;

    ДиалогВыбораФайла.Фильтр    = «Лист Excel (*.xls)|*.xls|»;

   Если ДиалогВыбораФайла.Выбрать() Тогда

        ИмяФайла = ДиалогВыбораФайла.ПолноеИмяФайла;

   КонецЕсли;

   Ex = Новый COMОбъект(«Excel.Application»);

   Ex.WorkBooks.Open(ИмяФайла);

   
     КонецПопытки;

   Элементы.Состояние.Заголовок = «Открыт файл: » + ИмяФайла;

   
   i=7;

   j = 0;

   ActiveCell = Ex.ActiveCell.SpecialCells(11);

   RowCount = ActiveCell.Row;

       
   Пока (НЕ ПустаяСтрока(ex.Sheets(1).Cells(i,1).Value))  Цикл

       
       Строка = НайдиКонтрагента (строка(ex.Sheets(1).Cells(i,3).Value),строка(ex.Sheets(1).Cells(i,2).Value));

       Если Строка <> ПустойКонтрагент () Тогда

           Стр = Загрузка.Добавить();

           Стр.Контрагент = Строка;

           Стр.ВидИТС =  ВидИТС (ex.Sheets(1).Cells(i,7).Value);

           
           Стр.Дата  = Дата_(ex.Sheets(1).Cells(i,5).Value);

           
           
           j = j + 1;

       Иначе

           Сообщение = Новый СообщениеПользователю;

           Сообщение.Текст = «Не найден контрагент: » + строка(ex.Sheets(1).Cells(i,3).Value) + » с номером » + строка(ex.Sheets(1).Cells(i,2).Value);

           Сообщение.Сообщить();

       КонецЕсли;

       i = i + 1;

   КонецЦикла;    

Элементы.Состояние.Заголовок = Элементы.Состояние.Заголовок + » —  Загружено » + j + » позиций из » + (i-7) ;    

Ex.Application.Quit();    

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

&НаСервере

Процедура ИзменитьКонтрагента(Контрагент, ВидИТС, Дата)

   
СпрК = Контрагент.ПолучитьОбъект ();

СпрК.ВидИТС = ВидИТС;

СпрК.ДатаОкончанияПодпискиИТС = Дата;

СпрК.Записать ();

КонецПроцедуры // ИзменитьКонтрагента()

&НаКлиенте

Процедура ИзменитьПоСписку(Команда)

   сч = 0;

   Для каждого стр из Загрузка Цикл

    ИзменитьКонтрагента(Стр.Контрагент, Стр.ВидИТС, Стр.Дата);    

    сч = сч + 1;

   КонецЦикла;

   
   Сообщение = Новый СообщениеПользователю;

   Сообщение.Текст = «Записано » + сч + » контрагентов!»;

   Сообщение.Сообщить();

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

&НаКлиенте

Процедура ТаблицаПриАктивизацииСтроки(Элемент)

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

&НаСервере

Функция ОтобразитьТелефоны(Контрагент)

   Запрос = Новый Запрос;

   Запрос.Текст =

       «ВЫБРАТЬ

       |    Инфа.НомерТелефона

       |ИЗ

       |    Справочник.Контрагенты.КонтактнаяИнформация КАК Инфа

       |ГДЕ

       |    Инфа.Ссылка = &Ссылка

       |    И Инфа.Вид.Наименование = «»Телефон»»»;

   Запрос.УстановитьПараметр(«Ссылка», Контрагент);

   Результат = Запрос.Выполнить();

   Выборка = Результат.Выбрать();

   Пока Выборка.Следующий() Цикл

       Возврат Выборка.НомерТелефона;

   КонецЦикла;

   

КонецФункции // ОтобразитьТелефоны()

&НаКлиенте

Процедура ДайТелефон(Команда)

   Элементы.Телефоны.Заголовок = ОтобразитьТелефоны (Элементы.Таблица.ТекущиеДанные.Контрагент);

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

&НаСервере

Функция ПроверьДату(Дата)

   Если Дата > ТекущаяДата () Тогда

       Возврат ИСТИНА;

   ИначеЕсли (Месяц(Дата) = Месяц(ТекущаяДата ()))  И (Год(Дата) = Год(ТекущаяДата ())) Тогда

       Возврат ИСТИНА;

   КонецЕсли;

   Возврат Ложь;

КонецФункции // ПроверьДату()

&НаСервере

Функция ЕстьРасходная(Контрагент, ВидИТС, ДатаИТС)

 
   Запрос = Новый Запрос;

   Запрос.Текст =

       «ВЫБРАТЬ

       |    РасходнаяНакладнаяЗапасы.Номенклатура,

       |    РасходнаяНакладнаяЗапасы.Ссылка.Дата

       |ИЗ

       |    Документ.РасходнаяНакладная.Запасы КАК РасходнаяНакладнаяЗапасы

       |ГДЕ

       |    РасходнаяНакладнаяЗапасы.Ссылка.Организация = &Организация

       |    И РасходнаяНакладнаяЗапасы.Ссылка.Контрагент = &Контрагент»;

   Организация = Справочники.Организации.НайтиПоНаименованию(«Наша фирма.»);    

   Запрос.УстановитьПараметр(«Контрагент», Контрагент);

   Запрос.УстановитьПараметр(«Организация», Организация);

   Результат = Запрос.Выполнить();

   Выборка = Результат.Выбрать();

   Пока Выборка.Следующий() Цикл

       Если Выборка.Номенклатура = ДайИТСПоВиду (ВидИТС) Тогда

           Если Выборка.Дата <> «00010101» Тогда

               Если ПроверьДату (Дата(Выборка.Дата)) Тогда

                    Возврат Истина;

               КонецЕсли;

           КонецЕсли;    

       КонецЕсли;    

   КонецЦикла;

   Возврат Ложь;

КонецФункции // ЕстьРасходная()

&НаСервере

Функция АктуальныеКонтрагенты ()

     
   Запрос = Новый Запрос;

   Запрос.Текст =

       «ВЫБРАТЬ

       |    Контрагенты.Ссылка КАК Ссылка,

       |    Контрагенты.ДатаОкончанияПодпискиИТС КАК Дата,

       |   Контрагенты.ВидИТС КАК ВидИТС

       |ИЗ

       |    Справочник.Контрагенты КАК Контрагенты

       |ГДЕ

       |    (НЕ Контрагенты.ЭтоГруппа)»;

   Результат = Запрос.Выполнить();

   Выборка = Результат.Выбрать();

   Сп = Новый ТаблицаЗначений;

   Сп.Колонки.Добавить(«Контрагент»);

   Сп.Колонки.Добавить(«Дата»);

   Сп.Колонки.Добавить(«ВидИТС»);

   Сп.Колонки.Добавить(«Метка»);

   Сп.Колонки.Добавить(«Город»);

   
   Пока Выборка.Следующий() Цикл

      Если Выборка.Дата <> «00010101» Тогда

       Если ПроверьДату (Дата(Выборка.Дата)) Тогда

        Если НЕ ЕстьРасходная (Выборка.Ссылка, Выборка.ВидИТС, Выборка.Дата) Тогда    

           Строка = Сп.Добавить();

           Строка.Контрагент = Выборка.Ссылка;

           Строка.Дата = Выборка.Дата;

           Строка.ВидИТС = Выборка.ВидИТС;

           Строка.Город = ДайГород(Выборка.Ссылка);

        Иначе

           Строка = Сп.Добавить();

           Строка.Контрагент = Выборка.Ссылка;

           Строка.Дата = Выборка.Дата;

           Строка.ВидИТС = Выборка.ВидИТС;

           Строка.Город = ДайГород(Выборка.Ссылка);

           Строка.Метка = 1;

        КонецЕсли;    

           
       КонецЕсли;    

      КонецЕсли;

   КонецЦикла;

       
   Возврат Сп;

КонецФункции // АктуальныеКонтрагенты()

&НаКлиенте

Процедура ЗаполнитьДокументы(Команда)

   
   
   Список = АктуальныеКонтрагенты ();

   Документы.Очистить();

   
   Для каждого элем из Список Цикл

    Стр = Документы.Добавить();    

    Стр.Контрагент = элем.Контрагент;

    Стр.Дата = элем.Дата;

    Стр.ВидИТС = элем.ВидИТС;

     Стр.Город = элем.Город;

    Если Элем.Метка = 1 Тогда

     Стр.Метка = Истина;    

     //Элементы.Документы.ТекущийЭлемент.Шрифт = Новый Шрифт(,,Истина);

    КонецЕсли;

   КонецЦикла;    

Документы.Индекс(«Контрагент»);

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

&НаСервере

Функция ДайИТСПоВиду(ВидИТС)

   Если ВидИТС = Перечисления.ВидыИТС.ИТСПрофБесплатный Тогда

     Возврат Справочники.Номенклатура.НайтиПоКоду(«00000000266»);

   ИначеЕсли ВидИТС = Перечисления.ВидыИТС.ИТСБюджетПроф Тогда    

     Возврат Справочники.Номенклатура.НайтиПоКоду(«00000000268»);

   ИначеЕсли ВидИТС = Перечисления.ВидыИТС.ИТСБюджетПрофБесплатный Тогда    

     Возврат Справочники.Номенклатура.НайтиПоКоду(«00000000268»);

   ИначеЕсли ВидИТС = Перечисления.ВидыИТС.ИТСТехно Тогда    

     Возврат Справочники.Номенклатура.НайтиПоКоду(«00000000271»);

   ИначеЕсли ВидИТС = Перечисления.ВидыИТС.ИТСДляУдаленного Тогда    

     Возврат Справочники.Номенклатура.НайтиПоКоду(«00000000272»);

   ИначеЕсли ВидИТС = Перечисления.ВидыИТС.Отсутствует Тогда    

     Возврат Справочники.Номенклатура.ПустаяСсылка();

   ИначеЕсли ВидИТС = Перечисления.ВидыИТС.ИТСПрофПлат Тогда    

     Возврат Справочники.Номенклатура.НайтиПоКоду(«00000000266»);

   ИначеЕсли ВидИТС = Перечисления.ВидыИТС.ИТССтроительствоБесплатный Тогда    

     Возврат Справочники.Номенклатура.НайтиПоКоду(«00000000269»);

   ИначеЕсли ВидИТС = Перечисления.ВидыИТС.ИТСМедицина Тогда

     Возврат Справочники.Номенклатура.НайтиПоКоду(«00000000270»);

   КонецЕсли;

КонецФункции // ДайИТСПоВиду()

&НаСервере

Процедура ЗаполнитьДокументНаСервере(ДанныеФормы, Контрагент, ВидИТС)

Док = ДанныеФормыВЗначение(ДанныеФормы, Тип(«ДокументОбъект.РасходнаяНакладная»));

Док.Дата = ТекущаяДата ();

Док.Организация = Справочники.Организации.НайтиПоНаименованию («Наша фирма.»);

Док.Контрагент = Контрагент;

Док.ВидОперации = Перечисления.ВидыОперацийРасходнаяНакладная.ПродажаПокупателю;

Док.Договор = Контрагент.ДоговорПоУмолчанию;

Док.ВалютаДокумента = Справочники.Валюты.НайтиПоКоду («643»);

Строка = Док.Запасы.Добавить();

Строка.Количество = 1;

Строка.Номенклатура =ДайИТСПоВиду (ВидИТС);

Строка.ЕдиницаИзмерения = Строка.Номенклатура.ЕдиницаИзмерения;

Строка.СтавкаНДС = Строка.Номенклатура.СтавкаНДС;

ЗначениеВДанныеФормы(Док,ДанныеФормы);    

КонецПроцедуры // ЗаполнитьДокументНаСервере()

&НаКлиенте

Процедура РасходныеНакладные(Команда)

   
   Для каждого Строка из Документы Цикл

       Форма = ПолучитьФорму(«Документ.РасходнаяНакладная.ФормаОбъекта»);

       ДанныеФормы = Форма.Объект;

       ЗаполнитьДокументНаСервере(ДанныеФормы, Строка.Контрагент, Строка.ВидИТС);

       КопироватьДанныеФормы(ДанныеФормы, Форма.Объект);

       Форма.Записать();

   КонецЦикла;    

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

&НаКлиенте

Процедура ТаблицаРегНомерПриИзменении(Элемент)

 Строка = Элементы.Таблица.ТекущиеДанные;    

 Список =  ДайРегНомера(Строка.Контрагент);

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

&НаКлиенте

Процедура УдалитьПомеченныхКонтрагентов(Команда)

   
   //Документы.Очистить();

   //

   //Список = АктуальныеКонтрагенты ();

   //Документы.Очистить();

   //

   //Для каждого элем из Список Цикл

   // Если Элем.Метка <> 1 Тогда    

   //    Стр = Документы.Добавить();    

   //    Стр.Контрагент = элем.Контрагент;

   //    Стр.Дата = элем.Дата;

   //    Стр.ВидИТС = элем.ВидИТС;

   // КонецЕсли;

   //КонецЦикла;

   
   СписокСтрок = Новый Массив();

  Для Каждого Эл Из Документы Цикл

      Если Эл.Метка Тогда

          СписокСтрок.Добавить(Эл);

      КонецЕсли;

  КонецЦикла;

   // КоличествоСтрок = СписокСтрок.Количество();

  Для каждого Стр Из СписокСтрок  Цикл        

      Документы.Удалить(Стр);    

  КонецЦикла;

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

&НаКлиенте

Процедура ПриОткрытии(Отказ)

   //Элементы.Документы.Контрагент.НомерСоглашения.Доступность=Истина;

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

51

Shrek_yar

06.12.11

18:22

обработка одна и таже

52

Shrek_yar

06.12.11

18:24

&НаСервере

Функция АктуальныеКонтрагенты ()

  Возврат Сп;

КонецФункции //

53

Shrek_yar

06.12.11

18:25

(47)это если передалать придеться, чтоб на сервере запонялась

54

GROOVY

06.12.11

18:25

Жесть. Почитайте Радченко. Откройте для себя директиву &НаСервереБезКонтекста. Разберитесь как работают УФ.

55

Shrek_yar

06.12.11

18:25

(54) ок. пойду в библиотеку

56

Shrek_yar

06.12.11

18:26

спасибо за внимание всем, и за советы)

57

GROOVY

06.12.11

18:28

58

Shrek_yar

08.12.11

15:27

&НаКлиенте

Процедура Сформировать(Команда)

Доки.Очистить();  

НайтиДоговора();

     

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

&НаСервереБезКонтекста

Процедура НайтиДоговора()

   
   Запрос = Новый Запрос;

   Запрос.Текст =

   «ВЫБРАТЬ

       |    ДоговорыКонтрагентовТаблица.Ссылка.Владелец.Ссылка как Ссылка,

       |    ДоговорыКонтрагентовТаблица.Дата,

       |    ДоговорыКонтрагентовТаблица.Сумма,

       |    ДоговорыКонтрагентовТаблица.Ссылка.Наименование как ВидДоговора

       
       
       |ИЗ

       |    Справочник.ДоговорыКонтрагентов.Таблица КАК ДоговорыКонтрагентовТаблица

       |    ГДЕ

       |ДоговорыКонтрагентовТаблица.Дата > &ДатаСег

       |И ДоговорыКонтрагентовТаблица.Дата < &ДатаДок  «;

Запрос.УстановитьПараметр(«ДатаСег»,ТекущаяДата());

Запрос.УстановитьПараметр(«ДатаДок»,НачалоДня(ТекущаяДата())+864000);

   Результат = Запрос.Выполнить();

   Выборка = Результат.Выбрать();

   
   Сп = Новый ТаблицаЗначений;

   Сп.Колонки.Добавить(«Дата»);  

   Сп.Колонки.Добавить(«Контрагент»);

   Сп.Колонки.Добавить(«ВидДоговора»);

   Сп.Колонки.Добавить(«Сумма»);

   
   Пока Выборка.Следующий() Цикл

       строка = сп.Добавить();

       Строка.Контрагент = Выборка.ссылка;

       строка.Дата = Выборка.Дата;

       строка.ВидДоговора =Выборка.ВидДоговора;

       строка.сумма = выборка.сумма;

   КонецЦикла;

   
   //

       
   Для каждого строчка из сп Цикл

    Стр = Доки.Добавить();    

    Стр.Контрагент = строчка.Контрагент;

    Стр.Дата = строчка.Дата;

    Стр.ВидДоговора = строчка.ВидДоговора;

    Стр.сумма = строчка.сумма;

   КонецЦикла;    

 /// Доки — таблица значений на форме, но пишет ошику что якобы ее нельзя заполнять на сервере

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

59

Shrek_yar

08.12.11

15:27

вот код который сделал, как заполнить таблицу на форме

60

Shrek_yar

08.12.11

15:32

(40) как заполнить , выдает ошибку

{Обработка.НайтиДоговораНаОплату.Форма.Форма.Форма(4)}: Ошибка при установке значения атрибута контекста (Доки)

 НайтиДоговора(Доки);

Нельзя изменять поле, содержащее объект данных формы

61

Shrek_yar

08.12.11

15:36

(57)это прочитал)

62

Shrek_yar

08.12.11

15:36

кто нибудь может подсказать, так сказать на путь истиный наставить))??

63

Shrek_yar

08.12.11

15:37

чтоб все в тонком клиенте работало

64

Shrek_yar

08.12.11

15:51

ап ап ап )

65

Shrek_yar

08.12.11

15:51

мож кто хоть идейку?

66

Shrek_yar

08.12.11

15:51

&НаСервереБезКонтекста — может ли с такой директивой, или надо с &НаСервере

67

Shrek_yar

08.12.11

15:58

никто не знает7

68

Shrek_yar

08.12.11

16:43

а,    GROOVY, тут нет?)

69

ЧеловекДуши

09.12.11

07:40

Автор идъётЪ :)

…жги еще :)

70

ЧеловекДуши

09.12.11

07:41

+ ДНК — не излечим :)

71

jk3

09.12.11

14:32

Какой шикарный баг: если между тэгами [ 1C ] [ /1C ] есть код (1), то это тоже считается за ссылку на сообщение темы.

Только не говорите, что это фича =)))

72

Shrek_yar

09.12.11

15:40

(69)не человек ты

73

Shrek_yar

09.12.11

15:41

(71) )))

74

Jaffar

09.12.11

17:36

(71) а почему только (1)? там на самом деле и (0), и (2), и (3), и т.д. :-)

75

jk3

09.12.11

17:50

(74) сообщение (1) самое популярное и мы сейчас добавляем этому сообщению популярности своими постами =))

Добрый день. Сегодня наступил на интересные грабли:

Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: param Форма: Элемент Тип: {http://www.w3.org/2001/XMLSchema}anyType
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа ‘{http://v8.1c.ru/8.1/data/core}ValueTable’

Подобная ошибка возникает при попытке передать с клиента на сервер таблицу значений, и это мне давно известно, однако я получил эту ошибку без явной передачи таблицы. Вот часть кода с которым произошла ошибка:

&НаКлиенте
Процедура Заполнить(Команда)
тМассив = Новый Массив;
тМассив .Добавить(Объект.Организация);
ПоискНаСервере(тМассив);
КонецЕсли;
КонецПроцедуры

Процедура ПоискСсылокНаСервере(тМассив, тОсновнаяТаблица = Неопределено)

тДанныеВФорму = Ложь;

Если тОсновнаяТаблица = Неопределено Тогда

тОсновнаяТаблица = Новый ТаблицаЗначений;

тОсновнаяТаблица.Колонки.Добавить(«Ссылка»);

тДанныеВФорму = Истина;

КонецЕсли; 

<<<<>>>>>>

Если <<<<>>>>>> Тогда 

ПоискСсылокНаСервере(МассивСсылок,тОсновнаяТаблица);

КонецЕсли;

Если тДанныеВФорму Тогда

ЗначениеВРеквизитФормы(тОсновнаяТаблица,»ТаблицаСсылок»);

КонецЕсли;

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

В этом  коде процедура  с клиента вызывает выполнение кода на сервере, с одним единственным параметром, — массив ссылок. Хотя в процедуре есть два входящих параметра это массив и таблица значение — которая является не обязательным параметром и используется при рекурсивном вызове. И не смотря на то что при вызове с клиента на сервер мы не используем второй параметр, приложение пытается отправить данное значение на клиент и мы получаем вышеописанную ошибку. Выход из данной ситуации один перед возвратом на клиент убить таблицу написав код:

тОсновнаяТаблица = Неопределено

На сегодня все.

Ошибка отображения типов

Автор mahaidor, 17 апр 2014, 17:22

0 Пользователей и 1 гость просматривают эту тему.

Здравствуйте.Платформа 1с 8.3.437 . Выгружаю результат запроса в таблицу значений, в ответ возникает ошибка отображение типов: отсутствует отображение типа ValueTable.

&НаКлиенте
Процедура Ант_Вес_РостПриИзменении(Элемент)
Возраст=СТрока(Объект.Возраст);
Пол=Объект.Пол;
//обращение к табличной чати
СтрТабЧ=Элементы.Ант_Вес_Рост.ТекущиеДанные;
СтрокаВыборки=ВыборРезультатаЗапросаРоста(Возраст,Пол);

//СтрТабЧ.ОценкаРоста=ВыборРезультатаЗапроса(Возраст,Пол);

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

&НаКлиенте
Функция ВыборРезультатаЗапросаРоста(Возраст,Пол)
Рез=ВыборСтрокиКритериевРоста(Возраст,Пол);
Возврат Рез;
КонецФункции

Функция ВыборСтрокиКритериевРоста(Возраст,Пол)
Запрос=Новый Запрос;
Запрос.Текст=
"ВЫБРАТЬ
| КритерийРоста.Р_1,
| КритерийРоста.Р_2,
| КритерийРоста.Р_3,
| КритерийРоста.Р_4,
| КритерийРоста.Р_5,
| КритерийРоста.Р_6
| ИЗ Справочник.ТаблицаРоста КАК КритерийРоста
|ГДЕ КритерийРоста.Наименование=&Возраст и КритерийРоста.Пол=&Пол";
Запрос.УстановитьПараметр("Возраст",Возраст);
Запрос.УстановитьПараметр("Пол",Пол);
     РезультатЗапроса = Запрос.Выполнить();
ТблЗн=РезультатЗапроса.Выгрузить();
  Возврат ТблЗн;

    КонецФункции


Да действительно нельзя передавать таблицу значений с сервера на клиент. Мутабельные переменные не передаются между серверным и клиентским контекстом. Попробуйте максимально перенести логику выполнения на сервер, а  на клиенте получайте уже готовый результат.

Так же можно использовать временное хранилище для передачи таких значений.


Цитата: MuI_I_Ika от 17 апр 2014, 19:17
Да действительно нельзя передавать таблицу значений с сервера на клиент. Мутабельные переменные не передаются между серверным и клиентским контекстом. Попробуйте максимально перенести логику выполнения на сервер, а  на клиенте получайте уже готовый результат.

Так же можно использовать временное хранилище для передачи таких значений.

То есть вы имеете ввиду, что можно использовать объект «Хранилище значений» для передачи таблицы значений?


Не ХранилищеЗначений, а временное хранилище — серверный объект, как раз применяющийся для передачи данных с сервера на клиент. Поищите примеры, как в управляемом приложении реализован подбор товаров.

Получил помощь — скажи СПАСИБО.
Разобрался сам — расскажи другим.


Про временные хранилища узнал, но решил их не использовать, просто обработал таблицу значений в функции, выполняемой в контексте сервера.

&НаКлиенте
Процедура Ант_Вес_РостПриИзменении(Элемент)
Возраст=СТрока(Объект.Возраст);
Пол=Объект.Пол;
//обращение к табличной чати
СтрТабЧ=Элементы.Ант_Вес_Рост.ТекущиеДанные;
Рост=СтрТабЧ.Рост;
СтрТабЧ.ОценкаРоста=ВыборКритерияРоста(Возраст,Пол,Рост);
КонецПроцедуры

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


Вопрос решен, всем спасибо.


Описание ошибки
При попытке просмотреть результат выполнения кода в отдельном окне, кликнув для этого по гиперссылке результата, появляется окно с ошибкой отображения типов.

Сценарий воспроизведения
Открыть консоль кода, ввести в поле редактора следующий код:
Результат = "0";
Нажать кнопку «Выполнить». Убедиться, что в группе формы отобразился корректный результат выполнения кода.
Кликнуть ЛКМ по гиперссылке «0» напротив результата. Появится окно с ошибкой следующего содержания:

Ошибка отображения типов:
Отсутствует отображение для типа ‘{http://v8.1c.ru/8.1/data/core}ValueTable’
{InfostartToolkit Обработка.ИТК_КонсольРазработчика.Форма.Основная.Форма(441)}: РезультатВыполнения = ПолучитьИзВременногоХранилища(ТекущийРезультат.Адрес);

по причине:
Ошибка получения значения из временного хранилища
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: {http://v8.1c.ru/8.2/mngsrv/ws}response Форма: Элемент Тип: {http://v8.1c.ru/8.1/data/core}Structure
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: Value Форма: Элемент Тип: {http://www.w3.org/2001/XMLSchema}anyType
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа ‘{http://v8.1c.ru/8.1/data/core}ValueTable’

Ожидаемое поведение, если бы ошибки не было
Должно открыться диалоговое окно с полученным результатом выполнения кода.

Скриншоты
image

Окружение:
Infostart Toolkit 2.0.0

Платформа: 8.3.17.1989 (Linux x86-64)
Режим БД: клиент-серверный

Конфигурация:
1С:Комплексная автоматизация 2 (2.5.6.220)
Основной режим запуска: Управляемое приложение
Режим совместимости: Версия8_3_16
Версия БСП: 3.1.3.535

Клиент:
ОС: Windows x86-64 (Microsoft Windows 10 version 10.0 (Build 17763))
Язык: ru
Режим запуска: Управляемое приложение

Понравилась статья? Поделить с друзьями:

Интересное по теме:

  • 1с ошибка ожидается выражение выбрать
  • 1с ошибка обсуждение уже существует
  • 1с ошибка обращения к серверу 1с предприятия
  • 1с ошибка обращения к интернет поддержке
  • 1с ошибка обработки представления регистрбухгалтерии хозрасчетный остатки

  • Добавить комментарий

    ;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: