PavelK
@PavelK

Как создать тип «ДанныеФормыДерево» на сервере?

Доброго вечера!
Пришлось сунуться в неизведанную степь.
В общем, из ВебСервиса (создал, разобрался, проблем в общем нет) нужно вызывать функцию из модуля менеджера встроенной обработки.

Проблема в том, что, как я понял, одним из параметров функция требует тип "ДанныеФормыДерево" (клиентский, как я понял, т.к. внутри используется "ПолучитьЭлементы"), а "ДеревоЗначений" ( дз = Новый ДеревоЗначений; ) ей не подходит.

Мне нужно как-то ДеревоЗначений преобразовать в "ДанныеФормыДерево", а потом обратно.
При условии, что код у меня "&НаСервере" (т.к. ВебСервис).

Обработку изменять не могу, т.к. нельзя изменять конфигурацию. Копию обработки то же сделать нет возможности, т.к. она очень большая + вызывает с десяток других обработок (где то же используются "ДанныеФормыДерево", в общем засада).

Хотел попробовать так, НО:
дз = Новый ДеревоЗначений;
дфд =  ??? Как создать с типом ДанныеФормыДерево?
ЗначениеВДанныеФормы(дз, дфд);


Подскажите, пожалуйста, как быть?
  • Вопрос задан
  • 600 просмотров
Решения вопроса 1
PavelK
@PavelK Автор вопроса
В общем, сделал через пакеты XDTO, сначала ДанныеФормыДерево загнал в XML файл, сохранил,
часа три кастрировал xml до пары строк (т.к. в разных версия почему-то по-разному не нравилось), потом
идиотизРЯК = Новый ЧтениеXML;
идиотизРЯК.УстановитьСтроку("1Ссникам страдать!");
деревоЗначенийКлиент = СериализаторXDTO.ПрочитатьXML(идиотизРЯК);

В общем, после общения с 1С как обычно горящая попа, аргументирую:
зря потраченные 3000рэ (за консультации "высококвалифицированных сертифицированных специалистов"), ответ которых "нельзя" и мол "криворукие кто писал", да вот только на упрёк, что конфигурацию пишет их же фирма (весьма не маленькая и конфигурация используется много где)!
"а, ну на то были причины".
Спасибо, что хоть здесь ответили бесплатно!
Ну её 1С нафиг, для себя решил, что подожду лет 10, пока перестанут эмулировать c++ и перейдут на чистый, а то сплошные извращения кругом (и это был лишь один из примеров).
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Escanor
Big dreamer
дфд = ??? Как создать с типом ДанныеФормыДерево?

На сервере - никак.

Подскажите, пожалуйста, как быть?

Вариантов на самом деле не много:
1) Как вы и написали - скопировать и переделать методы под ваши "хотелки"(я на самом деле не стал пользоваться бы этим вариантом)
2) Сделать расширение, где дописать обработку под ваши нужды.
3) Определиться с тем, что именно нужно от обработки(возможно не весть ее функционал вам нужен). Описать свой метод который на основании переданных вами параметров, будет возвращать нужный вам "ответ".
Ответ написан
Sgr_A
@Sgr_A
Не стоит поднимать панику, нужно просто немного помучаться, и всё получится!

&НаСервере
Процедура СоздатьНеСоздаваемое()
РеквизитФормыДерево = Новый РеквизитФормы("Дерево", Новый ОписаниеТипов("ДеревоЗначений"));

МассивДобавляемыхРеквизитов = Новый Массив;
МассивДобавляемыхРеквизитов.Добавить(РеквизитФормыДерево);
		
ИзменитьРеквизиты(МассивДобавляемыхРеквизитов);
	
ДеревоЗначений = Новый ДеревоЗначений();
ЗначениеВДанныеФормы(ДеревоЗначений, ЭтаФорма.Дерево);
КонецПроцедуры


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

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы