Ошибка отображения типов отсутствует отображение для типа кодвозвратадиалога

Я
   JuixyJes

16.07.19 — 11:53

{Документ.ПриходныйКассовыйОрдер.Форма.ФормаДокумента.Форма(93)}: Ошибка при вызове метода контекста (ОплатаДопУслуг)

            ОплатаДопУслуг(Объект.ПринятоОт)

по причине:

Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.

по причине:

Ошибка преобразования данных XDTO:

Запись значения свойства ‘ret’:

    форма: Элемент

    имя: {http://v8.1c.ru/8.2/managed-application/modules}ret

по причине:

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

Отсутствует отображение для типа ‘ФормаКлиентскогоПриложения’

Помогите пожалуйста, не могу понять в чем дело.

   JuixyJes

1 — 16.07.19 — 11:54

Функция ОплатаДопУслуг (ФЛ)

Выб = Документы.ДопУслуга.Выбрать();

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

Если Строка(Выб.ФизЛицо) = Строка(ФЛ)  Тогда

Об = Выб.Ссылка.ПолучитьФорму(«ФормаДокумента»,Выб);

КонецЕсли;

КонецЦикла;

Возврат Об

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

&НаКлиенте

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

    Если (Объект.СуммаДокумента = 0)  Тогда

        Ответ = Вопрос(«Не оплачены дополнительные услуги, оплатить сейчас?»,РежимДиалогаВопрос.ДаНет);

        Если Ответ = КодВозвратаДиалога.Да Тогда

            ОплатаДопУслуг(Объект.ПринятоОт)

        КонецЕсли;

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

   JuixyJes

2 — 16.07.19 — 11:55

При попытке открыть форму созданного документа Доп Услуги выдается ошибка из (0)

   JuixyJes

3 — 16.07.19 — 11:56

Не понимаю, что я не так передаю на сервер?

   JuixyJes

4 — 16.07.19 — 11:58

Есть предположение, что я Объект.ПринятоОт передаю на сервер и на это ругается.

   sqr4

5 — 16.07.19 — 11:58

кто тебя научил формы на сервере открывать?

   sqr4

6 — 16.07.19 — 11:59

Есть предложение на фото в купальнике)

   JuixyJes

7 — 16.07.19 — 12:00

(5) никто, потому и спрашиваю. Мне нужно впринципе открыть документ уже созданный.

   hhhh

8 — 16.07.19 — 12:02

(7) открывают на &Клиенте. Запросы к базе наоборот, &НаСервере. Запиши у себя где-нибудь на бумажке.

   sqr4

9 — 16.07.19 — 12:03

Получаешь ссылку, возвращаешь на клиент, открываешь форму, кидаешь фото на форум! Все!

   Zmich

10 — 16.07.19 — 12:05

Поиск нужного документа тоже оставляет желать лучшего. Все документы перебирать один за другим, да и еще преобразовывать что-то в строку — мягко говоря, не оптимальное решение.

   hhhh

11 — 16.07.19 — 12:07

(4) да, там есть уже физлицо в документе, не надо ПринятоОт колбасить.

   catena

12 — 16.07.19 — 12:16

(4)Думаешь, он именно поэтому написал, что не умеет отображать ФормаКлиентскогоПриложения?

  

D_E_S_131

13 — 16.07.19 — 12:25

1. Для открытия формы должно быть где-то «ОткрытьФорму()».

2. Что бы открыть форму имеющегося документа, нужно передать ссылку в параметр формы «Ключ».

3. Что бы не открывать текущую форму, нужно ПриОткрытии сделать «Отказ=Истина».

Я
   JuixyJes

16.07.19 — 11:53

{Документ.ПриходныйКассовыйОрдер.Форма.ФормаДокумента.Форма(93)}: Ошибка при вызове метода контекста (ОплатаДопУслуг)

            ОплатаДопУслуг(Объект.ПринятоОт)

по причине:

Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.

по причине:

Ошибка преобразования данных XDTO:

Запись значения свойства ‘ret’:

    форма: Элемент

    имя: {http://v8.1c.ru/8.2/managed-application/modules}ret

по причине:

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

Отсутствует отображение для типа ‘ФормаКлиентскогоПриложения’

Помогите пожалуйста, не могу понять в чем дело.

   JuixyJes

1 — 16.07.19 — 11:54

Функция ОплатаДопУслуг (ФЛ)

Выб = Документы.ДопУслуга.Выбрать();

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

Если Строка(Выб.ФизЛицо) = Строка(ФЛ)  Тогда

Об = Выб.Ссылка.ПолучитьФорму(«ФормаДокумента»,Выб);

КонецЕсли;

КонецЦикла;

Возврат Об

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

&НаКлиенте

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

    Если (Объект.СуммаДокумента = 0)  Тогда

        Ответ = Вопрос(«Не оплачены дополнительные услуги, оплатить сейчас?»,РежимДиалогаВопрос.ДаНет);

        Если Ответ = КодВозвратаДиалога.Да Тогда

            ОплатаДопУслуг(Объект.ПринятоОт)

        КонецЕсли;

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

   JuixyJes

2 — 16.07.19 — 11:55

При попытке открыть форму созданного документа Доп Услуги выдается ошибка из (0)

   JuixyJes

3 — 16.07.19 — 11:56

Не понимаю, что я не так передаю на сервер?

   JuixyJes

4 — 16.07.19 — 11:58

Есть предположение, что я Объект.ПринятоОт передаю на сервер и на это ругается.

   sqr4

5 — 16.07.19 — 11:58

кто тебя научил формы на сервере открывать?

   sqr4

6 — 16.07.19 — 11:59

Есть предложение на фото в купальнике)

   JuixyJes

7 — 16.07.19 — 12:00

(5) никто, потому и спрашиваю. Мне нужно впринципе открыть документ уже созданный.

   hhhh

8 — 16.07.19 — 12:02

(7) открывают на &Клиенте. Запросы к базе наоборот, &НаСервере. Запиши у себя где-нибудь на бумажке.

   sqr4

9 — 16.07.19 — 12:03

Получаешь ссылку, возвращаешь на клиент, открываешь форму, кидаешь фото на форум! Все!

   Zmich

10 — 16.07.19 — 12:05

Поиск нужного документа тоже оставляет желать лучшего. Все документы перебирать один за другим, да и еще преобразовывать что-то в строку — мягко говоря, не оптимальное решение.

   hhhh

11 — 16.07.19 — 12:07

(4) да, там есть уже физлицо в документе, не надо ПринятоОт колбасить.

   catena

