Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
17 июн 2024, 15:33

Процедура ПриИзменении, возврат значений

Автор Кот_Леопольд, 17 янв 2019, 15:07

0 Пользователей и 1 гость просматривают эту тему.

Кот_Леопольд

Добрый день. Имеем Справочник.ТипДоговора у него есть ТабличнаяЧасть, и Документ.Договор с Реквизитом ТипДоговоа (тип Справочник.сылка) и такая же ТабличнаяЧасть как у справочника. Мне нужно что бы при изменении реквизита в документе ТипДоговора происходили и изменения в ТабличнойЧасти. Написал что то подобное но он не возвращает значения а добавляет постоянно

&НаСервере
функция ТипДоговораПриИзмененииНаСервере()
Для каждого СтрокаТЧ из Объект.ТипДоговора.ПунктыДоговора Цикл
ПараметрыПоиска=Новый Структура;
    ПараметрыПоиска.Вставить("Текст",СтрокаТЧ.Текст);
ПараметрыПоиска.Вставить("Пункт",СтрокаТЧ.Текст);
    РезультатПоиска=Объект.ПунктыДоговора.НайтиСтроки(ПараметрыПоиска);
    Если РезультатПоиска.Количество()=0 Тогда
        НоваяСтрока=Объект.ПунктыДоговора.Добавить();
        НоваяСтрока.Текст=СтрокаТЧ.Текст;
НоваяСтрока.Пункт=СтрокаТЧ.Пункт;

    КонецЕсли;
КонецЦикла;
Возврат СтрокаТЧ.Текст;
Возврат СтрокаТЧ.Пункт;
КонецФункции

&НаКлиенте
Процедура ТипДоговораПриИзменении(Элемент)
ТипДоговораПриИзмененииНаСервере();
КонецПроцедуры

Форма Управляемая, конфигурация не типовая

Vit1501

а зачем искать Строки по связке "пункт"+"текст"? Логично предположить что пункт договора является уникальным ключом и, следовательно можно искать только по нему. Так же логично предположить, что если в документе больше пунктов чем в элементе справочника, то у вас получится в документе "лишние" пунктики... Может подумать в сторону полной очистки табличной части и нового заполнения?

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск