В Журнале Получить Список Документов

Тема в разделе "1C и всё что с ней связано", создана пользователем Дайнеко, 11 июн 2012.

  1. Дайнеко

    Дайнеко Well-Known Member
    1C Team

    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    Что-то тыкаюсь, а не вижу правильного решения.
    Есть журнал Полный. Правда он совсем уж и полный. Поэтому для некоторой манипуляции нужно получить список видов документов, которые в него входят.

    Конечно, есть решение неправильное. Ведь это же я сам их туда натыкал, так что я знаю ответ заранее. Могу и просто в программе их перечислить. Но по-правильному, надо получить эту коллекцию программно.
    Осмотрел Основной реквизит формы - в нем ничего путного. Есть Отбор = "ВидДокумента", но он отключен.


    P.s.
    Интересно иногда получается: надо просто подумать, прежде чем писать. Пока писал, параллельно посмотрел в метаданные. Кажется, там ответ. Но заклинило на типах. Есть переменная ТипДока, содержащая Тип документа = Акт списания (не ОписаниеТипов). Как через нее выйти на символьное имя документа = "АктСписания".
     
  2. Allexei

    Allexei Well-Known Member

    Регистрация:
    2 май 2008
    Сообщения:
    322
    Симпатии:
    0
    Так же через метаданные нельзя? Допустим получить таблицу значений с двумя колонками ИмяТипа и СинонимТипа, путем перебора метаданных(документов).ю а потом по синониму (Акт списания) найти ИмяТипа(АктСписания).
     
  3. Дайнеко

    Дайнеко Well-Known Member
    1C Team

    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    Почему нельзя? Именно так и сделал.
    Объясню еще раз. Предыстория такова: Мне нужно построить Запрос. В тексте запроса перечислить все документы, входящие в данный журнал.

    "Нельзя" я имел ввиду так: Запрос.Текст = "ВЫБРАТЬ ... Расходная.Склад, Приходная,Склад...." и написал руками все документы в этом журнале.

    А надо список задействованных видов создать программно. Примерно вот так:
    Код ( (Unknown Language)):
    Типы = Метаданные.ЖурналыДокументов.Полный.СтандартныеРеквизиты.Ссылка.Тип.Типы();
    Для н = 0 По Типы.ВГраница() Цикл
    Тип = Типы[н];
    ВидДока = ???
    Запрос.Текст = Запрос.Текст + ВидДока.Значение + ".Склад";
    КонецЦикла;       // н
    Сейчас заклинило только на переменной "Тип". Просто нет пока уверенности в работе с типами.
    Ее тип тоже = Тип. Значение, например, = Акт списания.
    Задача: получить символьную строку со словом "АктСписания" (так он называется). Выражение Строка(Тип) выдает синоним документа.


    Про перебор почти понял. Но подозрительно неправильно. Чует душа - должно быть просто выражение. Может и длинное.
     
Загрузка...

Поделиться этой страницей