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

Тема в разделе "1C и всё что с ней связано", создана пользователем lira89, 28 апр 2010.

  1. lira89

    lira89 Well-Known Member

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

    vbs Well-Known Member

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

    strenuus Гость

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

    unknown181538 НеГуру
    1C Team

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

    strenuus Гость

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

    unknown181538 НеГуру
    1C Team

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

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

    Darlock Well-Known Member
    1C Team

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

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