8.х Автоматическое заполнение табличных полей из справочника

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Vedmochka, 5 июн 2007.

  1. TopicStarter Overlay
    Vedmochka
    Offline

    Vedmochka

    Регистрация:
    5 июн 2007
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Доброе время суток!!!

    У меня возникла такая проблема:

    Есть справочник с двумя реквизитами. 1-услуга, 2-описание этой услуги.
    Есть документ, где в табличной части выбирается элемент из этого справочника. Как сделать так что бы при выборе элемента справочника в поле "Услуга", в табличное поле "Описание услуги" автоматически вводился реквизит "описание услуги" из этого справочника?
    Всю голову сломала. Я понимаю что нужно написать что то в модуль "при изменении". Но что писать то? :)))
  2. Akuji
    Offline

    Akuji Опытный в 1С

    Регистрация:
    5 июн 2007
    Сообщения:
    119
    Симпатии:
    0
    Баллы:
    26
    Процедура справочникУслугаПриИзменении(Элемент)
    СтрокаТабличнойЧасти = ЭлементыФормы.справочник.ТекущиеДанные;
    СтрокаТабличнойЧасти.ОписаниеУслуги = СтрокаТабличнойЧасти.Услуга.ОписаниеУслуги;
    КонецПроцедуры
    и ссылку прописать на процедуру
  3. Эмин
    Offline

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

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    проще так - проямо в форме создай процедуру - событие "ПриИзменении" - сразу же в модуль переключишься. А там - как совершенно правильно написали:

    СтрокаТабличнойЧасти = ЭлементыФормы.ИМЯТВОЕЙТАБЛИЧНОЙЧАСТИ.ТекущиеДанные; //Получение текущей (редактируемой) строки табличной части
    СтрокаТабличнойЧасти.ОписаниеУслуги = СтрокаТабличнойЧасти.Услуга.ОписаниеУслуги;

    Советую посмотреть аналогичный код в любом документе, например, в реализации товаров - при изменении номенклатуры
  4. TopicStarter Overlay
    Vedmochka
    Offline

    Vedmochka

    Регистрация:
    5 июн 2007
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Спасибо! :unsure:
  5. Anastasiya
    Offline

    Anastasiya Опытный в 1С

    Регистрация:
    27 июн 2007
    Сообщения:
    134
    Симпатии:
    1
    Баллы:
    26
    У меня такая же проблема. Только что и где прописать я поняла и прописала, а в поле значение все равно не заносится. :unsure:
  6. Эмин
    Offline

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

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Проверьте типы присваиваемых значений, возможно они не совпадают, в результате не присваиваются.
  7. Anastasiya
    Offline

    Anastasiya Опытный в 1С

    Регистрация:
    27 июн 2007
    Сообщения:
    134
    Симпатии:
    1
    Баллы:
    26
    Уточню. Пытаюсь добавить в 1С УПП 8.1 в справочник Номенклатурные узлы в форму элемента поле Артикул, значения должны заносится из справочника Номенклатура, после выбора элемента. При пошаговой компиляции в табло заносятся правильные значения. Но в само поле ничего не прописывается. Сделала кнопку выбора, по аналогии с полем ЕдиницаИзмерения, тогда в Артикуле выбор переходит на справочник Номенклатурные узлы. Ничего не понимаю.
  8. Эмин
    Offline

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

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Вам не надо делать кнопки выбора, просто при событии (ПриИзмененииНоменклатуры) нужный элемент (если у вас реквизит, то реквизит, а если элемент формы, то ЭлементыФормы.Артикул.Значение = Номенклатура.Артикул)
  9. Anastasiya
    Offline

    Anastasiya Опытный в 1С

    Регистрация:
    27 июн 2007
    Сообщения:
    134
    Симпатии:
    1
    Баллы:
    26
    Я пишу вот так

    Код:
    Если ЗначениеНеЗаполнено(СтрокаТабличнойЧасти.Артикул) Тогда
    
    Если ТипЗнч(СтрокаТабличнойЧасти.Номенклатура) = Тип("СправочникСсылка.Номенклатура") Тогда
    
    СтрокаТабличнойЧасти.Артикул = СтрокаТабличнойЧасти.Номенклатура.Артикул;
    
    КонецЕсли;
    
    КонецЕсли; 
    
    
    Артикул - поле табличной части расположенной на форме. Только все равно не заносится. Возможно, не указаны какие-то свойства поля?
  10. Эмин
    Offline

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

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Тут надо через Данные Ячейки сделать.

    В процедуру ПриВыводеСтроки у своей табличной части, пусть Товары:

    ТоварыПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)

    Вставить:

    ЯчейкиСтрокиТабПоля = ОформлениеСтроки.Ячейки;
    ЯчейкиСтрокиТабПоля.Артикул.УстановитьТекст(Номенклатура.Артикул);

    Это нужно делать только через ячейки, ведь поле артикул у вас просто текстовое и не является реквизитом. Можно вставить такой же код в ПриИзмененииНоменклатуры
  11. Anastasiya
    Offline

    Anastasiya Опытный в 1С

    Регистрация:
    27 июн 2007
    Сообщения:
    134
    Симпатии:
    1
    Баллы:
    26
    Нашла в справочнике Спецификации уже проделанную такую же процедуру через ячейки. Запуталась окончательно! Почему в справочнике Номенклатурные узлы, где есть поле Единица измерения, это проделывается через СтрокуТабличнойЧасти, а в Спецификации через Ячейки? Или потому что в справочнике Номенклатура Артикул просто текстовое поле, а ЕдиницаИзмерения заносятся через ТабличноеПоле? Прошу прощения за дилетантские вопросы, мне важно понять что я делаю, а не тупо сделать по инструкции. :unsure:
  12. Эмин
    Offline

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

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Поясню:

    Если у вас это просто текстовое поле, вынесенное на форму (просто добавленная информационная колонка в табличную часть), то нужно действовать через ячейки, так как реквизита такого нет. Эти информационные поля принадлежат Оформлению строки (ОформлениеСтроки.Ячейки)

    Если у вас это реквизит табличной части (в конфигураторе откройте состав табличной части и проверьте - там ведь нет Артикула), то обращение через СтрокуТабличнойЧасти.ИмяРеквизита - это уже данные строки.
  13. Anastasiya
    Offline

    Anastasiya Опытный в 1С

    Регистрация:
    27 июн 2007
    Сообщения:
    134
    Симпатии:
    1
    Баллы:
    26
    Спасибо, Эмин, Вы мне очень помогли! Получилось разобраться и заставить работать. :unsure:
  14. umnica
    Offline

    umnica Опытный в 1С

    Регистрация:
    2 янв 2012
    Сообщения:
    145
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте! У меня не как не получается. Есть документ списание в нем при заполнение номенклатуры надо, что бы автоматически заполнялось место хранение (это другой справочник. Связь по владельцу справочник склады).
    Не как не пойму как это сделать. Выбрали номенклатуру и если эта номенклатура имеет место хранение на складе, тогда подставить это место хранение.
  15. x_under
    Offline

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

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Места хранения номенклатуры обычно регистр сведений. Смотрите методы регистров сведений получить или выбрать. Сделаете в них отборы по складу и номенклатуре - получите значение.

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