Как сделать отбор в справочнике?
X

Привет дорогой друг

Наш сайт существует и развиваетется за счет рекламы. Пожалуйста, отключите блокировку рекламы AdBlock или подобное, для нашего сайта. Спасибо!
Показано с 1 по 5 из 5
  1. #1
    Гость форума

    Регистрация
    20.11.2015
    Сообщений
    3
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях

    По умолчанию Как сделать отбор в справочнике?

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

    пытаюсь реализовать автоматическую подстановку реквизита, при изменении элемента формы.

    Ошибки не выдает, но и реквизит не подставляет.

    Я только учусь, поэтому не судите строго:blush::blush::blush:

    2222.jpg

  2. #2
    Гордость форума PRO

    Регистрация
    29.01.2010
    Сообщений
    1212
    Сказал(а) спасибо
    30
    Поблагодарили 261 раз(а) в 245 сообщениях

    По умолчанию Re: Как сделать отбор в справочнике?

    Цитата Сообщение от EVoronova Посмотреть сообщение
    Ошибки не выдает, но и реквизит не подставляет.
    А как он может вернуть? Почитать в "букваре" - а есть ли в контексте "Клиент" такие объекты как "справочник ссылка"?
    Т.е. хинт "а наподумать" - Процедура на стороне сервера "это" возвращает, теперь вопрос - а может ли это воспринять "на прямую" процедура в контексте "на клиенте"?

  3. #3
    Гость форума

    Регистрация
    20.11.2015
    Сообщений
    3
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях

    По умолчанию Re: Как сделать отбор в справочнике?

    А как это реализовать? я пыталась с помощью метода справочника "Выбрать", получить выборку и с помощью отбора получить нужный объект, и у него взять нужный реквизит и отправить его в процедуру на клиенте.

    Но я не понимаю почему метод "Выбрать", возвращает выборку с неопределенными значениями, если я не накладываю значение отбора, он ведь должен вернуть все объекты справочника ?

    Подскажите пожалуйста, как реализовать эту задачу? " на подумать" я уже потратила много времени=) но у меня ничего не выходит........(
    4444.jpg

  4. #4
    Гость форума

    Регистрация
    20.11.2015
    Сообщений
    3
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях

    По умолчанию Re: Как сделать отбор в справочнике?

    А как это реализовать? я пыталась с помощью метода справочника "Выбрать", получить выборку и с помощью отбора получить нужный объект, и у него взять нужный реквизит и отправить его в процедуру на клиенте.

    Но я не понимаю почему метод "Выбрать", возвращает выборку с неопределенными значениями, если я не накладываю значение отбора, он ведь должен вернуть все объекты справочника ?

    Подскажите пожалуйста, как реализовать эту задачу? " на подумать" я уже потратила много времени=) но у меня ничего не выходит........(
    4444.jpg

  5. #5
    Гордость форума PRO

    Регистрация
    29.01.2010
    Сообщений
    1212
    Сказал(а) спасибо
    30
    Поблагодарили 261 раз(а) в 245 сообщениях

    По умолчанию Re: Как сделать отбор в справочнике?

    Цитата Сообщение от EVoronova Посмотреть сообщение
    А как это реализовать? я пыталась с помощью метода справочника "Выбрать", получить выборку и с помощью отбора получить нужный объект
    В качестве совета - минимизируйте на 8-ке использование "объектной модели" програмирования (это несёт довольно существенные издержки на платформу "лишними действиями"). Сделайте запрос и вытаскивайте им (в контексте сервера) все что нужно.
    Ну и небольшая выдержка из "букваря"

    7.2.2. Преобразование данных прикладных объектов в данные формы и обратно
    Для конвертирования прикладных объектов в данные формы и обратно существует набор глобальных методов:

    ? ЗначениеВДанныеФормы(),

    ? ДанныеФормыВЗначение(),

    ? КопироватьДанныеФормы().

    Методы, работающие с прикладными объектами, доступны только в серверных процедурах. Метод для копирования значений между данными формы доступен на сервере и на клиенте, так как не требует прикладных объектов в качестве параметров.

    Во время конвертирования данных формы в прикладной объект нужно учитывать их совместимость.

    ? ЗначениеВДанныеФормы() – преобразует объект прикладного типа в данные формы.

    ? ДанныеФормыВЗначение() – преобразует данные формы в объект прикладного типа.

    ? КопироватьДанныеФормы() – производит копирование данных формы, обладающих совместимой структурой. Возвращает значение Истина, если копирование произведено, или Ложь, если структура объектов несовместима.

    При преобразовании данных формы в прикладные объекты и обратно используется кеширование объектов, но при этом выполняется проверка актуальности версии объекта в кеше.


    Приведем пример, как использовать преобразование данных в собственных алгоритмах.

    Копировать в буфер обмена

    &НаСервере
    Процедура ПриСозданииНаСервере(Отка� �, СтандартнаяОбработка)
    ОбъектТовар = Товары.НайтиПоНаименовани� �("Кофейник").ПолучитьОбъект ();
    ЗначениеВДанныеФормы(Объе� �тТовар, Объект);
    КонецПроцедуры
    &НаКлиенте
    Процедура Записать()
    ЗаписатьНаСервере();
    КонецПроцедуры
    &НаСервере
    Процедура ЗаписатьНаСервере()
    ОбъектТовар = ДанныеФормыВЗначение(Объе� �т, Тип("СправочникОбъект.Това� �ы"));
    ОбъектТовар.Записать();
    КонецПроцедурыТакже у объекта УправляемаяФорма существуют методы, доступные на сервере:

    ? ЗначениеВРеквизитФормы() – выполняет преобразование объекта прикладного типа в заданный реквизит формы.

    ? РеквизитФормыВЗначение() – преобразует реквизит данных формы в объект прикладного типа.

    Использование данных методов обычно удобнее, так как они имеют, например, информацию о типе реквизита формы. Кроме того, метод РеквизитФормыВЗначение() выполняет установку соответствия данных формы и объекта, которая используется при формировании сообщений (см. здесь).

    Также следует помнить, что при преобразовании в данные формы (как с помощью метода ЗначениеВДанныеФормы(), так и с помощью метода ЗначениеВРеквизитФормы()) объектов типа ТаблицаЗначений или ДеревоЗначений нужно учитывать следующую особенность: в преобразуемом объекте должны существовать все колонки, которые существуют в данных формы.

    ВНИМАНИЕ! Колонки реквизитов, не связанные с данными (см. здесь), не участвуют в преобразовании значений между данными формы и объектами информационной базы и обратно. Колонки, отсутствующие в данных объекта, очищаются при преобразовании в данные формы.

    Примечание. В качестве первого параметра методов РеквизитФормыВЗначение() и ДанныеФормыВЗначение() могут выступать только реквизиты формы следующих типов: ДанныеФормыСтруктура, ДанныеФормыКоллекция, ДанныеФормыСтруктураСКолл екцией, ДанныеФормыДерево.

    Приведем пример использования этих методов.

    Копировать в буфер обмена

    &НаСервере
    Процедура ПересчитатьНаСервере()
    // Преобразует реквизит Объект в прикладной объект.
    Документ = РеквизитФормыВЗначение("Об ъект");
    // Выполняет пересчет методом, определенным в модуле документа.
    Документ.Пересчитать();
    // Преобразует прикладной объект обратно в реквизит.
    ЗначениеВРеквизитФормы(До� �умент, "Объект");
    КонецПроцедуры

Похожие темы

  1. Не получается удалить контрагентов в справочнике!
    от ZAviator в разделе 1С - Предприятие 8.0, 8.1, 8.2, 8.3
    Ответов: 13
    Последнее сообщение: 25.12.2014, 17:18
  2. Ответов: 3
    Последнее сообщение: 29.10.2014, 09:12
  3. Печать справочника расчетные счета из 1 С 7.7
    от sitash в разделе 1С - Предприятие 7.7
    Ответов: 1
    Последнее сообщение: 01.07.2014, 02:37
  4. Значение реквизита справочника из модуля управляемого приложения
    от dr_t_j в разделе Конфигурирование, программирование 1С - Предприятие
    Ответов: 0
    Последнее сообщение: 14.01.2014, 12:53

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •