8.х Простой вопрос

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем Oleg_Z, 17 окт 2012.

  1. TopicStarter Overlay
    Oleg_Z
    Offline

    Oleg_Z

    Регистрация:
    17 окт 2012
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте господа.
    Меня зовут Олег.
    Недавно пробую себя в программировании, не профессионально, а так - для души.

    Пытаюсь разобраться в одном вопросе, возможно он решается и без программирования встроенными методами, буду рад подсказке:

    Имеется справочник с реквизитом и табличной частью. В форме документа, в его табличной части одно из полей имеет тип ссылки на справочник. При активизации этого поля в новой строке появляется форма выбора справочника. При выборе элемента справочника в форму документа переносятся только данные реквизита справочника. Можно ли при выборе элемента справочника также перенести данные из его табличной части в одноименные поля табличной части документа (на подобии "ввода на основании")? Или, как вариант, перенести данные различных реквизитов справочника в табличную часть документа?
  2. WaRDeR
    Offline

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

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    А как планируется несколько строк справочника добавить в одну строку документа?
  3. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    если я правильно поняла, то используйте событие ПриИзменении данного поля. Ссылка на элемент справочника у вас есть (проверьте только чтоб не пустая была), а дальше по ней выбирайте все нужные/заполненные реквизиты элемента справочника...
  4. TopicStarter Overlay
    Oleg_Z
    Offline

    Oleg_Z

    Регистрация:
    17 окт 2012
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Прежде всего спасибо за внимание и ответ.
    Нет, мне нужно данные из одной строки справочника добавить в одну строку документа.
  5. TopicStarter Overlay
    Oleg_Z
    Offline

    Oleg_Z

    Регистрация:
    17 окт 2012
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Спасибо за ответ.
    Но где содержится ссылка на элемент справочника?
  6. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    как вам ответить.... в поле где вы выбираете элемент справочника, вот там и будет ссылка на этот элемент...
  7. WaRDeR
    Offline

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

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    А от куда 1С узнает, из какой строки справочника брать данные?
  8. TopicStarter Overlay
    Oleg_Z
    Offline

    Oleg_Z

    Регистрация:
    17 окт 2012
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Ну я же выбираю элемент справочника из формы выбора справочника. Реквизит "наименование" попадает в новую строку табличной части документа, а вот как "вытащить" остальные реквизиты немогу понять. В процедуре "ОбработкаВыбора" передается только Строка. Что-то истина до меня не доходит:)))
  9. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    Наименование в данном случае (скорее всего) это представление элемента справочника, а на самом деле там ссылка на этот элемент... посмотрите отладчиком

    посмотрите в сторону события ПриИзменении этого поля.
  10. TopicStarter Overlay
    Oleg_Z
    Offline

    Oleg_Z

    Регистрация:
    17 окт 2012
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    У меня под "Наименование" имеется в виду Стандартный Реквизит справочника. Его я использую для хранения сведенийо товаре. Может быть в этом ошибка?
  11. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    Давайте уточним. У вас есть ТЧ, в ней есть поле, от которого идет заполнение остальных полей, так? Какого типа это поле? СправочникСсылка?
  12. TopicStarter Overlay
    Oleg_Z
    Offline

    Oleg_Z

    Регистрация:
    17 окт 2012
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Да, совершенно верно. В Справочнике Номенклатура есть реквизиты:
    НаименованиеТМЦ (стандартный реквизит "Наименование"),
    ЕденицаИзмерения (тип ПеречисленияСсылка),
    НоменклатурныйНомер (тип строка длиной 12),
    ЦенаЕденицы (тип число 15х2).
    Одноименные поля имеются и в ТЧ Документа:
    НаименованиеТМЦ (тип СправочникСсылка.Номенклатура)
    ЕденицаИзмерения (тип Строка),
    НоменклатурныйНомер (тип строка длиной 12),
    ЦенаЕденицы (тип число 15х2).

    В ТЧ Документа добавляю новую строку. В поле ТЧ "НаименованиеТМЦ" вызываю форму выбора Справочника "Номенклатура", выбираю нужный элемент из
    списка... и вот здесь мне нужно чтобы остальные данные выбранного мной элемента из реквизитов Справочника "переписались" в одноименные поля этой новой строки ТЧ.
    Что-то не получается, не хватает понимания (или еще чего-то :blush: )
  13. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    ну дак вот навешивайте на ваше поле ТЧ НаименованиеТМЦ обработчик события ОбработкаВыбора. В ней есть параметр ВыбранноеЗначение, вот это будет ссылка на элемент справочника, у него должны быть доступны все поля, которые вы перечислили, через "." выдергивайте их в этом обработчике...
  14. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    что-то такое наверное получится
    Код:
    Процедура ОбъектСтроительстваОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    тд = ЭлементыФормы.ВашеТП.ТекущиеДанные;
    Если Не ВыбранноеЗначение.Пустая() Тогда
    тд.НаименованиеТМЦ = ВыбранноеЗначение.Ссылка;
    тд.ЕдиницаИзмерения = ВыбранноеЗначение.ЕдиницаИзмерения;
    //остальные по аналогии
    КонецЕсли
    
    КонецПроцедуры
    
  15. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    Если у вас конфигурация типовая, то попробуйте создать внешнюю обработку заполнения табличных частей, в типовых конфигурациях есть справочник "Внешние обработки" в нем есть некоторая информация о том как это сделать.
    При подключении (таким образом) внешней обработки возникает возможность в документе заполнять табличные части (кнопка "Заполнить")
    Пример как это выглядит :
    Посмотреть вложение 12652

    Вложения:

  16. TopicStarter Overlay
    Oleg_Z
    Offline

    Oleg_Z

    Регистрация:
    17 окт 2012
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Не получается. Выдает: "Поле Объекта не обнаружено "Ссылка""
    Подозреваю что ВыбранноеЗначение не содержит Ссылку, что можно сделать?

    Спасибо. Но у меня не типовая конфигурация, поэтому не хотелось бы связываться с внешними обработками...
  17. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    покажите ваш код...
  18. TopicStarter Overlay
    Oleg_Z
    Offline

    Oleg_Z

    Регистрация:
    17 окт 2012
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Код:
    &НаКлиенте
    Процедура НоменклатураНаименованиеТМЦОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
    СтандартнаяОбработка=Ложь;
    СтрокаТабличнойЧасти=Элементы.Номенклатура.ТекущиеДанные;
    
    Если Не ВыбранноеЗначение.Пустая() Тогда
    СтрокаТабличнойЧасти.НаименованиеТМЦ=ВыбранноеЗначение.Ссылка;
    СтрокаТабличнойЧасти.НоменклатурныйНомер=ВыбранноеЗначение.НоменклатурныйНомер;
    СтрокаТабличнойЧасти.ЕденицаИзмерения=ВыбранноеЗначение.ЕденицаИзмерения;
    СтрокаТабличнойЧасти.ЦенаЕденицы=ВыбранноеЗначение.ЦенаЕденицы;
    КонецЕсли
    КонецПроцедуры
    
  19. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    хм.. все данные храняться на сервере, на клиенте вы их не сможете получить...потому, выделите получение данных в отдельную процедуру с диррективой НаСервере и обратитесь к ней, передав как параметр ВыбранноеЗначение, после того, как получите значения, надо их передать на клиента и заполнить ими табличную часть

    З.Ы. Почитайте литературу, например у Радченко наверняка найдете примеры к вашей задаче
  20. TopicStarter Overlay
    Oleg_Z
    Offline

    Oleg_Z

    Регистрация:
    17 окт 2012
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Радченко читаю, спасибо.

    А где эту процедуру расположить? В общем модуле?

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