Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 сен 2021, 05:11

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

Автор z3x, 11 авг 2020, 10:56

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

z3x

Есть 1С с установленой 1С:ERP Управление предприятием 2 (2.4.12.71).
В форме "Заказ клиента", во вкладке "дополнительно" есть "дополнительные реквизиты" под название "Ответственный логист" с выпадающим списком.

Так же есть Расширения конфигурации
В данном расширении реализую автозаполнение полей на основании файла xml который подгружается с сайта.

Процедура заполнения формы запускается при выборе из списка контрагента т.е форма "Заказ клиента" уже загружена полностью.

Моя задаче во вкладке "Дополнительно" в реквизитах "Ответственный логист" подставить нужного логиста.

Пробую так

&НаКлиенте
Процедура Расш1_ПартнерПриИзмененииПосле(Элемент)
УстановитьЗначениеДополнительногоРеквизитаНаФорме(ЭтаФорма,"ОтветственныеЛогисты_2ee44b50d4014e68b1441c36e59c4d3d","еуые"); 
КонецПроцедуры 


&НаСервере
Процедура УстановитьЗначениеДополнительногоРеквизитаНаФорме(Форма, ИмяРеквизита, ЗначениеРеквизита) Экспорт
ПолеДополнительногоРеквизитаНаФорме = ПолучитьПолеДополнительногоРеквизитаНаФорме(Форма, ИмяРеквизита);
Если не ПолеДополнительногоРеквизитаНаФорме = Неопределено Тогда
//Форма[ПолеДополнительногоРеквизитаНаФорме.ИмяРеквизитаЗначение.ррр] = ЗначениеРеквизита;
//Сообщить(ЗначениеРеквизита);
КонецЕсли;
КонецПроцедуры

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

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



Мене не побороть вот эту ошибку


Ошибка отображения типов:
Отсутствует отображение для типа 'ФормаКлиентскогоПриложения'
{Легенда Документ.ЗаказКлиента.Форма.ФормаДокумента.Форма(21)}: УстановитьЗначениеДополнительногоРеквизитаНаФорме(ЭтаФорма,"ОтветственныеЛогисты_2ee44b50d4014e68b1441c36e59c4d3d","еуые"); 

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


Как быть? как из расширения повлиять на доп. реквизит в самом ERP

АлександрВладимирович

Эту ошибку никому не побороть. Не передается форма с клиента на сервер.
&НаКлиенте
Процедура Расш1_ПартнерПриИзмененииПосле(Элемент)
Расш1_ПартнерПриИзмененииПослеНаСервере("ОтветственныеЛогисты_2ee44b50d4014e68b1441c36e59c4d3d", "еуые");
КонецПроцедуры

&НаСервере
Процедура Расш1_ПартнерПриИзмененииПослеНаСервере(ИмяРеквизита, ЗначениеРеквизита)
    УстановитьЗначениеДополнительногоРеквизитаНаФорме(ЭтотОбъект, ИмяРеквизита, ЗначениеРеквизита); 
КонецПроцедуры

&НаСервере
Процедура УстановитьЗначениеДополнительногоРеквизитаНаФорме(Форма, ИмяРеквизита, ЗначениеРеквизита) Экспорт

ПолеДополнительногоРеквизитаНаФорме = ПолучитьПолеДополнительногоРеквизитаНаФорме(Форма, ИмяРеквизита);

Если не ПолеДополнительногоРеквизитаНаФорме = Неопределено Тогда
Форма[ПолеДополнительногоРеквизитаНаФорме.ИмяРеквизитаЗначение] = ЗначениеРеквизита;
КонецЕсли;

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

&НаСервере
Функция ПолучитьПолеДополнительногоРеквизитаНаФорме(Форма, ИмяРеквизита) Экспорт

Список = Форма.Свойства_ОписаниеДополнительныхРеквизитов;

Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", ИмяРеквизита);

Если ЗначениеЗаполнено(Свойство) Тогда
    НайденныеСтроки = Список.НайтиСтроки(Новый Структура("Свойство", Свойство));
Если НайденныеСтроки.Количество() > 0 Тогда
Возврат НайденныеСтроки[0];
КонецЕсли;
КонецЕсли;

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

LexaK

доп реквизит - это запись или в РС и ТЧ объекта
просто добавьте запись с нужными данными.
Посмотрите док.Заказ где уже есть этот доп реквизит и где он хранится физически в какой таблице, так же и для других документов, туда-же и пишите
всего пяток строчек кода!
ответ Понравился? (в смысле пригодился?)

Теги: расширения 

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск