Имя: Пароль:
1C
1C 7.7
v7: Перенос с формы справочника в реквизит справочника
, ,
0 bug16
 
22.06.12
11:13
Подскажите как сделать. ТиС 7.7
Есть справочник номенклатура. На форму справочника добавили поле, допустим "цвет"! Но этот элемент не добавили в реквизиты справочника. Теперь если делать какой нибудь отчет, то не могу обратится к полю "цвет".
Я сделал следующее добавил это поле в реквизиты справочника. Теперь чтобы это значение правильно записалось, мне нужно каждый элемент справочника открыть и нажать кнопку "Записать". Тогда в этот реквизит все правильно будет записываться!
А как мне программно сделать эту перезапись. Я так полагаю мне надо  открыть форму, сделать "записать" и закрыть форму..... как программно записать и закрыть форму?

   спр=СоздатьОбъект ("справочник.Номенклатура") ;
   спр.ВыбратьЭлементы ();    
   Пока Спр.ПолучитьЭлемент()=1 Цикл
   
    ОткрытьФорму (Спр.ТекущийЭлемент(),Конт);
1 lucifer
 
22.06.12
11:15
зачем открывать форму, просто вызывай метод записать()
2 ДенисЧ
 
22.06.12
11:15
какой-то бред

Если у тебя Цвет - не реквизит справочника, то он заполняется при открытии формы. Вот возьми этот код и пробегись им по всему справочнику...
3 Ork
 
22.06.12
11:16
(22) Все не так и все не там.

Каким образом при открытии формы берется значение реквизита "допустим "цвет"!"

ЗЫ. И не нужно столько восклицательных знаков.
4 bug16
 
22.06.12
11:19
(1) методом ЗАписать () пробывал, не получается

на форме справочника добавлено поле ввода с типом Справочник.ЗначенияСвойств
этого поля нету в реквизитах Справочника!

(3) Восклицательные знаки запрещаются? Кем?
5 viktor_vv
 
22.06.12
11:20
(4) Как это поле заполняется? Руками или програмно ?
6 bug16
 
22.06.12
11:23
ну изначально это поле было заполнено руками!
7 YF
 
22.06.12
11:28
(6) Изначально - это когда?
8 viktor_vv
 
22.06.12
11:29
(6) А при повторном отркрытии оно заполнено ? Не очень в курсе российской ТиС, но ищи как работать с механизмом свойств.
9 bug16
 
22.06.12
12:03
ну до меня кто то заполнял это поле...не я...
при повторном открытии поле конечно же заполнено
10 YF
 
22.06.12
12:27
(9) Что значит кто-то заполнил поле до тебя? Содержимое поля живет пока открыта форма, значит открыли форму тоже до тебя?
11 bug16
 
22.06.12
12:59
(10)  никто не заполняет...один раз записали значение поля, оно и сохранилось... закрываю открываю все на месте...
12 mehfk
 
22.06.12
13:01
(11) "...один раз записали значение поля, оно и сохранилось..."
куда сохранилось?
13 bug16
 
22.06.12
13:03
на форме в поле цвет
14 aka AMIGO
 
22.06.12
13:05
значение реквизита формы (но не справочника) вроде при закрытии формы не сохраняется..или я что-то не понимаю.
что не исключено :)
15 aka AMIGO
 
22.06.12
13:07
(11)значит, это реквизит справочника
16 aka AMIGO
 
22.06.12
13:09
+15 или в модуле формы есть функция, вычисляющая значение реквизита диалога
17 bug16
 
22.06.12
13:10
идентификатор поля формы допустим "цвет"
в реквизитах справочника, этого реквизита нету...
18 bug16
 
22.06.12
13:12
(16) буду у базы гляну... ну вроде не было (((
19 vova1122
 
22.06.12
13:13
(17) в таком случае этот реквидзит не сохраняется. Или в Програмно прописано что "цвет" сохраняется в другой реквизит справочника.
20 viktor_vv
 
22.06.12
13:14
Судя по этому "поле ввода с типом Справочник.ЗначенияСвойств" в ПриОткрытии() заполняют реквизит формы из свойств.
21 m-serg74
 
22.06.12
13:15
есть два справочника - "ВидыСвойств" и "ЗначениияСвойств"...
22 m-serg74
 
22.06.12
13:15
там все и искать
23 m-serg74
 
22.06.12
13:18
а в ТиС еще есть "СвойстваНоменклатуры" справочник
24 bug16
 
22.06.12
13:22
(21) (23) извините, опыт небольшой... можете хотя бы кратко обьяснить, как эти справочники связаны с моим "цветом "..  щас не у базы пока глянуть не могу
25 aka AMIGO
 
22.06.12
13:22
(17)друже, ты посмотри в конфигураторе в свойствах этого реквизита: какой тип его? может и разяснится вопрос
26 ДенисЧ
 
22.06.12
13:23
(24) Вот когда дойдёшь до базы, тогда и думай. А сначала в код глянь...
27 bug16
 
22.06.12
13:24
(25) (26) ок.  спасиба...
28 m-serg74
 
22.06.12
13:28
(24) ну к примеру так:

Процедура ПоКнопкеСвойства()
   
   Перем КонтекстФормы;
   
   Если Форма.МодальныйРежим() = 0 Тогда
       Если Выбран() = 0 Тогда
           Предупреждение("Свойства можно посмотреть только для записанных номенклатурных позиций!", 60);

       ИначеЕсли ОткрытьФорму("Справочник.СвойстваНоменклатуры", КонтекстФормы) = 1 Тогда
           КонтекстФормы.ИспользоватьВладельца(ТекущийЭлемент());
       КонецЕсли;
   КонецЕсли;
   
КонецПроцедуры
29 m-serg74
 
22.06.12
13:31
а у тебя при открытии формы вероятно находится в "Справочник.СвойстваНоменклатуры" свойство с "ВидСвойства"="Цвет", и для него получается из Спр.ЗначСвойств - Значение цвета и подставляется в Элемент формы, который ты и наблюдаешь на форме
30 m-serg74
 
22.06.12
13:32
правда не пойму для чего ломать работающий механизм, просто этот механизм надо учесть в твоем отчете и все буде гуд...