gifts2017

Главная и подчиненная таблицы в 1С - связывание, дополненное для 8.2

Опубликовал Dima Dima (bayce) в раздел Программирование - Практика программирования

Дополнение для статьи http://infostart.ru/public/186522/

Для использование в 1с 8.2 на код нужно изменить.

 

Ниже привожу работоспособный код для управляемого приложения:



&НаКлиенте
Процедура ГлавнаяТаблицаПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
     Данные = элементы.ГлавнаяТаблица.ТекущиеДанные;
    Если НоваяСтрока Тогда
        Данные.ключСвязи =  Новый УникальныйИдентификатор;
    КонецЕсли;
    
КонецПроцедуры

&НаКлиенте
Процедура ПодчиненнаяТаблицаПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
        
     Данные = элементы.ГлавнаяТаблица.ТекущиеДанные;
    ТекДанные = Элементы.ПодчиненнаяТаблица.ТекущиеДанные;
    Если НоваяСтрока Тогда
        ТекДанные.ключСвязи = Данные.КлючСвязи;
    КонецЕсли;
     СтрОтбора = Новый ФиксированнаяСтруктура("КлючСвязи", Данные.КлючСвязи);
        Элементы.ПодчиненнаяТаблица.ОтборСтрок     = СтрОтбора;

КонецПроцедуры

&НаКлиенте
Процедура ГлавнаяТаблицаПередУдалением(Элемент, Отказ)
       Данные = элементы.ГлавнаяТаблица.ТекущиеДанные;

    Отбор = Новый Структура("КлючСвязи",Данные.КлючСвязи);
    Масс = Объект.ПодчиненнаяТаблица.НайтиСтроки(Отбор);
    Для каждого Строка из Масс Цикл
         Объект.СкидкиНаценки.Удалить(Строка);
    КонецЦикла;
КонецПроцедуры

&НаКлиенте
Процедура ГлавнаяТаблицаПриАктивизацииСтроки(Элемент)
      Данные = элементы.ГлавнаяТаблица.ТекущиеДанные;

    Если Данные = Неопределено Тогда
        Возврат;
    КонецЕсли;
    
        СтрОтбора = Новый ФиксированнаяСтруктура("КлючСвязи", Данные.КлючСвязи);
        Элементы.ПодчиненнаяТаблица.ОтборСтрок     = СтрОтбора;
    
    
КонецПроцедуры

 

что бы не выдавало ошибки при добавление строки в Подчиненую таблицу при пустой Основной таблице надо добавить :

 

&НаКлиенте
Процедура ПодчиненнаяТаблицаПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа)
         Данные = элементы.ГлавнаяТаблица.ТекущиеДанные;
       
    
    Если Данные = Неопределено Тогда
      отказ=истина;
    КонецЕсли;
КонецПроцедуры

 


http://infostart.ru/public/186522/

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Юрий Осипов (yuraos) 23.05.13 14:22
2. Юрий Осипов (yuraos) 23.05.13 14:27
(1), плюс за находчивость!
дополнил побыстрому чужую статью.
а первый пост к статье советую всегда заполнять самому...
3. Александр Шкут (alex_shkut) 15.08.13 10:53
Правильно сделал. Я с управляемыми формами не работал, поэтому и писал "по старинке". А человек переписал грамотно и доделал недоделанное.
4. Кирилл (kirillbul) 06.01.14 15:13
Отличное дополнение статьи!
5. Владислав Авраменко (Vlad_kansk) 29.02.16 07:20
6. Михаил (mikl79) 21.03.16 15:16
Добрый день.
В 3-й процедуре вы удаляете строку Объект.СкидкиНаценки, что это?
Наверное так Объект.ПодчиненнаяТаблица