|
Сохранять из табличной части формы добавленной программно в Регистр сведений. | ☑ | ||
---|---|---|---|---|
0
art93
06.08.15
✎
08:20
|
Создал регистр сведений СопровождаемыеПродукты. Нужно чтобы оттуда подтягивалась информация в табличную часть добавленную программно на форму справочника контрагенты. В итоге табличную часть добавил но инфа не подтягивается и не записывается. Помогите пожалуйста
Модуль объекта(спр Контрагенты) Процедура ПриЗаписи(Отказ) ЗаписатьПереченьСопровождаемыхПрограмм(мПереченьСопровождаемыхПрограмм, Ссылка, Отказ); КонецПроцедуры Процедура ЗаписатьПереченьСопровождаемыхПрограмм(ПереченьСопровождаемыхПрограмм, Ссылка, Отказ) Если НЕ Отказ Тогда // Сравним наборы записей ЭталонныйНабор = РегистрыСведений.СопровождаемыеПрограммыКонтрагентов.СоздатьНаборЗаписей(); Если ТипЗнч(Ссылка) = Тип("СправочникСсылка.Контрагенты") Тогда ЭталонныйНабор.Отбор.Контрагент.Значение = Ссылка; ЭталонныйНабор.Отбор.Контрагент.Использование = Истина; КонецЕсли; ЭталонныйНабор.Прочитать(); Для каждого ЗаписьНабора Из ПереченьСопровождаемыхПрограмм Цикл ЗаписьНабора.Контрагент = Ссылка; КонецЦикла; //Если НЕ КонтрагентыОбщегоНазначенияСервер.СравнитьТаблицыНаборовЗаписей(ЭталонныйНабор.Выгрузить(), ПереченьСопровождаемыхПрограмм.Выгрузить()) Тогда ПереченьСопровождаемыхПрограмм.Отбор.Контрагент.Значение = Ссылка; //Попытка ПереченьСопровождаемыхПрограмм.Записать(); //Исключение // Сообщить("Элемент """ + СокрЛП(Ссылка) + """ не записан. Ошибка в списке сопровождаемых программ."); // Отказ = Истина; // Возврат; //КонецПопытки; ПрочитатьПереченьСопровождаемыхПрограмм(ПереченьСопровождаемыхПрограмм, Ссылка); //КонецЕсли; КонецЕсли; КонецПроцедуры Процедура ПрочитатьПереченьСопровождаемыхПрограмм(ПереченьСопровождаемыхПрограмм, Ссылка) Экспорт // Снимем все отборы Для каждого Отбор Из ПереченьСопровождаемыхПрограмм.Отбор Цикл Отбор.Использование = Ложь; КонецЦикла; Если НЕ ЗначениеЗаполнено(Ссылка) Тогда Возврат; КонецЕсли; Если ТипЗнч(Ссылка) = Тип("СправочникСсылка.Контрагенты") Тогда ПереченьСопровождаемыхПрограмм.Отбор.Контрагент.Значение = Ссылка; ПереченьСопровождаемыхПрограмм.Отбор.Контрагент.Использование = Истина; КонецЕсли; ПереченьСопровождаемыхПрограмм.Прочитать(); КонецПроцедуры мПереченьСопровождаемыхПрограмм = РегистрыСведений.СопровождаемыеПрограммыКонтрагентов.СоздатьНаборЗаписей(); Если НЕ Ссылка.Пустая() Тогда ПрочитатьПереченьСопровождаемыхПрограмм(мПереченьСопровождаемыхПрограмм, Ссылка); КонецЕсли; Модуль формы &НаКлиенте Процедура ПослеЗаписи(ПараметрыЗаписи) ПараметрыЗаписи.Вставить("Партнер", Объект.Партнер); Оповестить("Запись_Контрагенты", ПараметрыЗаписи, Объект.Ссылка); СопровождаемыеПрограммы.Отбор.Контрагент.Значение = Объект.Ссылка; СопровождаемыеПрограммы.Отбор.Контрагент.Использование = Истина; КонецПроцедуры Процедура СопровождаемыеПрограммыПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования) ОбновитьДатуИзменения = Истина; КонецПроцедуры //СопровождаемыеПрограммы = мПереченьСопровождаемыхПрограмм; (не видит почему то мПереченьСопровождаемыхПрограмм подскажите идеи пожалуйста, очень нужно |
|||
1
Адский плющ
06.08.15
✎
08:38
|
Как связаны модуль объекта и какой-то левый набор записей на морде?
|
|||
2
Адский плющ
06.08.15
✎
08:40
|
Нужно разместить на форме не ТЗ, а набор записей. В процедуре "ПриИзмененииДанных" - читать, "ПриЗаписиНаСервере" - записывать. Это для обычных форм.
|
|||
3
Адский плющ
06.08.15
✎
08:40
|
*"ПриЗаписи"
|
|||
4
art93
06.08.15
✎
08:48
|
Извиняюсь, не очень понял.
Можете пожалуйста прямо в коде моём показать. Выделив части, что не так. Буду очень благодарен |
|||
5
art93
06.08.15
✎
09:01
|
Подскажет кто нибудь пожалуйста?
|
|||
6
art93
06.08.15
✎
09:16
|
Гляньте пожалуйста
|
|||
7
hhhh
06.08.15
✎
09:31
|
ПереченьСопровождаемыхПрограмм.Отбор.Контрагент.Установить(Ссылка);
ПереченьСопровождаемыхПрограмм.Записать(); |
|||
8
art93
06.08.15
✎
09:48
|
(7) Спасибо, поменял, но не помогает. Всё равно не записывается. Закрываю форму потом открываю всё пусто. И в регистр сведений запись не добавляется.
Что ещё можно попробовать? подскажите |
|||
9
hhhh
06.08.15
✎
09:51
|
а где у вас тут пишутся записи в регистр? В каком месте?
|
|||
10
art93
06.08.15
✎
10:02
|
Я запутался просто. как это реализовать. Да, похоже не где.
А подскажите пожалуйста как мне реализовать всё же эту логику. Я открываю форму, туда подгружаются сопровождаемые продукты контрагента. Если я её изменяю и закрываю, то при изменении этой табличной части производятся запись в регистр сведений. Вот я код как то частично написал, частично из старой ут 10.2 взял и не могу собрать общую картину, не складывается это УТ11+CRM Помогите разобраться пожалуйста |
|||
11
art93
06.08.15
✎
10:11
|
Вот так в 10.2 было реализовано
///////////////////////Модуль объекта/////////////////// Перем мПереченьСопровождаемыхПрограмм Экспорт; Процедура ПриЗаписи(Отказ) ЗаписатьПереченьСопровождаемыхПрограмм(мПереченьСопровождаемыхПрограмм, Ссылка, Отказ); КонецПроцедуры // СОПРОВОЖДАЕМЫЕ ПРОГРАММЫ Процедура ЗаписатьПереченьСопровождаемыхПрограмм(ПереченьСопровождаемыхПрограмм, Ссылка, Отказ) Если НЕ Отказ Тогда // Сравним наборы записей ЭталонныйНабор = РегистрыСведений.СопровождаемыеПрограммыКонтрагентов.СоздатьНаборЗаписей(); Если ТипЗнч(Ссылка) = Тип("СправочникСсылка.Контрагенты") Тогда ЭталонныйНабор.Отбор.Контрагент.Значение = Ссылка; ЭталонныйНабор.Отбор.Контрагент.Использование = Истина; КонецЕсли; ЭталонныйНабор.Прочитать(); Для каждого ЗаписьНабора Из ПереченьСопровождаемыхПрограмм Цикл ЗаписьНабора.Контрагент = Ссылка; КонецЦикла; Если НЕ СравнитьТаблицыНаборовЗаписей(ЭталонныйНабор.Выгрузить(), ПереченьСопровождаемыхПрограмм.Выгрузить()) Тогда ПереченьСопровождаемыхПрограмм.Отбор.Контрагент.Значение = Ссылка; Попытка ПереченьСопровождаемыхПрограмм.Записать(); Исключение СообщитьОбОшибке(ОписаниеОшибки(),, ("Элемент """ + СокрЛП(Ссылка) + """ не записан. Ошибка в списке сопровождаемых программ.")); Отказ = Истина; Возврат; КонецПопытки; ПрочитатьПереченьСопровождаемыхПрограмм(ПереченьСопровождаемыхПрограмм, Ссылка); КонецЕсли; КонецЕсли; КонецПроцедуры Процедура ПрочитатьПереченьСопровождаемыхПрограмм(ПереченьСопровождаемыхПрограмм, Ссылка) Экспорт // Снимем все отборы Для каждого Отбор Из ПереченьСопровождаемыхПрограмм.Отбор Цикл Отбор.Использование = Ложь; КонецЦикла; Если ЗначениеНеЗаполнено(Ссылка) Тогда Возврат; КонецЕсли; Если ТипЗнч(Ссылка) = Тип("СправочникСсылка.Контрагенты") Тогда ПереченьСопровождаемыхПрограмм.Отбор.Контрагент.Значение = Ссылка; ПереченьСопровождаемыхПрограмм.Отбор.Контрагент.Использование = Истина; КонецЕсли; ПереченьСопровождаемыхПрограмм.Прочитать(); КонецПроцедуры мПереченьСопровождаемыхПрограмм = РегистрыСведений.СопровождаемыеПрограммыКонтрагентов.СоздатьНаборЗаписей(); Если НЕ Ссылка.Пустая() Тогда ПрочитатьПереченьСопровождаемыхПрограмм(мПереченьСопровождаемыхПрограмм, Ссылка); КонецЕсли; ///////////////////////Модуль формы элемента/////////////////// Процедура ПослеЗаписи() СопровождаемыеПрограммы.Отбор.Контрагент.Значение = Ссылка; СопровождаемыеПрограммы.Отбор.Контрагент.Использование = Истина; КонецПроцедуры Процедура СопровождаемыеПрограммыПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования) ОбновитьДатуИзменения = Истина; КонецПроцедуры СопровождаемыеПрограммы = мПереченьСопровождаемыхПрограмм; |
|||
12
ЛисИзЛеса
06.08.15
✎
12:05
|
СопровождамыеПрограммы это что?
Какого типа эти данные? Таблица значений? Динамический список? |
|||
13
art93
06.08.15
✎
12:24
|
Вопрос снят, да не тот тип был выбран.
В итоге все с чем мучался на УФ реализуется 6 строками кода в модуле формы &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) КонтрагентыОбщегоНазначенияСервер.ПриСозданииНаСервере(ЭтаФорма,Отказ,СтандартнаяОбработка); СопровождаемыеПрограммы.Отбор.Элементы.Очистить(); ЭлементОтбора = СопровождаемыеПрограммы.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Контрагент"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора.Использование = Истина; ЭлементОтбора.ПравоеЗначение = Объект.Ссылка; ..... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |