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

Проблема с выводом справочников

Автор rogaz, 17 окт 2014, 20:11

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

rogaz

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

LexaK

да, необходимо создать программку/обработку/функцию, в ней использовать Метаданные

Для каждого лкМета Из Метаданные.Справочники Цикл
    //здесь вставить код по наполнению списка значений
КонецЦикла;
если помогло нажмите: Спасибо!

rogaz

Цитата: LexaK от 17 окт 2014, 20:53
да, необходимо создать программку/обработку/функцию, в ней использовать Метаданные

Для каждого лкМета Из Метаданные.Справочники Цикл
    //здесь вставить код по наполнению списка значений
КонецЦикла;


Спасибо, а вы можете подсказать в каком конкретно модуле это возможно сделать? Как я понял, к справочникам можно обращаться только через сервер.

LexaK

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

rogaz

Цитата: LexaK от 17 окт 2014, 21:36
да, если управляемые формы, то функцию надо определять на сервере, и возвращать списокзначений.
пропишите в каком нибудь общем модуле, сделайте экспортной и пользуйтесь.

Хм, чего то я ещё не понял. В общем модуле поместил функцию. В возврат список поместить не получается.

&НаСервере
Функция Список(а) Экспорт
СписокЗ = Новый СписокЗначений();
Для каждого Мета Из Метаданные.Справочники Цикл
СписокЗ.Добавить(Мета);
КонецЦикла;
а = СписокЗ;
КонецФункции

Пытаюсь вызвать в модуле управляемого приложения

Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные)
//а=Новый СписокЗначений();
//ф=Список(а);
КонецПроцедуры

Выдается ошибка - Процедура или функция с указанным именем не определена (Список)

cska-fanat-kz

1. Если у вас функция, то она должна возвращать какое-то значение, а иначе какой сакральный смысл в
    ф = список(а);
что будет в Ф?
2. Почему выбрано именно такое экзотическое событие модуля УП?
3. Если общий модуль не глобальный, то функцию (aka процедуру) надо вызывать
    <<ИмяОбщегоМодуля>>.Список(а);
4. "СписокЗ.Добавить(Мета);" - вам нужен список именно метаданных? Или достаточно
СписокЗ.Добавить(Мета.Имя, Мета.Синоним);
??
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

rogaz

Цитата: cska-fanat-kz от 18 окт 2014, 08:50
1. Если у вас функция, то она должна возвращать какое-то значение, а иначе какой сакральный смысл в
    ф = список(а);
что будет в Ф?
2. Почему выбрано именно такое экзотическое событие модуля УП?
3. Если общий модуль не глобальный, то функцию (aka процедуру) надо вызывать
    <<ИмяОбщегоМодуля>>.Список(а);
4. "СписокЗ.Добавить(Мета);" - вам нужен список именно метаданных? Или достаточно
СписокЗ.Добавить(Мета.Имя, Мета.Синоним);
??

1. Это была часть моего предыдущего вопроса, занести список в возврат не получается почему-то.
2. Выбрано наугад, я с ними только начал работать, буду признателен если подскажете конкретный модуль и конкретное событие подходящее для моей задачи.
3. Точно, косяк.
4. Мне нужно будет вывести список справочников, затем выбрать один из них и получить список реквизитов, так что я не знаю, хватит ли одних имён, подскажите, пожалуйста.

cska-fanat-kz

Цитата: rogaz от 18 окт 2014, 10:18
1. Это была часть моего предыдущего вопроса, занести список в возврат не получается почему-то.
2. Выбрано наугад, я с ними только начал работать, буду признателен если подскажете конкретный модуль и конкретное событие подходящее для моей задачи.
3. Точно, косяк.
4. Мне нужно будет вывести список справочников, затем выбрать один из них и получить список реквизитов, так что я не знаю, хватит ли одних имён, подскажите, пожалуйста.

1. Текущий вариант также имеет место быть. То есть когда значение возвращается в параметре процедуры (например ВвестиЧисло() так делает). Но если уж использовать функцию, то в конце надо "Возврат Список;" сделать.
2. Знать бы сперва условие этой задачи...
4. Кто будет выбирать? Программно по условию или пользователь?
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

rogaz

Цитата: cska-fanat-kz от 18 окт 2014, 12:12
Цитата: rogaz от 18 окт 2014, 10:18
1. Это была часть моего предыдущего вопроса, занести список в возврат не получается почему-то.
2. Выбрано наугад, я с ними только начал работать, буду признателен если подскажете конкретный модуль и конкретное событие подходящее для моей задачи.
3. Точно, косяк.
4. Мне нужно будет вывести список справочников, затем выбрать один из них и получить список реквизитов, так что я не знаю, хватит ли одних имён, подскажите, пожалуйста.

1. Текущий вариант также имеет место быть. То есть когда значение возвращается в параметре процедуры (например ВвестиЧисло() так делает). Но если уж использовать функцию, то в конце надо "Возврат Список;" сделать.
2. Знать бы сперва условие этой задачи...
4. Кто будет выбирать? Программно по условию или пользователь?
По условию необходимо с помощью диалога выбора вывести список справочников, пользователь выбирает один из них, затем из выбранного справочника  выбирает реквизиты, которые будут выведены. Всё должно реализоваться через список значений.Какие модули и обработчики вы бы порекомендовали?

LexaK

попробуйте такой вариант


&НаСервере
Функция ПолучитьСписокСправочников() Экспорт
    СписокЗ = Новый СписокЗначений();
    Для каждого Мета Из Метаданные.Справочники Цикл
          СписокЗ.Добавить(Мета.Имя,Мета.Синоним);   
    КонецЦикла;
    //а = СписокЗ; в вашем случае так не надо делать
    Возврат СписокЗ;
КонецФункции


&НаКлиенте
Процедура КакаятоВашаОбработка()

     СписокСправочников = ПолучитьСписокСправочников();

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


Вроде ничего сложного.

если помогло нажмите: Спасибо!

Теги:

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

Рейтинг@Mail.ru

Поиск