2

Здравствуйте!

Мне нужно вывести данные некоего справочника в текстовый файл (просто все записи).

У справочника есть табличная часть "предшественники" и их тоже надо вывести в файл.

Текст выводится при помощи следующих вызовов:

Текст = Новый ТекстовыйДокумент;
Текст.УстановитьТекст(МойТекст);
Текст.Записать("C:\Users\DP118M\Desktop\daily stuff\dottest.txt",КодировкаТекста.UTF8);

Непонятно, как мне сделать запрос вроде (вроде записи = "SELECT * FROM Справочник"), а потом сделать нечто подобное:

МойТекст = "digraph G {" & НоваяСтрока
Для каждого Запись Из Записи     
   Для каждого Предшественник Из Запись.Предшественники     
   Цикл          
      МойТекст = МойТекст & Предшественник.Код & " -> " & Запись.Код & НоваяСтрока;     
   КонецЦикла;
КонецЦикла
МойТекст = МойТекст & "}" & НоваяСтрока

Вопрос: Каким образом надо делать запрос, чтобы получить Записи в таком виде?

Я пытался сделать вот это:

&НаСервереБезКонтекста
Функция КонцепцияДляЭкспортаВДот()
     Результат = Справочники.Концепция.Выбрать();
     Возврат Результат; // Здесь вылетает ошибка
КонецФункции

&НаКлиенте Процедура ExportToDot(Команда) Сообщить("Это тест, dot");

Цели = КонцепцияДляЭкспортаВДот();

Сообщить("Цели:" + Цели);

Текст = Новый ТекстовыйДокумент; Текст.УстановитьТекст("digraph d { A -> B } фис"); Текст.Записать("C:\Users\DP118M\Desktop\daily stuff\dottest.txt",КодировкаТекста.UTF8); КонецПроцедуры

Но при попытке передать на клиент результат запроса Справочники.Концепция.Выбрать() вылетает вот такая ошибка:

{Справочник.Концепция.Форма.ФормаСписка.Форма(11)}: Fehler beim Aufrufen einer Kontextmethode (КонцепцияДляЭкспортаВДот)
      Цели = КонцепцияДляЭкспортаВДот();
da:
Fehler beim Übertragen von Daten zwischen dem Client und dem Server. Wert vom nicht zulässigen Typ.
da:
Fehler beim Transformieren der XDTO-Daten:
Schreiben des Eigenschaftswertes 'ret'
     Formular:Element
     Name: { v8.1c.ru/8.2/managed-app... »»
da:
Fehler beim Typenanzeigen:
Anzeige für den Typ 'СправочникВыборка.Концепция' nicht vorhanden

Перевожу: Ошибка при вызове контекстного метода (КонцепцияДляЭкспортаВДот) [...] Ошибка при передаче данных между клиентом и сервером. Значение имеет неправильный тип. Ошибка при преобразовании данных XDTO.

Заранее спасибо

Дмитрий

  • Это что за язык 0о а пардон.. 1с – Ozim Aug 11 '11 at 13:58
  • 1
    Это встроенный язык "1С:Предприятие 8.2", работающий под немецкоязычной семеркой. Сладкая парочка :) – Glory to Russia Aug 11 '11 at 14:00

1 Answers1

2

Вот это работает:

&НаСервере
Функция КонцепцияДляЭкспортаВДот()
    Перем СодержимоеФайла;
    Перем Ярлык;
    Перем ОформлениеУзла;
Выборка = Справочники.Концепция.Выбрать();

ТекстовыйДокумент = Новый ТекстовыйДокумент;

[...]

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

[...]
ТекстовыйДокумент.ДобавитьСтроку(Выборка.Код); [...]
КонецЦикла;

Возврат ТекстовыйДокумент;

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

&НаКлиенте Процедура ExportToDot(Команда)
ТекстовыйДокумент = КонцепцияДляЭкспортаВДот();

ТекстовыйДокумент.Записать("concept.dot",КодировкаТекста.UTF8); КонецПроцедуры

angry
  • 8,677
  • 18
  • 74
  • 182