12 — 16.07.19 — 12:16

(4)Думаешь, он именно поэтому написал, что не умеет отображать ФормаКлиентскогоПриложения?

  

D_E_S_131

13 — 16.07.19 — 12:25

1. Для открытия формы должно быть где-то «ОткрытьФорму()».

2. Что бы открыть форму имеющегося документа, нужно передать ссылку в параметр формы «Ключ».

3. Что бы не открывать текущую форму, нужно ПриОткрытии сделать «Отказ=Истина».

Прочитай, хотя бы, Митичкина «Разработка в системе 1С:Предприятие 8». Волшебник

ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку «Обновить» в браузере.

Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.

Подскажите как с этим боротся — ошибка вот такого плана в толстом клиенте все нормально, а надо вызывать на тонком:{Документ.ГрафикПроизводства.Команда.ОтправитьВОптимизацию.МодульКоманды(32)}: Ошибка при вызове метода контекста (СервСформировать2)
    Результат = СервСформировать2(ДокументыДляОптимизации,КолВГруппе);
по причине:
Ошибка при вызове серверного метода.
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: ret   Форма: Элемент   Тип: {http://www.w3.org/2001/XMLSchema}anyType
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: Value   Форма: Элемент   Тип: {http://www.w3.org/2001/XMLSchema}anyType
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа ‘{http://v8.1c.ru/8.1/data/core}ValueTable’

2 метода на клиенте и на сервере, вот сам код:


&НаКлиенте
Процедура ВыполнитьОптимизацию(ДокументыДляОптимизации)   

РежимРаботы  = Вопрос("Группировать по пакетам?",РежимДиалогаВопрос.ДаНетОтмена,,КодВозвратаДиалога.Нет);
Группировать = Ложь;
Если РежимРаботы = КодВозвратаДиалога.Отмена Тогда
Возврат
КонецЕсли;

Если РежимРаботы = КодВозвратаДиалога.Да Тогда
КолВГруппе = 60;
ВвестиЧисло(КолВГруппе,"Количество Изделий в группировке",3,0);
Группировать = Истина;
Иначе
КолВГруппе = 0;
КонецЕсли;

РаботаСОптимизацией.ОбработатьДокументы(ДокументыДляОптимизации, КолВГруппе, Группировать);

Предупреждение("Оптимизация выполнена", 5);


    Результат = СервСформировать2(ДокументыДляОптимизации,КолВГруппе);
Если Вопрос("Проставить КИС в график?", РежимДиалогаВопрос.ДаНет)=КодВозвратаДиалога.Да Тогда

ГрафикПроизв(ДокументыДляОптимизации);

ФормаОбр = ПолучитьФорму("Обработка.КИСВГрафиках.Форма.Форма");

Если Результат.Количество() Тогда
Для Каждого Строка Из Результат[0] Цикл
Если КолВГруппе = 0 Тогда
НоваяСтрока = ФормаОбр.Объект.ТабличнаяЧастьСоответствие.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока,Строка);
Иначе
Расчет = Окр(Строка.Количество / КолВГруппе);
Для п =0 По Расчет+2 Цикл
Если п <> 0 и п <> 1 Тогда
НоваяСтрока = ФормаОбр.Объект.ТабличнаяЧастьСоответствие.Добавить();

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

ЗаполнитьЗначенияСвойств(НоваяСтрока,Строка);
КонецЕсли;
КонецЦикла;
КонецЕсли;

Значение =0;
//Значение2 =0;
Для п =0 По ФормаОбр.Объект.ТабличнаяЧастьСоответствие.Количество()-1 Цикл
Отбор = Новый Структура;
Отбор.Вставить("ИмяФайла",ФормаОбр.Объект.ТабличнаяЧастьСоответствие[п].ИмяФайла);
// Отбор.Вставить("Материал",ФормаОбр.Объект.ТабличнаяЧастьСоответствие[п].Материал);
НадСтроки = ФормаОбр.Объект.ТабличнаяЧастьСоответствие.НайтиСтроки(Отбор);
КонецЦикла;

  Для п = 0 По НадСтроки.Количество()-1 Цикл
Значение = Значение + НадСтроки[п].Количество;
КонецЦикла;

НоваяСтрока = ФормаОбр.Объект.ТабличнаяЧастьСоответствие.Добавить();
//Строка.КоличествоФакт = Строка[3] - Значение2 ;
Строка.Количество = Строка[3] - Значение ;
ЗаполнитьЗначенияСвойств(НоваяСтрока,Строка);
КонецЦикла;

Иначе
Вопрос("В выбранных нарядах отсутствуют материалы." , РежимДиалогаВопрос.ОК);
Возврат
КонецЕсли;

ФормаОбр.Объект.ОснованиеГрафикПроизводства = ДокументыДляОптимизации;
ФормаОбр.Объект.КИСПроставлен = ДокументыДляОптимизации[0].КИСПроставлен;
ФормаОбр.ОткрытьМодально();
КонецЕсли;

КонецПроцедуры // ВыполнитьОптимизацию()

&НаСервере
Функция СервСформировать2(ПараметрКоманды, КолВГруппе =0) Экспорт

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ГрафикПроИзводстваНаряды.Документ,
| ГрафикПроИзводстваНаряды.Группировка КАК Группировка
|ИЗ
| Документ.ГрафикПроизводства.Наряды КАК ГрафикПроИзводстваНаряды
|ГДЕ
| ГрафикПроИзводстваНаряды.Ссылка = &Ссылка
|
|УПОРЯДОЧИТЬ ПО
| Группировка,
| ГрафикПроИзводстваНаряды.НомерСтроки";

МассОпераций = Новый Массив;
МассОпераций.Добавить("Раскрой");
МассОпераций.Добавить("Пленка");

Запрос.УстановитьПараметр("Операции", МассОпераций);
Запрос.УстановитьПараметр("Ссылка", ПараметрКоманды[0].Ссылка);
Результат = Запрос.Выполнить().Выгрузить();

//РаскройТаблицаДанных = Новый ТаблицаЗначений;
//ПленкаТаблицаДанных = Новый ТаблицаЗначений;
РаскройТаблицаДанных = Неопределено;
ПленкаТаблицаДанных = Неопределено;

Для Каждого Строка Из Результат Цикл
РаскройТаблицаДанныхИтоговая = Строка.Документ.Запасы.Выгрузить();
РаскройТаблицаДанныхИтоговая.Колонки["Номенклатура"].Имя = "Материал";
РаскройТаблицаДанныхИтоговая.Колонки["НомерСтроки"].Имя = "Номер";
РаскройТаблицаДанныхИтоговая.Колонки["КоличествоРасчетное"].Имя = "КоличествоФакт";
РаскройТаблицаДанныхИтоговая.Свернуть("КИС, Количество, КоличествоФакт, ПланыРаскроя, Номер, Материал");

РаскройТаблицаДанныхИтоговая.Колонки.Добавить("Группировка");
РаскройТаблицаДанныхИтоговая.Колонки.Добавить("НарядВПроизводство");
РаскройТаблицаДанныхИтоговая.Колонки.Добавить("ИмяФайла");
РаскройТаблицаДанныхИтоговая.Колонки.Добавить("НомерФайла");
// РаскройТаблицаДанныхИтоговая.Колонки.Добавить("ПланыРаскроя");

РаскройТаблицаДанныхИтоговая.ЗаполнитьЗначения(Строка.Группировка,"Группировка");
РаскройТаблицаДанныхИтоговая.ЗаполнитьЗначения(Строка.Документ.Ссылка,"НарядВПроизводство");
РаскройТаблицаДанныхИтоговая.ЗаполнитьЗначения(Строка.Документ.Номер,"ИмяФайла");
РаскройТаблицаДанныхИтоговая.ЗаполнитьЗначения(Строка.Документ.Запасы[0].ПланыРаскроя,"ПланыРаскроя");

Если РаскройТаблицаДанных = Неопределено Тогда
РаскройТаблицаДанных = РаскройТаблицаДанныхИтоговая.Скопировать();
ИначеЕсли КолВГруппе = 0  Тогда
Для Каждого СтрокаТД Из РаскройТаблицаДанныхИтоговая Цикл

НоваяСтрока = РаскройТаблицаДанных.Добавить();
//  СтрокаТД.Количество= 60;
Для ТекКолонка = 0 по РаскройТаблицаДанных.Колонки.Количество()-1  Цикл
НоваяСтрока[ТекКолонка] = СтрокаТД[ТекКолонка];

КонецЦикла;
КонецЦикла;
Иначе
Для Каждого СтрокаТД Из РаскройТаблицаДанныхИтоговая Цикл

НоваяСтрока = РаскройТаблицаДанных.Добавить();
//  СтрокаТД.Количество= 60;
Для ТекКолонка = 0 по РаскройТаблицаДанных.Колонки.Количество()-1  Цикл
НоваяСтрока[ТекКолонка] = СтрокаТД[ТекКолонка];

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


КонецЕсли;



//
//ИначеЕсли Строка(Строка.Документ.Операция) = "Пленка" Тогда
// Если ПленкаТаблицаДанных = Неопределено Тогда
//
// Иначе
//
// КонецЕсли;
//КонецЕсли;
КонецЦикла;
    РезультатРаскроев = новый Массив;
Если РаскройТаблицаДанных = Неопределено Тогда
РаскройТаблицаДанных = Неопределено;
Иначе
РаскройТаблицаДанных.Колонки.Добавить("Порядок");
Счетчик = 0;
ПоследнийНомер = "";
Для Каждого Строка Из РаскройТаблицаДанных Цикл
Если ПоследнийНомер <> Строка.Номер Тогда
ПоследнийНомер = Строка.Номер;
Счетчик = Счетчик + 1;
КонецЕсли;
Строка.Порядок = Счетчик;
КонецЦикла;

  //Результат =   РаскройТаблицаДанных[0].Количество/10;
РезультатРаскроев.Добавить(РаскройТаблицаДанных);

КонецЕсли;

Если ПленкаТаблицаДанных = Неопределено Тогда

Иначе
ПленкаТаблицаДанных.Колонки.Добавить("Порядок");
Счетчик = 0;
ПоследнийНомер = "";
Для Каждого Строка Из ПленкаТаблицаДанных Цикл
Если ПоследнийНомер <> Строка.Номер Тогда
ПоследнийНомер = Строка.Номер;
Счетчик = Счетчик + 1;
КонецЕсли;
Строка.Порядок = Счетчик;
КонецЦикла;

КонецЕсли;
// АдресХранилища = ПоместитьВоВременноеХранилище(,Форма);
//
//ПротоколПереноса = ПолучитьИзВременногоХранилища(АдресХранилища);
строка1 = ЗначениеВСтрокуВнутр(РезультатРаскроев);
Возврат ЗначениеИзСтрокиВнутр(строка1);



// МассивДанных = Новый Массив;
//Для Каждого СтрЛог из РезультатРаскроев Цикл
// // Создаем структуру для хранения данных строки таблицы значений,
// // список полей можно получить динамически, перебрал 1 строку ТЗ
// Стр = Новый Структура("Количество");
// // Копируем данные из строки таблицы значений в структуру
// ЗаполнитьЗначенияСвойств(Стр,СтрЛог);
// // Помещаем структуру в массив
// МассивДанных.Добавить(Стр);
//КонецЦикла;



//Возврат МассивДанных;

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


После нажатия да! должна сформироватся обработка

Ошибка отображения типов: Отсутствует отображение для типа ‘ЭлементСпискаЗначений’

Описание ошибки:
Ошибка при программировании, конфигурировании кода в 1С 8:

Ошибка отображения типов:
Отсутствует отображение для типа ‘ЭлементСпискаЗначений’
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства ‘v’:
форма: Элемент
имя: {http://v8.1c.ru/8.2/uobjects}v
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства ‘value’:
форма: Элемент
имя: {http://v8.1c.ru/8.1/data/core}value

Найденные решения:

1C 8 Ошибка отображения типов: Отсутствует отображение для типа ЭлементСпискаЗначений,

Нажатие на изображении увеличит его
1C 8, Отсутствует отображение для типа ЭлементСпискаЗначений, по причине, ошибка передачи данных между клиентом и сервером, значение недопустимого типа

Возникла при написании кода индивидуальной конфигурации. Но, как оказалось, может подстерегать программиста из-за его невнимательности и при конфигурировании в других конфигурациях. Итак, в чем же причина возникновения данной ошибки. В управляемой форме был создан реквизит типа «СписокЗначений». При открытии формы по коду срабатывает обработчик заполнения этого списка значений. Т.е. в коде создается переменная с помощью конструктора «Новый СписокЗначений», значение которой потом и устанавливается реквизиту формы. Но, перед тем как это происходит, в коде список значений изменяется — в частности выполняется его дополнительная сортировка. Конечно, ошибка «Ошибка отображения типов: Отсутствует отображение для типа ‘ЭлементСпискаЗначений’» может возникнуть у Вас не только в такой ситуации. Сейчас разберемся в чем ее суть.

1С 8, Ошибка для типа ЭлементСпискаЗначений, передачи данных между клиентом и сервером, значение недопустимого типа, по причине, ошибка преобразования данных XDTO

Как было отмечено в этой частной задаче выполняется сортировка исходного заполненного списка значений. Но, т.к. в этой частной задаче не подходило использование метода «СортироватьПоЗначению(<Направление>)«, т.к. сортировка более сложная (по текстовым данным с разделителями порядка, содержащих разделитель «.», пример: 1.1, 2.2, 2.2.1, 2.2.2, 3.1, 3.2, 3.3.1, 3.3.2). Поэтому сортировка выполнялась программно с созданием новой переменной типа «СписокЗначений» и ее заполнением по данным исходного списка.

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

Нажатие на изображении увеличит его

1C 8, как устранить, исправить ошибку, ошибка преобразования данных XDTO, отсутствует отображение для типа ЭлементСпискаЗначений

Не смотря на то, что в методической информации «Синтакс-помощника» 1С 8 указано, что значение элемента списка значений может быть любым (произвольным), все-таки для случая использования в управляемой форме в качестве реквизита накладывается ограничение по типу. И нельзя в значение такого списка значений поместить «ЭлементСискаЗначений» другого списка значений.

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

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

Нажатие на изображении увеличит его

Было выполнено исправление в коде для обращения к значениям и передачи их в качестве значений нового списка значений. 

Нажатие на изображении увеличит его
1С 8, в чем причина ошибки в форме, отсутствует отображение для типа Элемент списка значений, ошибка отображения типов

В данном случае значениями списка были значения примитивного тип «Строка», поэтому дальнейшая работа доработанного кода стала возможной. И это все-таки позволило реализовать задачу. Если у Вас будут другие типы, например ссылки, то продумывайте заранее, как будете упорядочить, возможно придется через другие универсальные объекты, например использование таблицы значений, и потом заполнять конечный список значений. Другие примитивные типы не проверялись, но предполагаю, что они так же подойдут для корректной работы в управляемой форме. в качестве значений списка. Поэтому учитывайте это, если столкнетесь с данной ошибкой при Вашем конфигурировании — подбирайте по возможности простой тип для значений списка.

Нажатие на изображении увеличит его
1С 8, в чем, причина ошибки, как устранить, Ошибка передачи данных между клиентом и сервером, отсутствует отображение для типа элемент списка значений

Таким образом на примере данной частной ситуации возникновения ошибки при конфигурировании в 1С 8 «Отсутствует отображение для типа ЭлементСпискаЗначений, по причине, ошибка передачи данных между клиентом и сервером, значение недопустимого типа» извлекаем вывод о том, что нужно быть внимательным и не заполнять значения объекта «Список значений» элементами другого списка значений. А передавать значения элемента списка значений, если одна переменная типа «СписокЗначений» заполняется за счет другой подобной.

Оцените, помогло ли Вам предоставленное описание решения ошибки?




© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.

16-03-2022

Журавлев А.С.
(Сайт azhur-c.ru)

Здравствуйте. Печатную форму и заполнение ее вроде создал и все вроде как работает как надо, но вот только как ее добавить на форму в конфу. Почитал, что то наваял, на всякий случай дам полный код и ошибку: Функция СведенияОВнешнейОбработке Функция Получить Таблицу Команд              РежимРаботы = «продолжительностью 8 часов в день с понедельника по пятницу (с 9-00 до 18-00) с перерывом один час на обед (с 13-00 до 14-00), при пятидневной рабочей неделе с двумя выходными днями (суббота, воскресенье)»;         РежимРаботы = «продолжительностью 7 часов в день с понедельника по пятницу (с 9-00 до 17-00) и 5 часов в день в субботу (с 9-00 до 15-00) с перерывом один час на обед (с 13-00 до 14-00), при шестидневной рабочей неделе с одним выходным днем (воскресенье)»; Ошибка: {ОбщийМодуль.СтандартныеПодсистемыКлиент.Модуль}: Ошибка при вызове метода контекста (ОткрытьФорму)     ОткрытьФорму(«ОбщаяФорма.Вопрос», Параметры,,,,,ОписаниеОповещенияОЗавершении); по причине: Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа. по причине: Ошибка преобразования данных XDTO: Запись значения свойства ‘val’:     форма: Элемент     имя: { по причине: Ошибка отображения типов: Отсутствует отображение для типа ‘КодВозвратаДиалога’ Помогите пожалуйста с регистрацией формы, а то мозг скоро потечет, зачем они так усложнили все, раньше ведь просто было. Заранее спасибо тем, кто поможет!

Ты про директивы &НаСервере &НаКлиенте и их использование слышал?

Если я правильно понимаю они используются в модуле формы, а это модуль объекта, или я что то не так понял?

Ни в курсе ни кто? :-) или вечер? :-)

>> ОткрытьФорму(«ОбщаяФорма.Вопрос», Параметры,,,,,ОписаниеОповещенияОЗавершении); Отсутствует отображение для типа ‘КодВозвратаДиалога’

только что с этим делать, ошибка вылезает из основного модуля. Не пойму, я что то не так отправляю или в коде конфы ошибка

Ошибка: {ОбщийМодуль.СтандартныеПодсистемыКлиент.Модуль}: Ошибка при вызове метода контекста (ОткрытьФорму)     ОткрытьФорму(«ОбщаяФорма.Вопрос», Параметры,,,,,ОписаниеОповещенияОЗавершении); по причине: Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа. по причине: Остальное где?

Эта функция в данный момент не используется. Ошибка возникает, когда я пытаюсь добавить ВПФ в конфигурацию, а не исполнить код

«Дополнительная обработка (Создание)» сюда

Вот тут думаю найдешь ответ

>>Эта функция в данный момент не используется. Ну а почему ты вызываешь ее??

ОткрытьФорму(«ОбщаяФорма.Вопрос», Параметры,,,,,ОписаниеОповещенияОЗавершении);

Открыть форму вызывает конфа, при подключении ВПФ. Она не моя, это пройедура ОбщегоМодуля

А что и где у тебя возвращает Функция ВывестиПечать

УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, «ПечатьТД», «Трудовой договор», ВывестиПечать);

Внутри функции Возврат где?

Так а мне возврат ненужен, она просто откроет ворд. Через форму работает

)))) Дык это вообще то Функция которая должна что то вернуть Это процедура тупо выполняет что сказали )

Ты напиши НЕ Функция ВывестиПечать а Процедура ВывестиПечать

И в конце тоже поправь НЕ КонецФункции а КонецПроцедуры

{ВнешняяОбработка.ВнешняяОбработка1.МодульОбъекта(46,110)}: Обращение к процедуре как к функции (ВывестиПечать)     УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, «ПечатьТД», «Трудовой договор», <<?>>ВывестиПечать);  (Проверка: Сервер)

Ничего пока так и не вышло, может еще кто идейки кинет? :-)

я ему уже объяснял ты чо такой нудный как ёжик с причёской ??? )) зайди в Общие модули  УправлениеПечатью открой, найди там ВывестиТабличныйДокументВКоллекцию(….. и смотри какие параметры надо тебе ясно 1с сказала ПечатьТД», «Трудовой договор», <<?>>ВывестиПечать);   чего то много или не хватает )) смотри и читай

Он ругается на ВывестиПечать из-за того, что я пытаюсь вызвать процедуру как функцию :-) после того как исправил ее на процедуру. Да я нудный :-) хочется понять и сделать :-)

Тогда делай функцию только правильно делай )

Так вот что не правильно тут, и она вообще не при чем, до нее ДЕЛО НЕ ДОХОДИТ! проблема в подключении к конфе, она еще ничего не выполняет

ОФФ:Чем больше клюв, тем меньше мозга.((

Нашел то, что мне нужно, жаль он не расписал :-(

Извиняйте, просто мозг уже плывет. Ошибка при подключении была тупой не сделал Функции и Процедуры Экспортными. Теперь проблемы после

Везде описано как сделать печатную форму, а как это переделать в печатную форму на вывод в ворд пока докумекать никак

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

Наконец все сделал и получилось, спасибо всем за терпение и помощь!

Тэги:

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

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

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

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

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

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

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

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

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

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

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

КонецЕсли; 

<<<<>>>>>>

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

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

КонецЕсли;

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

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

КонецЕсли;

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

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

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

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

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

Рассмотрим следующий модуль управляемой формы:

&НаСервере
Функция ТестВызоваСервера(Форма)

	Форма.ТолькоПросмотр = Истина;

КонецФункции // ТестВызоваСервера()

&НаКлиенте
Процедура ПокупательПриИзменении(Элемент)
	
	//попытка передачи переменной локального контекста на сервер
	ТестВызоваСервера(ЭтаФорма);
	
КонецПроцедуры

Дело в том, что в контексте модуля управляемой формы переменная ЭтаФорма доступна всегда (как на клиенте, так и на сервере) и дополнительно ее передавать не требуется (если только вы не вызываете процедуру или функцию, перед которой указана директива &НаСервереБезКонтекста). Правильным будет следующий код:

&НаСервере
Функция ТестВызоваСервера()

	ЭтаФорма.ТолькоПросмотр = Истина;	

КонецФункции // ТестВызоваСервера()

&НаКлиенте
Процедура ПокупательПриИзменении(Элемент)
	
	//вызов контекстной серверной функции
	ТестВызоваСервера();
	
КонецПроцедуры

Аналогичное замечание относится к серверным вызовам. Вы не можете передать содержимое переменной ЭтаФорма на сервер. Вы можете только запросить необходимую информацию на сервере и изменить форму в контексте клиента, либо реализовать это через серверный метод самой формы. Например, такой код работать не будет:

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

Подумайте сами, чем можно заменить такой вызов

Сергей

Местный

Сообщений: 8
Баллов: 15
Регистрация: 26.06.2022

#10

0

28.06.2022 13:36:40

&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ТекущиеДанные = РаботаСоСпискамиДокументовКлиент.ПолучитьДанныеТекущейСтрокиСписка(
Элементы.Список, Элементы.Список.ТекущаяСтрока);

Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;

Если Поле = Элементы.Файлы Тогда
ОткрыватьЗакладкуФайлы=ПроверкаОткрытияЗаклФайлы(ЭтаФорма)
ПараметрыОткрытия = Новый Структура(«Ключ, ОткрытьЗакладкуФайлы», ТекущиеДанные.Ссылка, ОткрыватьЗакладкуФайлы);
ОткрытьФорму(«Справочник.ВнутренниеДокументы.ФормаОбъекта», ПараметрыОткрытия, Элементы.Список);
Возврат;
КонецЕсли;

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

Если Поле = Элементы.Задачи Тогда
ОткрытьФорму(«ОбщаяФорма.ПроцессыИЗадачи»,
Новый Структура(«Предмет», ТекущиеДанные.Ссылка),
ЭтаФорма);
Возврат;
КонецЕсли;

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

Если Поле = Элементы.СостояниеКонтроля Тогда
КонтрольКлиент.ОбработкаКомандыКонтроль(ТекущиеДанные.Ссылка, ЭтаФорма);
Возврат;
КонецЕсли;

ПараметрыОткрытия = Новый Структура(«Ключ», ТекущиеДанные.Ссылка);
ОткрытьФорму(«Справочник.ВнутренниеДокументы.ФормаОбъекта», ПараметрыОткрытия, Элементы.Список);
КонецПроцедуры

Здравствуйте. Печатную форму и заполнение ее вроде создал и все вроде как работает как надо, но вот только как ее добавить на форму в конфу. Почитал, что то наваял, на всякий случай дам полный код и ошибку: Функция СведенияОВнешнейОбработке Функция Получить Таблицу Команд              РежимРаботы = «продолжительностью 8 часов в день с понедельника по пятницу (с 9-00 до 18-00) с перерывом один час на обед (с 13-00 до 14-00), при пятидневной рабочей неделе с двумя выходными днями (суббота, воскресенье)»;         РежимРаботы = «продолжительностью 7 часов в день с понедельника по пятницу (с 9-00 до 17-00) и 5 часов в день в субботу (с 9-00 до 15-00) с перерывом один час на обед (с 13-00 до 14-00), при шестидневной рабочей неделе с одним выходным днем (воскресенье)»; Ошибка: {ОбщийМодуль.СтандартныеПодсистемыКлиент.Модуль}: Ошибка при вызове метода контекста (ОткрытьФорму)     ОткрытьФорму(«ОбщаяФорма.Вопрос», Параметры,,,,,ОписаниеОповещенияОЗавершении); по причине: Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа. по причине: Ошибка преобразования данных XDTO: Запись значения свойства ‘val’:     форма: Элемент     имя: { по причине: Ошибка отображения типов: Отсутствует отображение для типа ‘КодВозвратаДиалога’ Помогите пожалуйста с регистрацией формы, а то мозг скоро потечет, зачем они так усложнили все, раньше ведь просто было. Заранее спасибо тем, кто поможет!

Ты про директивы &НаСервере &НаКлиенте и их использование слышал?

Если я правильно понимаю они используются в модуле формы, а это модуль объекта, или я что то не так понял?

Ни в курсе ни кто? :-) или вечер? :-)

>> ОткрытьФорму(«ОбщаяФорма.Вопрос», Параметры,,,,,ОписаниеОповещенияОЗавершении); Отсутствует отображение для типа ‘КодВозвратаДиалога’

только что с этим делать, ошибка вылезает из основного модуля. Не пойму, я что то не так отправляю или в коде конфы ошибка

Ошибка: {ОбщийМодуль.СтандартныеПодсистемыКлиент.Модуль}: Ошибка при вызове метода контекста (ОткрытьФорму)     ОткрытьФорму(«ОбщаяФорма.Вопрос», Параметры,,,,,ОписаниеОповещенияОЗавершении); по причине: Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа. по причине: Остальное где?

Эта функция в данный момент не используется. Ошибка возникает, когда я пытаюсь добавить ВПФ в конфигурацию, а не исполнить код

«Дополнительная обработка (Создание)» сюда

Вот тут думаю найдешь ответ

>>Эта функция в данный момент не используется. Ну а почему ты вызываешь ее??

ОткрытьФорму(«ОбщаяФорма.Вопрос», Параметры,,,,,ОписаниеОповещенияОЗавершении);

Открыть форму вызывает конфа, при подключении ВПФ. Она не моя, это пройедура ОбщегоМодуля

А что и где у тебя возвращает Функция ВывестиПечать

УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, «ПечатьТД», «Трудовой договор», ВывестиПечать);

Внутри функции Возврат где?

Так а мне возврат ненужен, она просто откроет ворд. Через форму работает

)))) Дык это вообще то Функция которая должна что то вернуть Это процедура тупо выполняет что сказали )

Ты напиши НЕ Функция ВывестиПечать а Процедура ВывестиПечать

И в конце тоже поправь НЕ КонецФункции а КонецПроцедуры

{ВнешняяОбработка.ВнешняяОбработка1.МодульОбъекта(46,110)}: Обращение к процедуре как к функции (ВывестиПечать)     УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, «ПечатьТД», «Трудовой договор», <<?>>ВывестиПечать);  (Проверка: Сервер)

Ничего пока так и не вышло, может еще кто идейки кинет? :-)

я ему уже объяснял ты чо такой нудный как ёжик с причёской ??? )) зайди в Общие модули  УправлениеПечатью открой, найди там ВывестиТабличныйДокументВКоллекцию(….. и смотри какие параметры надо тебе ясно 1с сказала ПечатьТД», «Трудовой договор», <<?>>ВывестиПечать);   чего то много или не хватает )) смотри и читай

Он ругается на ВывестиПечать из-за того, что я пытаюсь вызвать процедуру как функцию :-) после того как исправил ее на процедуру. Да я нудный :-) хочется понять и сделать :-)

Тогда делай функцию только правильно делай )

Так вот что не правильно тут, и она вообще не при чем, до нее ДЕЛО НЕ ДОХОДИТ! проблема в подключении к конфе, она еще ничего не выполняет

ОФФ:Чем больше клюв, тем меньше мозга.((

Нашел то, что мне нужно, жаль он не расписал :-(

Извиняйте, просто мозг уже плывет. Ошибка при подключении была тупой не сделал Функции и Процедуры Экспортными. Теперь проблемы после

Везде описано как сделать печатную форму, а как это переделать в печатную форму на вывод в ворд пока докумекать никак

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

Наконец все сделал и получилось, спасибо всем за терпение и помощь!

Тэги:

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

Ошибка отображения типов: Отсутствует отображение для типа ‘ЭлементСпискаЗначений’

Описание ошибки:
Ошибка при программировании, конфигурировании кода в 1С 8:

Ошибка отображения типов:
Отсутствует отображение для типа ‘ЭлементСпискаЗначений’
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства ‘v’:
форма: Элемент
имя: {http://v8.1c.ru/8.2/uobjects}v
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства ‘value’:
форма: Элемент
имя: {http://v8.1c.ru/8.1/data/core}value

Найденные решения:

1C 8 Ошибка отображения типов: Отсутствует отображение для типа ЭлементСпискаЗначений,

Нажатие на изображении увеличит его
1C 8, Отсутствует отображение для типа ЭлементСпискаЗначений, по причине, ошибка передачи данных между клиентом и сервером, значение недопустимого типа

Возникла при написании кода индивидуальной конфигурации. Но, как оказалось, может подстерегать программиста из-за его невнимательности и при конфигурировании в других конфигурациях. Итак, в чем же причина возникновения данной ошибки. В управляемой форме был создан реквизит типа «СписокЗначений». При открытии формы по коду срабатывает обработчик заполнения этого списка значений. Т.е. в коде создается переменная с помощью конструктора «Новый СписокЗначений», значение которой потом и устанавливается реквизиту формы. Но, перед тем как это происходит, в коде список значений изменяется — в частности выполняется его дополнительная сортировка. Конечно, ошибка «Ошибка отображения типов: Отсутствует отображение для типа ‘ЭлементСпискаЗначений'» может возникнуть у Вас не только в такой ситуации. Сейчас разберемся в чем ее суть.

1С 8, Ошибка для типа ЭлементСпискаЗначений, передачи данных между клиентом и сервером, значение недопустимого типа, по причине, ошибка преобразования данных XDTO

Как было отмечено в этой частной задаче выполняется сортировка исходного заполненного списка значений. Но, т.к. в этой частной задаче не подходило использование метода «СортироватьПоЗначению(<Направление>)«, т.к. сортировка более сложная (по текстовым данным с разделителями порядка, содержащих разделитель «.», пример: 1.1, 2.2, 2.2.1, 2.2.2, 3.1, 3.2, 3.3.1, 3.3.2). Поэтому сортировка выполнялась программно с созданием новой переменной типа «СписокЗначений» и ее заполнением по данным исходного списка.

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

Нажатие на изображении увеличит его

1C 8, как устранить, исправить ошибку, ошибка преобразования данных XDTO, отсутствует отображение для типа ЭлементСпискаЗначений

Не смотря на то, что в методической информации «Синтакс-помощника» 1С 8 указано, что значение элемента списка значений может быть любым (произвольным), все-таки для случая использования в управляемой форме в качестве реквизита накладывается ограничение по типу. И нельзя в значение такого списка значений поместить «ЭлементСискаЗначений» другого списка значений.

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

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

Нажатие на изображении увеличит его

Было выполнено исправление в коде для обращения к значениям и передачи их в качестве значений нового списка значений. 

Нажатие на изображении увеличит его
1С 8, в чем причина ошибки в форме, отсутствует отображение для типа Элемент списка значений, ошибка отображения типов

В данном случае значениями списка были значения примитивного тип «Строка», поэтому дальнейшая работа доработанного кода стала возможной. И это все-таки позволило реализовать задачу. Если у Вас будут другие типы, например ссылки, то продумывайте заранее, как будете упорядочить, возможно придется через другие универсальные объекты, например использование таблицы значений, и потом заполнять конечный список значений. Другие примитивные типы не проверялись, но предполагаю, что они так же подойдут для корректной работы в управляемой форме. в качестве значений списка. Поэтому учитывайте это, если столкнетесь с данной ошибкой при Вашем конфигурировании — подбирайте по возможности простой тип для значений списка.

Нажатие на изображении увеличит его
1С 8, в чем, причина ошибки, как устранить, Ошибка передачи данных между клиентом и сервером, отсутствует отображение для типа элемент списка значений

Таким образом на примере данной частной ситуации возникновения ошибки при конфигурировании в 1С 8 «Отсутствует отображение для типа ЭлементСпискаЗначений, по причине, ошибка передачи данных между клиентом и сервером, значение недопустимого типа» извлекаем вывод о том, что нужно быть внимательным и не заполнять значения объекта «Список значений» элементами другого списка значений. А передавать значения элемента списка значений, если одна переменная типа «СписокЗначений» заполняется за счет другой подобной.

Оцените, помогло ли Вам предоставленное описание решения ошибки?




© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.

16-03-2022

Журавлев А.С.
(Сайт azhur-c.ru)

Подскажите как с этим боротся — ошибка вот такого плана в толстом клиенте все нормально, а надо вызывать на тонком:{Документ.ГрафикПроизводства.Команда.ОтправитьВОптимизацию.МодульКоманды(32)}: Ошибка при вызове метода контекста (СервСформировать2)
    Результат = СервСформировать2(ДокументыДляОптимизации,КолВГруппе);
по причине:
Ошибка при вызове серверного метода.
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: ret   Форма: Элемент   Тип: {http://www.w3.org/2001/XMLSchema}anyType
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: Value   Форма: Элемент   Тип: {http://www.w3.org/2001/XMLSchema}anyType
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа ‘{http://v8.1c.ru/8.1/data/core}ValueTable’

2 метода на клиенте и на сервере, вот сам код:


&НаКлиенте
Процедура ВыполнитьОптимизацию(ДокументыДляОптимизации)   

РежимРаботы  = Вопрос("Группировать по пакетам?",РежимДиалогаВопрос.ДаНетОтмена,,КодВозвратаДиалога.Нет);
Группировать = Ложь;
Если РежимРаботы = КодВозвратаДиалога.Отмена Тогда
Возврат
КонецЕсли;

Если РежимРаботы = КодВозвратаДиалога.Да Тогда
КолВГруппе = 60;
ВвестиЧисло(КолВГруппе,"Количество Изделий в группировке",3,0);
Группировать = Истина;
Иначе
КолВГруппе = 0;
КонецЕсли;

РаботаСОптимизацией.ОбработатьДокументы(ДокументыДляОптимизации, КолВГруппе, Группировать);

Предупреждение("Оптимизация выполнена", 5);


    Результат = СервСформировать2(ДокументыДляОптимизации,КолВГруппе);
Если Вопрос("Проставить КИС в график?", РежимДиалогаВопрос.ДаНет)=КодВозвратаДиалога.Да Тогда

ГрафикПроизв(ДокументыДляОптимизации);

ФормаОбр = ПолучитьФорму("Обработка.КИСВГрафиках.Форма.Форма");

Если Результат.Количество() Тогда
Для Каждого Строка Из Результат[0] Цикл
Если КолВГруппе = 0 Тогда
НоваяСтрока = ФормаОбр.Объект.ТабличнаяЧастьСоответствие.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока,Строка);
Иначе
Расчет = Окр(Строка.Количество / КолВГруппе);
Для п =0 По Расчет+2 Цикл
Если п <> 0 и п <> 1 Тогда
НоваяСтрока = ФормаОбр.Объект.ТабличнаяЧастьСоответствие.Добавить();

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

ЗаполнитьЗначенияСвойств(НоваяСтрока,Строка);
КонецЕсли;
КонецЦикла;
КонецЕсли;

Значение =0;
//Значение2 =0;
Для п =0 По ФормаОбр.Объект.ТабличнаяЧастьСоответствие.Количество()-1 Цикл
Отбор = Новый Структура;
Отбор.Вставить("ИмяФайла",ФормаОбр.Объект.ТабличнаяЧастьСоответствие[п].ИмяФайла);
// Отбор.Вставить("Материал",ФормаОбр.Объект.ТабличнаяЧастьСоответствие[п].Материал);
НадСтроки = ФормаОбр.Объект.ТабличнаяЧастьСоответствие.НайтиСтроки(Отбор);
КонецЦикла;

  Для п = 0 По НадСтроки.Количество()-1 Цикл
Значение = Значение + НадСтроки[п].Количество;
КонецЦикла;

НоваяСтрока = ФормаОбр.Объект.ТабличнаяЧастьСоответствие.Добавить();
//Строка.КоличествоФакт = Строка[3] - Значение2 ;
Строка.Количество = Строка[3] - Значение ;
ЗаполнитьЗначенияСвойств(НоваяСтрока,Строка);
КонецЦикла;

Иначе
Вопрос("В выбранных нарядах отсутствуют материалы." , РежимДиалогаВопрос.ОК);
Возврат
КонецЕсли;

ФормаОбр.Объект.ОснованиеГрафикПроизводства = ДокументыДляОптимизации;
ФормаОбр.Объект.КИСПроставлен = ДокументыДляОптимизации[0].КИСПроставлен;
ФормаОбр.ОткрытьМодально();
КонецЕсли;

КонецПроцедуры // ВыполнитьОптимизацию()

&НаСервере
Функция СервСформировать2(ПараметрКоманды, КолВГруппе =0) Экспорт

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ГрафикПроИзводстваНаряды.Документ,
| ГрафикПроИзводстваНаряды.Группировка КАК Группировка
|ИЗ
| Документ.ГрафикПроизводства.Наряды КАК ГрафикПроИзводстваНаряды
|ГДЕ
| ГрафикПроИзводстваНаряды.Ссылка = &Ссылка
|
|УПОРЯДОЧИТЬ ПО
| Группировка,
| ГрафикПроИзводстваНаряды.НомерСтроки";

МассОпераций = Новый Массив;
МассОпераций.Добавить("Раскрой");
МассОпераций.Добавить("Пленка");

Запрос.УстановитьПараметр("Операции", МассОпераций);
Запрос.УстановитьПараметр("Ссылка", ПараметрКоманды[0].Ссылка);
Результат = Запрос.Выполнить().Выгрузить();

//РаскройТаблицаДанных = Новый ТаблицаЗначений;
//ПленкаТаблицаДанных = Новый ТаблицаЗначений;
РаскройТаблицаДанных = Неопределено;
ПленкаТаблицаДанных = Неопределено;

Для Каждого Строка Из Результат Цикл
РаскройТаблицаДанныхИтоговая = Строка.Документ.Запасы.Выгрузить();
РаскройТаблицаДанныхИтоговая.Колонки["Номенклатура"].Имя = "Материал";
РаскройТаблицаДанныхИтоговая.Колонки["НомерСтроки"].Имя = "Номер";
РаскройТаблицаДанныхИтоговая.Колонки["КоличествоРасчетное"].Имя = "КоличествоФакт";
РаскройТаблицаДанныхИтоговая.Свернуть("КИС, Количество, КоличествоФакт, ПланыРаскроя, Номер, Материал");

РаскройТаблицаДанныхИтоговая.Колонки.Добавить("Группировка");
РаскройТаблицаДанныхИтоговая.Колонки.Добавить("НарядВПроизводство");
РаскройТаблицаДанныхИтоговая.Колонки.Добавить("ИмяФайла");
РаскройТаблицаДанныхИтоговая.Колонки.Добавить("НомерФайла");
// РаскройТаблицаДанныхИтоговая.Колонки.Добавить("ПланыРаскроя");

РаскройТаблицаДанныхИтоговая.ЗаполнитьЗначения(Строка.Группировка,"Группировка");
РаскройТаблицаДанныхИтоговая.ЗаполнитьЗначения(Строка.Документ.Ссылка,"НарядВПроизводство");
РаскройТаблицаДанныхИтоговая.ЗаполнитьЗначения(Строка.Документ.Номер,"ИмяФайла");
РаскройТаблицаДанныхИтоговая.ЗаполнитьЗначения(Строка.Документ.Запасы[0].ПланыРаскроя,"ПланыРаскроя");

Если РаскройТаблицаДанных = Неопределено Тогда
РаскройТаблицаДанных = РаскройТаблицаДанныхИтоговая.Скопировать();
ИначеЕсли КолВГруппе = 0  Тогда
Для Каждого СтрокаТД Из РаскройТаблицаДанныхИтоговая Цикл

НоваяСтрока = РаскройТаблицаДанных.Добавить();
//  СтрокаТД.Количество= 60;
Для ТекКолонка = 0 по РаскройТаблицаДанных.Колонки.Количество()-1  Цикл
НоваяСтрока[ТекКолонка] = СтрокаТД[ТекКолонка];

КонецЦикла;
КонецЦикла;
Иначе
Для Каждого СтрокаТД Из РаскройТаблицаДанныхИтоговая Цикл

НоваяСтрока = РаскройТаблицаДанных.Добавить();
//  СтрокаТД.Количество= 60;
Для ТекКолонка = 0 по РаскройТаблицаДанных.Колонки.Количество()-1  Цикл
НоваяСтрока[ТекКолонка] = СтрокаТД[ТекКолонка];

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


КонецЕсли;



//
//ИначеЕсли Строка(Строка.Документ.Операция) = "Пленка" Тогда
// Если ПленкаТаблицаДанных = Неопределено Тогда
//
// Иначе
//
// КонецЕсли;
//КонецЕсли;
КонецЦикла;
    РезультатРаскроев = новый Массив;
Если РаскройТаблицаДанных = Неопределено Тогда
РаскройТаблицаДанных = Неопределено;
Иначе
РаскройТаблицаДанных.Колонки.Добавить("Порядок");
Счетчик = 0;
ПоследнийНомер = "";
Для Каждого Строка Из РаскройТаблицаДанных Цикл
Если ПоследнийНомер <> Строка.Номер Тогда
ПоследнийНомер = Строка.Номер;
Счетчик = Счетчик + 1;
КонецЕсли;
Строка.Порядок = Счетчик;
КонецЦикла;

  //Результат =   РаскройТаблицаДанных[0].Количество/10;
РезультатРаскроев.Добавить(РаскройТаблицаДанных);

КонецЕсли;

Если ПленкаТаблицаДанных = Неопределено Тогда

Иначе
ПленкаТаблицаДанных.Колонки.Добавить("Порядок");
Счетчик = 0;
ПоследнийНомер = "";
Для Каждого Строка Из ПленкаТаблицаДанных Цикл
Если ПоследнийНомер <> Строка.Номер Тогда
ПоследнийНомер = Строка.Номер;
Счетчик = Счетчик + 1;
КонецЕсли;
Строка.Порядок = Счетчик;
КонецЦикла;

КонецЕсли;
// АдресХранилища = ПоместитьВоВременноеХранилище(,Форма);
//
//ПротоколПереноса = ПолучитьИзВременногоХранилища(АдресХранилища);
строка1 = ЗначениеВСтрокуВнутр(РезультатРаскроев);
Возврат ЗначениеИзСтрокиВнутр(строка1);



// МассивДанных = Новый Массив;
//Для Каждого СтрЛог из РезультатРаскроев Цикл
// // Создаем структуру для хранения данных строки таблицы значений,
// // список полей можно получить динамически, перебрал 1 строку ТЗ
// Стр = Новый Структура("Количество");
// // Копируем данные из строки таблицы значений в структуру
// ЗаполнитьЗначенияСвойств(Стр,СтрЛог);
// // Помещаем структуру в массив
// МассивДанных.Добавить(Стр);
//КонецЦикла;



//Возврат МассивДанных;

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


После нажатия да! должна сформироватся обработка

  • Ошибка отображения типов отсутствует отображение для типа интернетпочтовыйпрофиль
  • Ошибка отображения типов отсутствует отображение для типа данныеформыэлементдерева
  • Ошибка отображения типов отсутствует отображение для типа выборкаизрезультатазапроса
  • Ошибка отображения типов отсутствует отображение для типа xbase
  • Ошибка отображения типов отсутствует отображение для типа comобъект