1. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление

Изменение реквизита Справочника через Документ

Тема в разделе "Базы данных и администрирование", создана пользователем lira89, 28 апр 2010.

  1. lira89

    lira89 Well-Known Member

    Репутация:
    0
    Регистрация:
    12 мар 2010
    Сообщения:
    154
    Симпатии:
    0
    Есть заполненный справочник Обучение в котором реквизиты ФИО и возраст например. Есть документ, в котором есть реквизиты ФИО и возраст. Тип ФИО и в справочнике и в документе Справочник.Люди. Надо с помощью документа изменить возраст в нужной записи в справочнике Обучение. Вот такой пример не срабатывает(см ниже). Вопрос, почему не срабатывает метод НайтиЭлемент, он равен 0, хотя в справочнике Обучение есть строка с таким ФИО?
    Код:
    Спрл=СоздатьОбъект("Справочник.Обучение");
    Если ФИО .Выбран()=1 Тогда 
    Спрл.НайтиЭлемент(ФИО); //вот здесь =0
    Спрл.Возраст=Возраст; //здесь пишет что не выбран элемент
    Спрл.Записать();
    КонецЕсли;
     
  2. vbs

    vbs Well-Known Member

    Репутация:
    0
    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    Похоже, надо так :
    Если Спрл.НайтиПоРеквизиту("ФИО",ФИО) = 1 Тогда
    Спрл.Возраст=Возраст;
    Спрл.Записать();
    КонецЕсли
     
  3. strenuus

    strenuus Гость

    Репутация:
    0
    А если то же самое, только в версии 8.1. Просто синтаксис другой и я не знаком с предыдущими версиями.
     
  4. unknown181538

    unknown181538 НеГуру

    Репутация:
    0
    Регистрация:
    28 дек 2008
    Сообщения:
    1.417
    Симпатии:
    0
  5. strenuus

    strenuus Гость

    Репутация:
    0
    Просто нигде не написано как обращаться к определенной записи в справочнике из документа. Запись типа:
    Спрл.Возраст=Возраст; вообще не поддерживается. Или может я где-то торможу.
    А книг я перешерстил много. Очень много и просто так вопрос не задавал бы. Или дайте хоть название книги, где это можно прочесть.
     
  6. unknown181538

    unknown181538 НеГуру

    Репутация:
    0
    Регистрация:
    28 дек 2008
    Сообщения:
    1.417
    Симпатии:
    0
    Эх... могу наврать по памяти:
    Спрл = Справочники.МойСправочник.НайтиПоРеквизиту("ФиО",Фио);
    Если ЗначениеЗаполнено(Спрл) Тогда
    Об = Спрл.ПолучитьОбъект();
    Об.Возраст=Возраст;
    Об.Записать();
    КонецЕсли

    Читать "Практичское пособие","Простые примеры", Синтаксис- помощник)
     
  7. Darlock

    Darlock Well-Known Member

    Репутация:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    560
    Симпатии:
    1
    В "НайтиПоРеквизиту" используйте третий параметр "Истина" т.е.
    Код:
    Спрл = Справочники.МойСправочник.НайтиПоРеквизиту("ФиО",Фио, Истина);
    Будет искать полное соответствие реквизита и "ФИО"
     
Загрузка...

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