Задать вопрос
PavelK
@PavelK

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

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

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

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

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

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


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

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

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

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

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

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

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


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

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

Похожие вопросы