Имя: Пароль:
1C
1С v8
Как связать выбор одного реквизита ТЧ со значением другого, если связь в РС?
0 bahtik
 
25.12.13
19:19
Здравствуйте!
Такая ситуация. 1С 8.3.4, интерфейс Такси. Есть справочник "ТМЦ", есть справочник "Классификатор единиц измерения", есть регистр сведений "Единицы измерения ТМЦ", имеющий два измерения "ТМЦ", "ЕдиницаИзмерения" и ресурс "Коэффициент". Задача в том, чтобы при выборе единицы измерения в табличной части документа (реквизит типа "СправочникСсылка.КлассификаторЕдиницИзмерения"), как-то связать этот выбор с ТМЦ в этой же строке табличной части. Если бы это был подчиненный справочник, то это можно было бы сделать просто через свойство "СвязиПараметровВыбора". Но т.к. это регистр сведений, то я решил эту задачу так: у элемента формы "ЕдиницаИзмерения" установил свойство "РежимВыбораИзСписка" в истину, ну и назначил процедуру для события "НачалоВыбора":

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


&НаСервереБезКонтекста
Функция СерверПолучитьСписокЕдиницИзмеренияТМЦ(ТМЦ)
    
    МассивЕдиниц = Новый Массив;
    Выборка = РегистрыСведений.ЕдиницыИзмеренийТМЦ.Выбрать(Новый Структура("ТМЦ", ТМЦ));
    Пока Выборка.Следующий() Цикл
        МассивЕдиниц.Добавить(Выборка.ЕдиницаИзмерения);
    КонецЦикла;
    
    Возврат МассивЕдиниц;
    
КонецФункции // ПолучитьМассивЕдиниц()



В принципе, работает, но почему-то, если единица уже выбрана, при выборе список открывается, но не позиционируется на текущую выбранную единицу. Кто-нибудь подскажет, как можно этот недостаток устранить? Или может быть, есть более грамотный вариант решения этой задачи?
1 bahtik
 
25.12.13
19:20
Там в первой процедуре последняя строка - это уже попытка спозиционировать курсор на нужную строку.
2 bahtik
 
25.12.13
19:31
И, кстати еще один попутный вопрос: как я уже сказал, у элемента формы "ЕдиницаИзмерения" я установил свойство "РежимВыбораИзСписка" в значение "Истина". Но событие "НачалоВыбораИзСписка" у этого элемента все равно не возникает. А по прежнему возникает просто "НачалоВыбора". Когда же тогда возникает "НачалоВыбораИзСписка"?
3 bahtik
 
25.12.13
20:09
То ли букв много, то ли новый год уже совсем близко...
Ошибка? Это не ошибка, это системная функция.