PDA

Просмотр полной версии : Сохранять из табличной части формы добавленной программно в Регистр сведений.



art93
06.08.2015, 09:43
Создал регистр сведений СопровождаемыеПродукты. Нужно чтобы оттуда подтягивалась информация в табличную часть добавленную программно на форму справочника контрагенты. В итоге табличную часть добавил но инфа не подтягивается и не записывается. Помогите пожалуйста

Модуль объекта(спр Контрагенты)

+ Code
Процедура ПриЗаписи(Отказ)

ЗаписатьПереченьСопровожд аемыхПрограмм(мПереченьСо� �ровождаемыхПрограмм, Ссылка, Отказ);

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

Процедура ЗаписатьПереченьСопровожд аемыхПрограмм(ПереченьСоп� �овождаемыхПрограмм, Ссылка, Отказ)
Если НЕ Отказ Тогда

// Сравним наборы записей

ЭталонныйНабор = РегистрыСведений.Сопровож� �аемыеПрограммыКонтрагент� �в.СоздатьНаборЗаписей();
Если ТипЗнч(Ссылка) = Тип("СправочникСсылка.Контраге� �ты") Тогда
ЭталонныйНабор.Отбор.Контр агент.Значение = Ссылка;
ЭталонныйНабор.Отбор.Контр агент.Использование = Истина;
КонецЕсли;
ЭталонныйНабор.Прочитать();

Для каждого ЗаписьНабора Из ПереченьСопровождаемыхПро грамм Цикл
ЗаписьНабора.Контрагент = Ссылка;
КонецЦикла;

//Если НЕ КонтрагентыОбщегоНазначен ияСервер.СравнитьТаблицыН� �боровЗаписей(ЭталонныйНаб ор.Выгрузить(), ПереченьСопровождаемыхПро грамм.Выгрузить()) Тогда


ПереченьСопровождаемыхПро грамм.Отбор.Контрагент.Зна� �ение = Ссылка;

//Попытка

ПереченьСопровождаемыхПро грамм.Записать();
//Исключение

// Сообщить("Элемент """ + СокрЛП(Ссылка) + """ не записан. Ошибка в списке сопровождаемых программ.");

// Отказ = Истина;

// Возврат;

//КонецПопытки;


ПрочитатьПереченьСопровож даемыхПрограмм(ПереченьСо� �ровождаемыхПрограмм, Ссылка);

//КонецЕсли;


КонецЕсли;
КонецПроцедуры

Процедура ПрочитатьПереченьСопровож даемыхПрограмм(ПереченьСо� �ровождаемыхПрограмм, Ссылка) Экспорт

// Снимем все отборы

Для каждого Отбор Из ПереченьСопровождаемыхПро грамм.Отбор Цикл
Отбор.Использование = Ложь;
КонецЦикла;

Если НЕ ЗначениеЗаполнено(Ссылка) Тогда
Возврат;
КонецЕсли;

Если ТипЗнч(Ссылка) = Тип("СправочникСсылка.Контраге� �ты") Тогда
ПереченьСопровождаемыхПро грамм.Отбор.Контрагент.Зна� �ение = Ссылка;
ПереченьСопровождаемыхПро грамм.Отбор.Контрагент.Исп� �льзование = Истина;
КонецЕсли;
ПереченьСопровождаемыхПро грамм.Прочитать();

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

мПереченьСопровождаемыхПр ограмм = РегистрыСведений.Сопровож� �аемыеПрограммыКонтрагент� �в.СоздатьНаборЗаписей();
Если НЕ Ссылка.Пустая() Тогда
ПрочитатьПереченьСопровож даемыхПрограмм(мПереченьС� �провождаемыхПрограмм, Ссылка);
КонецЕсли;

Модуль формы

&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗапи� �и)

ПараметрыЗаписи.Вставить("Партнер", Объект.Партнер);
Оповестить("Запись_Контрагенты", ПараметрыЗаписи, Объект.Ссылка);

СопровождаемыеПрограммы.О� �бор.Контрагент.Значение = Объект.Ссылка;
СопровождаемыеПрограммы.О� �бор.Контрагент.Использова� �ие = Истина;


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

Процедура СопровождаемыеПрограммыПр иОкончанииРедактирования(� �лемент, НоваяСтрока, ОтменаРедактирования)

ОбновитьДатуИзменения = Истина;

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

//СопровождаемыеПрограммы = мПереченьСопровождаемыхПр ограмм; (не видит почему то мПереченьСопровождаемыхПр ограмм

подскажите идеи пожалуйста, очень нужно

avm3110
06.08.2015, 14:03
Нужно чтобы оттуда подтягивалась информация в табличную часть добавленную программно на форму справочника контрагенты
А зачем (если с программированием ещё не сильно дружишь) такие извраты в виде "программного добавления на форму ТЗ"? Почему нельзя эту ТЗ создать в конфигураторе, а заполнять её уже запросом? При этом заполнение проводить "нажатием кнопочки".