Имя: Пароль:
1C
1С v8
Подскажите по управляемой форме
0 егаис
 
19.10.11
17:20
Новый документ Чек ККМ. После сканирования ШК товар заносится в таблицу Товары. Есть еще поле "Серийный номер", которое также должно заполняться с помощью сканера (условие обрабатывается дополнительно).
Т.е. объект не записан, но элементы формы заполнены.
Подскажите, плиз, как добавить значение в реквизит ТЧ "серийный номер".
Мучаю через Элементы.Товары, но не пойму как установить значение.
Спасибо
1 егаис
 
19.10.11
17:22
Если Элементы.Товары.ТекущаяСтрока <> Неопределено Тогда
           Элементы.Товары.СерийныйНомер = ТекКод;
       КонецЕсли;    
так ошибка
2 егаис
 
19.10.11
17:27
хелп плиз
3 Юрий Лазаренко
 
19.10.11
17:30
(0) Объект.Товары
4 егаис
 
19.10.11
17:34
это коллекция
так малость продвинулся )

объект.товары.найтистроки(Новый структура("НомерСтроки",Элементы.Товары.ТекущаяСтрока+1))

Но это массив. Как непосредственно записать реквизит?
5 егаис
 
19.10.11
17:36
во
объект.товары.Получить(Элементы.Товары.ТекущаяСтрока)
6 егаис
 
20.10.11
09:33
Доброе утро
Подскажите, плиз, еще по такому вопросу.
В Рознице 2 в документе "Чек" отдельно разнесены "Провести" и "Пробить чек"
Хотелось бы упростить жизнь кассирам и вызывать функцию проведения из модуля формы перед пробитием чека. Как вызвать функцию проведения объекта в модуле?
Спасибо
7 hatsher
 
20.10.11
09:36
(6) Объект.Провести
8 егаис
 
20.10.11
09:38
(7) разве так можно?
9 егаис
 
20.10.11
09:44
ап
10 Рэйв
 
20.10.11
09:48
мСтрок=объект.товары.найтистроки(Новый структура("НомерСтроки",Элементы.Товары.ТекущаяСтрока+1))
ДляКаждого Эл Из мСтрок Цикл
    Эл.СерийныйНомер=КакойтоНомер;
КонецЦикла;
11 егаис
 
20.10.11
09:50
(10) Рэйв, по сабжу решил
чтобы ветки не плодить, пишу здесь же
Актуально (6)
12 Рэйв
 
20.10.11
09:57
(11)Объект.Провести()
13 Рэйв
 
20.10.11
09:59
+я не помню как точно в УФ
возможно что-то типа
Объект.Записать(РежимЗаписиДокумента.Проведение)
14 Ranger_83
 
20.10.11
10:01
Просто Записать()
15 егаис
 
21.10.11
10:02
еще вопрос:)
выбор файла xls в управляемом приложении
Делаю при начале выбора
   ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
   ДиалогВыбораФайла.Заголовок = "Выберите файл";
   ДиалогВыбораФайла.ПредварительныйПросмотр = Ложь;
   Текст = "ru = ""MS Excel""; en = ""MS Excel""";
   ДиалогВыбораФайла.Фильтр = НСтр(Текст) + "(*.xls)|*.xls";
   Если ДиалогВыбораФайла.Выбрать() Тогда
       Файл = Новый Файл(Элемент.Значение);
       Элемент.Значение = ДиалогВыбораФайла.ПолноеИмяФайла;
   КонецЕсли;

выводит окно с текстом ""
16 егаис
 
21.10.11
14:43
по тому что выше все ок
Есть еще вопрос,
как надо извариться чтобы вывести в ТЧ документа в доп.колонку разницу между 2-мя другими колонками.
Т.е. есть колонка "Кол по документу", "Кол факт" - это реквизиты Таблицы "Товары".
Кол по документу заполняется из экселя, по факту - сканером.
Также есть колонка "Разница" - поле ввода, как там отразить разницу между двумя колонками?
Понимаю что через элементы формы, подките примерчик
Спасибо.
17 егаис
 
21.10.11
14:48
в какой предопределенной функции описывается сие?
Сильно не пинайте, изучаю УФ на практике )
18 егаис
 
21.10.11
14:54
ап
19 rotting
 
21.10.11
15:02
20 rotting
 
21.10.11
15:03
(19) по предыдущему воросу, не увидел что решил, сорри
21 егаис
 
21.10.11
15:04
это уже не нужно, спасибо
по (16)
я так понимаю расчет надо отрабатывать в нескольких событиях
"чтение на сервере, при изменении количества"
Так?
22 rotting
 
21.10.11
15:05
Элементы.Товары.ТекущиеДанные.Разница = -Элементы.Товары.ТекущиеДанные.КоличествоУчет + Элементы.Товары.ТекущиеДанные.КоличествоФакт;
23 егаис
 
21.10.11
15:06
это-то ясно
Впихивать в разные события?
изврат какой-то...
24 rotting
 
21.10.11
15:07
Ну напиши одну процедуру для нескольких событий, а потом вызывай из событий её, в чем проблема?
25 егаис
 
21.10.11
15:11
не, все равно изврат
судя по ошибке, процедуру описываем на клиенте...
26 rotting
 
21.10.11
15:20
(25) Да в чем изврат то? Интересно просто. Как ты хотел?
27 егаис
 
21.10.11
15:22
бррр, что-то я запутался (
Если создать реквизит "Разница", то не проблема.
Вот с полем ввода не разберусь.

& На Сервере
ПриЧтенииНаСервере
Не отрабатываеся клиентская функция
28 егаис
 
21.10.11
15:29
Элементы.Товары.ТекущиеДанные не видны на сервере.
Может я что-то не то делаю?
29 егаис
 
21.10.11
15:31
стоп, если передать форму.
Минуту...
30 vmv
 
21.10.11
15:52
(28) Элементы формы никогда не видны на сервере в чистом виде - это первой, что нужно зарубить на носу.

РеквизитФормыВЗначение(), ДанныеФормыВЗначение() и обратные им методы в помощь и забудьте про НайтиСтроки, передачу деревазначений его строк, если это клиент. Просто нужно организовать грамотную передачу управления между дуплексом "На сервере модифицировал значение - На клиенте показал его как элемент формы". В мозгах организовать
31 егаис
 
21.10.11
15:52
делал так
Процедура ПриЧтенииНаСервере(ТекущийОбъект)    
   
...    
ОбработкаТабличнойЧастиТоварыКлиентСервер.Рассчитать Разницу Количества(Объект.Товары, ЭтаФорма);
   
КонецПроцедуры


в общем модуле
Процедура Рассчитать Разницу Количества(Знач Товары, Знач Форма) Экспорт
...
КонецПроцедуры // ОбновитьСуммыПодвала()

невозможно прочитать
форма.элементы.товары.ТекущиеДанные - ошибка чтения значения

Комрады,подскажите, как решить вопрос ((
32 егаис
 
21.10.11
15:56
чувствую, проще реквизит повесить
33 vmv
 
21.10.11
15:57
(31) хрень, чесно говоря. Привыкайте писать в выкладках кода директивы исполнения методов &НаСервере, &НаСервере, а то толкового совета не услышите.
Не передавайте в параметрах составное значение, например Объект.Товары

И сразу пишите под тонкий, то все, что работает только в толстом - в топку без аппеляция для ПРИКЛАДНЫХ задач.

Пока все, без чтения вам глав СП "Управляемая форма" диспут будет длинным и бесполезным.