Перейти к содержимому


Услуги программиста 1С
Профессиональные программисты 1С.
Весь комплекс услуг сопровождения 1С.

Курсы 1С
Бухгалтерам, менеджерам
и программистам.
Бесплатно!
Живое индивидуальное обучение по 1С.

Промлема с Дополнительными реквизитами.


  • Авторизуйтесь для ответа в теме
В этой теме нет ответов

#1   virus

virus

      Рядовой

    • Пользователи
    • Сообщений: 3
    • Регистрация: 09-March 11
    • Откуда:New York , New York ,

Отправлено 12 March 2011 - 22:27

Работаю на 1С 8.2 Конфигурация - Управление торговлей 11.0.4.6
Подскажите пожалуйста - Справочник Номенклатура в модуле ФормаЭлемента я вставил функцию "СформироватьАвтоНаименование ()" (текст ниже) для того что бы Она объединяла поля из пунктов "Дополнительные реквизиты" в одну строчку. Эта строчка с помощью ф-ции "НаименованиеНачалоВыбораИзСписка" вставляется в поле "Наименование" (т.е. нажимаешь на кнопочку открытия списка, и из списка выбираешь сформированную строку).

Так вот хотелось бы сделать так, чтобы при выборе какого-либо пункта из "Дополнительных реквизитов" запускалась ф-ция "СформироватьАвтоНаименование()" и автоматом строка вставлялась в Объект Наименование.

Знаю есть ф-ция "ПриИзменении(Элемент)", но к какому объекту её привязать? Ведь все "Объекты" из "Дополнительных реквизитов" формируются динамически и их нет в реквизитах????????

&НаКлиенте

Code
Функция СформироватьАвтоНаименование()

Элементы.Наименование.СписокВыбора.Очистить();

ИспользоватьСвойства = ПолучитьФункциональнуюОпциюФормы("ИспользоватьДополнительныеРеквизитыИСведения") ;

СтрокаНаименования = "";
Если ИспользоватьСвойства Тогда

НомерСвойства = 0;
Для Каждого ДополнительноеСвойство Из ЭтаФорма.__Свойства_ОписаниеДополнительныхРеквизитов Цикл
ЗначениеСвойства = ЭтаФорма[ДополнительноеСвойство.ИмяРеквизитаЗначение];
Если ЗначениеЗаполнено(ЗначениеСвойства) Тогда
НомерСвойства = НомерСвойства + 1;
СтрокаНаименования = СтрокаНаименования + ?(НомерСвойства = 1,"", ", ") + ЗначениеСвойства;
КонецЕсли;
КонецЦикла;

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

КонецЕсли;

Возврат СтрокаНаименования;

КонецФункции // СформироватьАвтоНаименование()

&НаКлиенте
Процедура НаименованиеНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)

СтандартнаяОбработка = Ложь;

СформироватьАвтоНаименование();
ВыбранныйЭлемент = ВыбратьИзСписка(Элементы.Наименование.СписокВыбора, Элемент);
Если ВыбранныйЭлемент <> Неопределено Тогда
Объект.Наименование = ВыбранныйЭлемент.Значение;
КонецЕсли;

КонецПроцедуры // НаименованиеНачалоВыбораИзСписка()

--------------------------
учимся пользоваться тегами smile
  • 0




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных