Имя: Пароль:
1C
1С v8
Выделение строк в одной ТЧ - меняются данные во 2-ой ТЧ
0 Надежда25
 
08.11.11
11:54
v8.2 В форме документа "Поступление товаров" есть табличная часть "Товары", ниже расположена табличная часть "Характеристики с типом "РегистрСведенийНаборЗаписей.ЗначенияСвойствНоменклатуры". Надо, чтобы при выделении номенклатуры в ТЧ "Товары" высвечивались значения из регистра сведений именно для выделенной номенклатуры. А если мы заносим данные - то потом и записывались характеристики для каждой номенклатуры.
&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
  Для каждого СтрокаТЧ из ТекущийОбъект.Товары Цикл
  Набор = РеквизитФормыВЗначение("Характеристики");
  Для Каждого Запись Из Набор Цикл
    Запись.Номенклатура = СтрокаТЧ.Номенклатура;
  КонецЦикла;
  Набор.Записать();
  КонецЦикла;
КонецПроцедуры

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

&НаСервере
Процедура ОбновитьСвойства(Номенклатура)
  Набор = РегистрыСведений.ЗначенияСвойствНоменклатуры.СоздатьНаборЗаписей();
  Набор.Отбор.Номенклатура.ВидСравнения = ВидСравнения.Равно;
  Набор.Отбор.Номенклатура.Значение = Номенклатура.Ссылка;
  Набор.Отбор.Номенклатура.Использование = Истина;
  Набор.Прочитать();
  ЗначениеВРеквизитФормы(Набор, "Характеристики");
КонецПроцедуры

&НаКлиенте
Процедура ТоварыПриАктивизации(Элемент)
   СтрокаТЧ=Элементы.Товары.ТекущаяСтрока;
   Если СтрокаТЧ <> Неопределено Тогда
       ОбновитьСвойства(СтрокаТЧ.Номенклатура);
   КонецЕсли;
КонецПроцедуры
При открытии в последней процедуре:
"Значение не является значением объектного типа (Номенклатура)
       ОбновитьСвойства(СтрокаТЧ.Номенклатура);"
Ну и вообще как-то не работает. А хотя бы идеологически это верно?
1 Леха Дум
 
08.11.11
12:16
Сдается мне, что по этим темам поднимается мегапроект :)
1) Без фотки не взлетит
2) Читаем СП вдумчиво
3) Читаем литературу
4) Смотрим иногда типовые
5) Идем на курсы повышения квалификации
6) Идем на курсы кройки и шитья
2 DrShad
 
08.11.11
12:19
(1) +1
только первым пунктом я бы поставил Срочно замуж и детей рожать
3 Надежда25
 
08.11.11
12:21
Нет, всего лишь учебная задача. Литературу читаю.
4 Леха Дум
 
08.11.11
12:23
(2) лучше 7 пунктом - курсы кройки и шитья как раз пригодятся :)
5 DrShad
 
08.11.11
12:37
(4) я думаю костюм раскроить все равно не научат
6 Axel2009
 
08.11.11
12:38
читаем про реквизитформывзначение
7 Леха Дум
 
08.11.11
12:50
8 Надежда25
 
08.11.11
13:16
(7) Знаю, спасибо, все работает. Если сузить вопрос: Что правильнее использовать для моего случая - ПриАктивизацииСтроки, ПриАктивизацииПоля, ПриАктивизацммЯчейки?
9 Надежда25
 
08.11.11
13:24
А где в типовой есть две ТЧ на форме, содержание второй ТЧ зависит от выделенной строки в первой ТЧ? Не нашла, с удовольствием посмотрю.
10 Axel2009
 
08.11.11
14:03
в какой момент возможна смена значения, такой метод и применять.
11 Надежда25
 
08.11.11
15:00
(10) Выделил (щелкнул мышью) пользователь одну строку, во второй ТЧ показываются характеристики именно этой номенклатуры, выделил другую - отображаются характеристики другой номенклатуры. Добавляем новую строку в первой ТЧ - вторая ТЧ очищается.
12 Axel2009
 
08.11.11
15:23
(11) и какое это событие ТЧ?
13 Надежда25
 
08.11.11
15:54
ТЧ - табличная часть. Использую событие ПриАктивизацииСтроки. Права ли я?
14 vmv
 
08.11.11
15:58
(8) все эти методы не взлетят - мастер-деталь не реализуется в 8.2 через эти обработчики, тонкости передачи управления с клиента на сервер помешают.

думай глубже
15 Леха Дум
 
08.11.11
15:58
(13) начни с пункта 1) поста (1)
16 Надежда25
 
08.11.11
16:21
Потому и спрашиваю. И в типовой подобного не вижу. Упрощенный вариант - по кнопке открывать или форму элемента справочника (там тоже это редактируется) или регистр сведений. Но, мне кажется, красивее было бы, если все сделать на одной форме.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.