8.х не работает простейший код

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем sergey kalinin, 3 мар 2009.

  1. TopicStarter Overlay
    sergey kalinin
    Offline

    sergey kalinin

    Регистрация:
    3 мар 2009
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    помогите пожалуйста разобраться в одной очень простой ситуации (для меня она сложная, потому чо я начинающий пользователь). проблема в следующем:
    я создаю форму документа. в модуле этой формы пишу такой код

    Код:
    СпрТов = Справочники.Сотрудники.СоздатьЭлемент();
    СпрТов.Сотрудники.Должность = Должность;
    СпрТов.Оклад = Оклад;
    СпрТов.Записать();
    
    это делаю для того чтобы при проведении документа выполнился этот код и в справочник Сотрудники (он конечно же существует и с правильной структурой) добавилась новая строка, содержащая должность сотрудника и его оклад.
    но при проведении документа в справочник Сотрудники добавляются только пустая строка.

    подскажите пожалуйста почему..
  2. lazy
    Offline

    lazy Модераторы Команда форума Модератор

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    Скорее всего вы ничем не заполнили переменные Должность и Оклад, и они содержат значение Неопределено. Соответственно новый элемент справочника пуст.

    Попробуйте заменить свой код на такой:
    Код:
     Оклад = 999999;
    СпрТов = Справочники.Сотрудники.СоздатьЭлемент();
    СпрТов.Сотрудники.Должность = Должность;
    СпрТов.Оклад = Оклад;
    СпрТов.Записать();
    
    Если после этого будет сохранятся справочник с окладом 999999, то значит, я прав - переменные не заполнены, разбирайтесь с их заполнением.
  3. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Я думаю, что строка у вас пустая (хотя вообще - это Элемент Справочника Сотрудники, а не Строка) потому что вы не заполнили "Наименование", вот он у вас такой пустой и существует.

    Сделайте в коде строчку Сотрудники.Наименование = "Новый Сотрудник", например. :)

    А еще в форме списка сотрудников выведите реквизиты оклад и должность - тоже покажут, что они не пустые.

    Но вообще не очень понятно откуда такая задача взялась :)
  4. TopicStarter Overlay
    sergey kalinin
    Offline

    sergey kalinin

    Регистрация:
    3 мар 2009
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    спасибо всем за ответы. но мои проблемы не закончились...

    во-первых скажу про саму задачу, потому что деиствительно сложно представить конфигурацию, основываясь только на моём первом посте.
    я начал изучать 1с предприятие пытаясь реализовать вот этот несложный пошаговый пример http://mista.ru/tutor_1c/example_kadrs.htm

    пробовал я в вышепривидённом коде присваивать значения напрямую(то есть как вы мне посоветовали). в этом случае в соответствующий справочник добавлялись соответствующие записи. то есть пример работал нормально.

    меня сеичас интересует как все таки присвоить переменной значение из формы. то есть пользователь заполняет документ о примеме на работу, проводит и в справочник добавляется именно то значение, которое он ввёл в форму.

    пробовал я использовать в коде стоки типа этих: СпрТов.Наименование = Документы.ПриёмНаРаботу.НадписьФИО;

    СпрТов.Наименование = Документы.ПриёмНаРаботу.Форма.ФормаДокумента.НадписьФИО;

    СпрТов.Наименование = Документы.ПриёмНаРаботу.Наименование;

    СпрТов.Наименование = Наименование;

    в результате программа выдавала только сообщения об ошибках


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

    ps
    версия - 8.1
  5. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.771
    Симпатии:
    509
    Баллы:
    204
    Нужно отталкиваться от формы, в которую вводите данные, так сказать получить ее. Например:
    Код:
    Должность=ЭтаФорма.ЭлементыФормы.Должность.Значение;
    
    
    Хотя если у вас заданы параметры как реквезиты, то достаточно получить форму и присвоить переменной значение реквезита:
    Код:
    Должность=Должность;
    
    
Похожие темы
  1. lamer1C
    Ответов:
    6
    Просмотров:
    2.436
Загрузка...

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