Имя: Пароль:
1C
1C 7.7
v7: Заполнение многострочной части
, ,
0 НеОчень
 
27.04.12
13:50
Ситуация: есть документ1 с реквизитами Номерсв и Вес. В нем есть кнопочка, при нажатии которой открывается документ2 с реквизитами Название, Вес (тип "Число"), Примечания. Примечания привязан к Перечислениям "ВидыСв".
Нужно чтобы если Вес>30 тогда в Примечания вносилось Перечисления.ВидыСв.Имя1, иначе Перечисления.ВидыСв.Имя2. После этого при нажатии "Ок" значения Название и Вес перенеслись в документ1 в поля Номерсв и Вес.
Может кто подскажет как это правильно реализовать?
1 Wobland
 
27.04.12
13:51
правильно это реализовать в обработке нажатия кнопки
2 Avganec
 
27.04.12
13:57
(0) Если надо правильно, то тогда надо будет ссылочку как параметр передавать, чтобы через вторый объект править, либо обработчик возвратного значения делать. В любом случае надо будет гонять параметры, а вот какие и куда решай сам.
3 НеОчень
 
27.04.12
14:08
поставлю вопрос по другому :) Как это реализовать? я нолячий в 1с, поэтому по подробней бы, если можно:)
4 Mikeware
 
27.04.12
14:08
(3) позвать того, кто не "нолячий". За деньги.
5 НеОчень
 
27.04.12
14:10
так я учусь
6 Avganec
 
27.04.12
14:11
если учишься, тогда начни с хорошей постановки задачи.
7 chief accountant
 
27.04.12
14:12
(3) Хм, можно конечно, если поймешь
Под сабж подходит связка АвансовыйОтчет-ПоступлениеМЗ
АвансовыйОтчет:
   Если (Форма.АктивныйЭлемент() = "РасчетныйДокумент") Тогда  
       Если ПустоеЗначение(РасчетныйДокумент)=0 Тогда
           Параметр=СоздатьОбъект("СписокЗначений");
           Параметр.Установить("Контекст"            , Контекст );
           Параметр.Установить("Действие"            , "ВводИзАвансовогоОтчета");
           Параметр.Установить("НомерСтроки"         , НомерСтроки);  
           ОткрытьФормуМодально(РасчетныйДокумент,Параметр);
       КонецЕсли;
   КонецЕсли;
ПоступлениеМЗ:
       Если Выбран() = 1 Тогда
           КонтекстОснования.РасчетныйДокумент    = ТекущийДокумент();
           КонтекстОснования.Сумма                = Итог("Всего");
           КонтекстОснования.СуммаПоОтчету        = Итог("Всего");
           КонтекстОснования.СтавкаНДС            = "";
           КонтекстОснования.НДС                  = Итог("НДС");
           КонтекстОснования.СчетКредита = СчетКредита;    
               КонецЕсли;
8 chief accountant
 
27.04.12
14:13
(6) А чего не понятно?
9 Avganec
 
27.04.12
14:15
(8) мне лично все, но только поставить задачу можно было и лучше. А правильно поставленная задача это уже половина решения
10 chief accountant
 
27.04.12
14:19
(9) Сабж не требует постановки, т.к. является обучалкой для ТС. И решение не нужно по той же причине
11 НеОчень
 
27.04.12
14:22
chief accountant, спасибо, буду разбираться
12 НеОчень
 
27.04.12
16:19
а это :
если Вес>30 тогда в Примечания вносилось Перечисления.ВидыСв.Имя1, иначе Перечисления.ВидыСв.Имя2

я делаю
Функция ИзмПрим()
   ИзмПрим=?(Вес>30, Перечисление.ВидыСвинок.Видгодивля, Перечисление.ВидыСвинок.Порося);  
   Возврат ""
КонецФункции

в "Примечания" вставляю функцию ИзмПрим(), а реакции никакой ( то есть при вводе вес 31, соответствующая ячейка в "Примечаниях" не меняется)
13 chief accountant
 
27.04.12
16:27
(12) в Вес нужно функцию
14 НеОчень
 
27.04.12
16:35
все равно не хочет
15 chief accountant
 
27.04.12
16:37
(14) Тип Примечания?
16 НеОчень
 
27.04.12
16:47
стояло Перечисления.ВидСвинок, ставил еще <Строка>, тоже самое
тип Вес - <Число>
17 chief accountant
 
27.04.12
17:03
Стояло правильно.
Ну так и присваивай значение Примечанию, а не ИзмПрим=
Возврат не нужен.
Сделай процедуру
18 НеОчень
 
27.04.12
17:12
да, получилось. спасибо большое и простите, если задаю глупые вопросы. просто дают задания, которые надо делать быстро,а я толком основ не знаю, а времени прочит книгу на 500 станиц и разобраться как нормальный человек что к чему просто нет
19 del123
 
27.04.12
17:13
а где такие задания задают?)
20 chief accountant
 
