Имя: Пароль:
1C
 
Добраться до значения флажка
0 myr4ik07
 
07.10.14
15:04
На форме есть элемент Типа Флажок, в модуле формы при событии при изменении флашка (булево) получаю возврат

а как достучатся к этой процедуре с модуля обьекта документа к модулю формы документа?!

Документ = Документы.ПТиУ.ПолучитьФорму("ФормаОбьекта")?
1 Banned
 
07.10.14
15:05
Сдаётся мне, что тут всю систему менять надо...
2 Maxus43
 
07.10.14
15:07
Вот что значит плохо русский учить... флашка
3 myr4ik07
 
07.10.14
15:08
не понял ваших ответов
4 Maxus43
 
07.10.14
15:09
(3) дублируй код процедуры себе в объект, не надо даже пробовать достучаться из объекта к форме, черевато многими плохими ошибками
5 myr4ik07
 
07.10.14
15:10
хм ок(4)
6 myr4ik07
 
07.10.14
15:33
Шось не понял, у меня в модуле обьекта (документа) есть движение данных
Для Каждого эл Из Товары Цикл
               Движение = Движения.ЦеныНоменклатуры.Добавить();
               Движение.Период = Дата;
               Движение.Валюта = Справочники.Валюты.НайтиПоНаименованию("USD");
               Движение.ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт");
               Движение.ТипЦен = Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("000000001");
               Движение.Номенклатура = эл.Номенклатура;
               Движение.Цена = эл.Цена;
           КонецЦикла;
так вот я хочу добавить условие, что бы когда на форме документа стоял флашок (булево) то выполнялся этот кода, что выше, а когда снят то выполнялся этот код
  Для Каждого эл Из Товары Цикл
               Движение = Движения.ЦеныНоменклатуры.Добавить();
               Движение.Период = Дата;
               Движение.Валюта = Справочники.Валюты.НайтиПоНаименованию("грн");
               Движение.ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт");
               Движение.ТипЦен = Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("000000015");
               Движение.Номенклатура = эл.Номенклатура;
               Движение.Цена = эл.Цена;
           КонецЦикла;
так вот мне как то нужно получить значения флажка с документа
7 Chikko
 
07.10.14
15:35
А если проведение не из формы документа запущено, а из формы списка, например?
Выноси "флашок" в реквизиты документа.
8 myr4ik07
 
07.10.14
15:38
)) ну тогда опять обратился почему ошибка )), попробую в реквизит ))(7)
9 myr4ik07
 
07.10.14
15:38
вот не могу понять этот принцип как откуда то куда то обратится ) с обекта в форму с формы в обьект апример
10 an-korot
 
07.10.14
15:39
Chikko - ну что ты малину портишь, а как же: опыт, сын ошибок трудных...
11 myr4ik07
 
07.10.14
15:39
нормально нормально )(10)
12 Maxus43
 
07.10.14
15:40
Всё что влияет на логику работы (проведения) не должно быть ТОЛЬКО на форме, должно хранится в БД, а это значит реквизит или ещё как, но отношения к только форме он иметь не должен.

(9) Форма - это что перед глазами, Объект - более низкого уровня, он существует независимо от формы, с формы мы можем давать команды объекту, а не наоборот, это упрощённо
13 an-korot
 
07.10.14
15:41
флажок можно через "этотобъект" передать при вызове процедуры в модуле ;)
14 myr4ik07
 
07.10.14
15:43
спасибо мужики
15 myr4ik07
 
07.10.14
15:49
Если  ЭтотОбъект.Грн Тогда
          
           Для Каждого эл Из Товары Цикл
               Движение = Движения.ЦеныНоменклатуры.Добавить();
               Движение.Период = Дата;
               Движение.Валюта = Справочники.Валюты.НайтиПоНаименованию("грн");
               Движение.ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт");
               Движение.ТипЦен = Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("000000015");
               Движение.Номенклатура = эл.Номенклатура;
               Движение.Цена = эл.Цена;
           КонецЦикла;
          
       Иначе
          
           Для Каждого эл Из Товары Цикл
               Движение = Движения.ЦеныНоменклатуры.Добавить();
               Движение.Период = Дата;
               Движение.Валюта = Справочники.Валюты.НайтиПоНаименованию("USD");
               Движение.ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт");
               Движение.ТипЦен = Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("000000001");
               Движение.Номенклатура = эл.Номенклатура;
               Движение.Цена = эл.Цена;
           КонецЦикла;
      
       КонецЕсли;

все работает, вывел в реквизит грн
а теперь при проведении документа если ставлю флажок удаляется значения с первого условия (пусто делается), а если сниму флажок то удаляется значения с второго условия (цена), так вот я хотел бы, что бы старые цены оставались, куда здесь глядеть?)
16 Maxus43
 
07.10.14
15:51
17 an-korot
 
07.10.14
15:56
myr4ik07 потому что это регистр он не хранит старые значения он их удаляет и пишет новые значения.
18 Maxus43
 
07.10.14
16:00
(17) почему не хранит то? он периодический. Хранит, но у каждого регистратора свои записи. Хочешь рядом записи - заведи другой документ
19 myr4ik07
 
07.10.14
16:00
используется регистр сведений и он на сколько я знаю хранит старые значения (17)
20 myr4ik07
 
07.10.14
16:01
понял (18)
21 an-korot
 
07.10.14
16:05
myr4ik07
ты на 1 регистратор ( твой документ ) хочешь повесить 1 тип цен просто в разных валютах, так не получится ))) или новое измерение добавляй или создавай копию документа с другой валютой )))
22 Maxus43
 
07.10.14
16:06
(21) валюта - Измерение, хоть сколько разных навесь жеж
23 myr4ik07
 
07.10.14
16:08
аааааа ))) вот спасибо, ща попробую (21) не знал )
24 myr4ik07
 
07.10.14
16:08
капец эти все нюансики помнить  и знать )
25 an-korot
 
07.10.14
16:15
(22) не буду спорить, но почему то удаляется ;)
26 Maxus43
 
07.10.14
16:17
(25) потому что у него к движениям добавляется ИЛИ одна, ИЛИ другая, а т.к. документ перепроводится - удаляются старые сначала. В итоге добавляется только одна
27 an-korot
 
07.10.14
16:19
(26) поэтому мой совет правильный )) что и требовалось доказать ;)
28 an-korot
 
07.10.14
16:20
(22) только что посмотрел, я все правильно объяснил, Валюта это ресурс, а не измерение.
29 an-korot
 
07.10.14
16:21
(24) вот  такие нюансики иногда бесят больше всего )))
30 Maxus43
 
07.10.14
16:26
(28) ресурс? тогда да, был неправ, не открыт пофигуратор.

Но! Код его всё равно не сделает 2 записи, хоть бы и измерение было
31 myr4ik07
 
07.10.14
16:30
шо сделать что бы сделал 2 запиис?(30)
32 Maxus43
 
07.10.14
16:32
(31) если валюта ресурс - то ничего, 2 документа заводить
33 myr4ik07
 
07.10.14
16:35
ресурс (((32)
34 ILM
 
гуру
07.10.14
19:04
"флашок" в мемориз....Ааа