Имя: Пароль:
1C
1С v8
Ключ связи Подчиненные ТЧ документа
0 Начинающий_13
 
14.06.13
13:59
Имею Связанные ТЧ документа по ключу (Обычное приложение)
Сотрудники (главная)     Начислеиня      Удержания
Процедура формы документа (все работает нормально через инсерт и добавить)
Процедура СотрудникиПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
   
    Если НоваяСтрока Тогда
       
        УниверсальныеМеханизмы.ДобавитьКлючСвязиВСтрокуТабличнойЧасти(ЭтаФорма);
       // УниверсальныеМеханизмы.УстановитьОтборНаПодчиненнуюТабличнуюЧасть(ЭтаФорма, "Начисления");
       // УниверсальныеМеханизмы.УстановитьОтборНаПодчиненнуюТабличнуюЧасть(ЭтаФорма, "Удержания");
       
    КонецЕсли;
   
КонецПроцедуры

Добавил кпопку ПОДБОР  в ТЧ  Сотрудники , но при добавлении строки в ТЧ документа странно ставится КлючСвязи
Проблема идет только через кнопку ПОДБОР . Что не сделал???
Пример
Были в ТЧ оотрудники
Иванов     КлючСвязи 1
Петров     КлючСвязи 2
Сидоров   КлючСвязи 3
Добавляем сотрудника Пупкина и ставовится
Иванов    КлючСвязи 1
Петров    КлючСвязи 2
Сидоров   КлючСвязи 4  (Сменилось с 3)
Пупкин    КлючСвязи ПУСТО

Процедура добавления строки Через  ПОДБОР

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

Процедуры  ЭСКПОРТА
Процедура ДобавитьКлючСвязиВСтрокуТабличнойЧасти(ФормаДокумента) Экспорт

   СтрокаТЧ = ФормаДокумента.ЭлементыФормы[ФормаДокумента.ИмяТЧ].ТекущиеДанные;
   СтрокаТЧ.КлючСвязи = СоздатьНовыйКлючСвязи(ФормаДокумента);        
       
КонецПроцедуры
Функция СоздатьНовыйКлючСвязи(ФормаДокумента) Экспорт

   ТЧ = ФормаДокумента.ЭтотОбъект[ФормаДокумента.ИмяТЧ];
   Для каждого СтрокаТЧ Из ТЧ Цикл
       КлючСвязи = СтрокаТЧ.НомерСтроки;
   КонецЦикла;
     
   Возврат КлючСвязи;
КонецФункции
1 Начинающий_13
 
14.06.13
14:27
Решил
Процедура ОбработкаВыбораПодборНаСервере(ВыбранноеЗначение, ИмяТЧ)
   
    ТаблицаТМЦ = ПолучитьИзВременногоХранилища(ВыбранноеЗначение.АдресХЗ);
   
    Для Каждого СтрокаТЧ Из ТаблицаТМЦ Цикл
        НВС = ЭтаФорма[ИмяТЧ].Добавить();
        ЗаполнитьЗначенияСвойств(НВС, СтрокаТЧ);
        НВС.КлючСвязи = УниверсальныеМеханизмы.СоздатьНовыйКлючСвязи(ЭтаФорма);
        МетаданныеДокумента = ЭтаФорма.Ссылка.Метаданные();
       
        Если ИмяТЧ = "Сотрудники" Тогда
           
           // УниверсальныеМеханизмы.ДобавитьКлючСвязиВСтрокуТабличнойЧасти(ЭтаФорма);
            УниверсальныеМеханизмы.УстановитьОтборНаПодчиненнуюТабличнуюЧасть(ЭтаФорма, "Начисления");
            УниверсальныеМеханизмы.УстановитьОтборНаПодчиненнуюТабличнуюЧасть(ЭтаФорма, "Удержания");
           
        КонецЕсли;
       
    КонецЦикла;
       
КонецПроцедуры