27.04.12
17:13
(18) Кто хоть задания-то дает?
21 Mikeware
 
27.04.12
17:14
Есть одна притча о том как один мужик рубил дерво тупым топором. к нему подходит другой мужик и говорит: " наточи топор и тебе будет легче рубить", а тот ему отвечает: " мне некогда точить, мне рубить надо".
22 Mikeware
 
27.04.12
17:14
(19)(20)франч, вестимо...
23 chief accountant
 
27.04.12
17:15
(22) На клюшках зеленый франч, как-то сомнительно
24 НеОчень
 
27.04.12
17:24
(19) (20) ой, не спрашивайте)
(21) да, моя ситуация
Вот ток что поступило еще одно домашние задание:) Надо чтобы при вводе в одну колонку табличной части "Название", значение в колонке "?название" автоматически стиралось и блокировался дальнейший ее ввод
25 Он
 
27.04.12
17:29
Текст на форму с формулой
26 chief accountant
 
27.04.12
17:33
(24) Колись, а то подсказывать больше не будем
27 НеОчень
 
27.04.12
17:36
а?:)
28 НеОчень
 
27.04.12
17:37
"колись", в смысле рассказывай кто задания дает?:)
29 chief accountant
 
27.04.12
17:38
(28) да
31 НеОчень
 
27.04.12
17:47
(29) та на работе
32 Mikeware
 
27.04.12
17:50
(31) с каких пор дворников к компьютерам подпускают?
33 chief accountant
 
27.04.12
17:51
(31) мне пофиг где. Вопрос в (20)
34 Mikeware
 
27.04.12
17:54
(33)"где у женщин самые кучерявые волосы?"© :-))
35 chief accountant
 
27.04.12
17:57
Что-то пятница скушная, последний на сегодня ламер и то с форума сбёг
36 Mikeware
 
27.04.12
17:58
(35) неправильная пятница. а завтра будет неправильная суббота
37 НеОчень
 
27.04.12
17:59
(35) да нет, я здесь, просто не понимаю зачем тебе это?
38 chief accountant
 
27.04.12
18:00
(37) Ааа, ты здесь ещё.
Зачем-зачем... скушно
39 НеОчень
 
27.04.12
18:07
(38) и?
40 НеОчень
 
30.04.12
16:30
В документе2 пишу:

Процедура ПередПар()
Парам = СоздатьОбъект("СписокЗначений");
Парам.ДобавитьЗначение(Вес,"Вес");
ОткрытьФормуМодально("Документ.РеализацияЖивотных", Парам);
КонецПроцедуры


В кнопку "Ок" добавляю формулу ПередПар()

В документе1 пишу в процедуре ПриОткрытии()

Парам=Форма.Параметр;
Если ПустоеЗначение(Парам)=0 Тогда
  Вес = Парам.Получить("Вес");
КонецЕсли;


Реакции никакой...ошибок нет и значения "вес" не переносит...

точнее при нажатии "Ок" документ1 открывается, но вес не переносится
41 ЧеловекДуши
 
30.04.12
16:41
(40) Ты не внимательный :)
42 НеОчень
 
30.04.12
16:50
эммм...а где я провтыкал?)
43 GreyK
 
30.04.12
17:23
(42) В Форма.Параметр можно засунуть всякую хрень.
После
ОткрытьФормуМодально("Документ.РеализацияЖивотных", Парам);
Надо взять из Парам, что туда положила форма.
44 НеОчень
 
30.04.12
18:05
(43) не понимаю...в моей ситуации при нажатии кнопки открывается Документ.РеализацияЖивотных, в который передается СписокЗначений в качестве параметра. При открытии Документ.РеализацияЖивотных он берет из переданного списка значений значение веса, так?
45 wsxedc83
 
30.04.12
21:14
(40) Реквизит вес в открывшемся документе1 в многострочной части?
46 wsxedc83
 
30.04.12
21:15
(40) А в документе2 у тебя реквизит Вес - многострочной части или шапки?
47 wsxedc83
 
30.04.12
21:17
Просто то что написано в (40) будет работать только если в обоих документах это реквизиты шапки. В противном случае, необходимо смотреть СП на тему "ПолучитьСтрокуПоНомеру()"
48 НеОчень
 
30.04.12
23:44
(47) хм, да, это в многострочной части, спасибо за совет
49 wsxedc83
 
01.05.12
00:05
(48) главное чтоб помог...
50 Мимохожий Однако
 
01.05.12
08:34
Отладчик что показывает? Или еще не включил?
51 НеОчень
 
02.05.12
15:10
Вот так передает:

Парам=Форма.Параметр;
Если ПустоеЗначение(Парам)=0 Тогда
  пВес = Парам.Получить("Вес");
  Сообщить(пВес);
КонецЕсли;

Вот только присвоить теперь это значение табличной части "Вес" не выходит...с помощью чего это делают нормальные люди вообще?
52 chief accountant
 
02.05.12
15:35
(51) Читай (7)
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший