8.х Со справочника должности организации в должности

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем 19yellow92, 4 апр 2016.

  1. TopicStarter Overlay
    19yellow92
    Offline

    19yellow92

    Регистрация:
    29 мар 2016
    Сообщения:
    38
    Симпатии:
    0
    Баллы:
    1
    Добрый день. Подскажите пожалуйста , стоит такая задача: необходимо при добавлении, изменении или удпленил данных в этом справочнике, производить аналогичные действия в справочнике Должности.
    Добавила такой код в процедуру перед записью, но ругается.











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

    Говорит: Значение не является значением объектной типа (Пустая)

    Подскажите, что делать?
  2. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.755
    Симпатии:
    509
    Баллы:
    204
    Почитайте про Выбрать() в синтаксис-помощнике, такие вопросы сразу отпадут.
  3. TopicStarter Overlay
    19yellow92
    Offline

    19yellow92

    Регистрация:
    29 мар 2016
    Сообщения:
    38
    Симпатии:
    0
    Баллы:
    1
    Формирует выборку элементов справочника по заданным условиям.
    И? Здесь не так что-то?в упор не вижу
  4. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.755
    Симпатии:
    509
    Баллы:
    204
    Как ссылка может быть пустой ?
  5. Draco
    Online

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.634
    Симпатии:
    946
    Баллы:
    204
    Алект тут не в этоом дело тут все правильно Справочник Ссылка.Пустая()


    Читайте - читайте
    там будет написано

    Возвращаемое значение:

    Тип: СправочникВыборка.

    Вы что издеватесь?

    В вашей выборке может быть и 1000000 элементов

    когда вы пишите Объект.Ссылка.Пустая() то Ссылка это ссылка на какой из 1000000 элементов?
  6. TopicStarter Overlay
    19yellow92
    Offline

    19yellow92

    Регистрация:
    29 мар 2016
    Сообщения:
    38
    Симпатии:
    0
    Баллы:
    1
    Тогда каким способом я могу указать на то, что Объект это должности организации.
    И вообще, Вы как считаете, на сколько этот код верен?
  7. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.755
    Симпатии:
    509
    Баллы:
    204
    проверяйте на тип значения
  8. TopicStarter Overlay
    19yellow92
    Offline

    19yellow92

    Регистрация:
    29 мар 2016
    Сообщения:
    38
    Симпатии:
    0
    Баллы:
    1
    Это как? ☺
  9. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.755
    Симпатии:
    509
    Баллы:
    204
    про ТипЗнч() почитайте, там есть пример.
  10. TopicStarter Overlay
    19yellow92
    Offline

    19yellow92

    Регистрация:
    29 мар 2016
    Сообщения:
    38
    Симпатии:
    0
    Баллы:
    1
    Пишу:

    Если ТипЗнач (Объект) = Тип("справочники.должности организации") Тогда
    Если Объект.Ссылка.Пустая() Тогда.... дальше как написано раньше.
    --- Объединение сообщений, 4 апр 2016 ---
    И то неправильно.
  11. TopicStarter Overlay
    19yellow92
    Offline

    19yellow92

    Регистрация:
    29 мар 2016
    Сообщения:
    38
    Симпатии:
    0
    Баллы:
    1
    Говорит что функция с указанным именем не определена. Я про ТипЗнч
  12. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.755
    Симпатии:
    509
    Баллы:
    204
    Не верю:
    ТипЗнч (TypeOf)
    Синтаксис:

    ТипЗнч(<Значение>)
    Параметры:

    <Значение> (обязательный)

    Тип: Произвольный.
    Значение, тип которого необходимо получить.
    Возвращаемое значение:

    Тип: Тип.
    Описание:

    Получает тип значения.
    Доступность:

    Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
    Пример:

    Если ТипЗнч(ТекОбъект) = Тип("СправочникСсылка.Номенклатура") Тогда ...
    КонецЕсли;
  13. TopicStarter Overlay
    19yellow92
    Offline

    19yellow92

    Регистрация:
    29 мар 2016
    Сообщения:
    38
    Симпатии:
    0
    Баллы:
    1
    Если ТипЗнч (Объект) = Тип("справочникСсылка.должности организаций") Тогда
    Если Объект.Ссылка.Пустая() Тогда.... дальше как написано раньше.
    В отладке вообще сюда не попадает
    --- Объединение сообщений, 4 апр 2016 ---
    Спасибо, я прочитала в С. Теперь в отладке не заходит дальше в условие
  14. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.755
    Симпатии:
    509
    Баллы:
    204
    Почему пробел в имени метаданных ????????????????????????
  15. TopicStarter Overlay
    19yellow92
    Offline

    19yellow92

    Регистрация:
    29 мар 2016
    Сообщения:
    38
    Симпатии:
    0
    Баллы:
    1
    Это я руками писала. В коде все норм.
    Не ругается ни на что теперь, но в условие не заходит
  16. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.755
    Симпатии:
    509
    Баллы:
    204
    Какой тип у Объкта в отладчике ? Скрин давайте.
  17. TopicStarter Overlay
    19yellow92
    Offline

    19yellow92

    Регистрация:
    29 мар 2016
    Сообщения:
    38
    Симпатии:
    0
    Баллы:
    1
    Как-то так. В отладке объект не определяется и справочникссылка тоже (((

    Вложения:

  18. Draco
    Online

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.634
    Симпатии:
    946
    Баллы:
    204
    Вы написали
    "Добавила такой код в процедуру перед записью"

    Где именно в модуле формы или объекта справочника?
  19. TopicStarter Overlay
    19yellow92
    Offline

    19yellow92

    Регистрация:
    29 мар 2016
    Сообщения:
    38
    Симпатии:
    0
    Баллы:
    1
    В модуле формы. База упп
  20. Draco
    Online

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.634
    Симпатии:
    946
    Баллы:
    204
    1. почему перез даписью может у вас данный элемент и не запишется и егоне будет в базе. Лучше уже ПослеЗаписи

    2. Ну и

    У Вас же там доступны и Ссылка и ЭтотОбъект?

    зачем какая то проверка
    что просто так нельзя

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

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