Имя: Пароль:
1C
1С v8
програмное создание формы в момент записи документа
,
0 Rassvetniy
 
24.07.16
17:35
приветствую. Насколько понимаю в процедуре обработкаПроведения нельзя открыть програмно какую нибудь произвольную форму чтобы с нее запустить связанный документ или можно?

такая строка:
ссылка.ПолучитьФорму("ПриходПереоценка").Открыть();
выдает интерактивные операции недоступны
в процедуре передЗаписью тоже...
смысл при сохранении приходной накладной проверить есть ли товары на складе по другим ценам и вывести форму с выбором переоценивать эти товары или нет
1 hhhh
 
24.07.16
17:39
(0) после записи пробуй
2 Mauser
 
24.07.16
17:39
В сообщении об ошибке написана чистая правда, ей-богу!
На клиенте проверяйте.
До свидания!
3 kosts
 
24.07.16
17:39
(0) Кто будет смотреть твои программно созданные формы при массовом перепроведении.
Делай в форме документа, передзаписью, или послезаписи.
4 Garykom
 
гуру
24.07.16
17:43
(3) Не просто в форме документа, а при добавлении/изменении номенклатуры в строке.
5 Rassvetniy
 
24.07.16
18:03
понял, документ.модуль объекта отпадает буду пробовать в форму документа
6 Garykom
 
гуру
24.07.16
18:25
(5) статус проведения/удаления учитывай при обработке и работу задним числом...
7 Rassvetniy
 
24.07.16
20:47
Garykom, спасибо за совет я пока каркас конфигурации делаю для загрузки данных из фокспро программы, учет проведения и заднего числа еще и не продумывал
в модуле формы все работает, такой код:
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
        П = Новый Структура("ссылкаДок", Объект.ссылка) ;
    Форма= ПолучитьФорму("Документ.ПриходнаяНакладная.Форма.ПриходПереоценка",П);
Форма.Открыть();

КонецПроцедуры
8 Rassvetniy
 
24.07.16
21:53
возник очередной вопрос... в форме источник данных динамический список  - таблица товаров, последний столбец запроса Истина как Переоценить, интерактивно эту птичку можно менять или никак? вроде пишут что в формах списка где есть динамический список редактирование закрыто
9 Garykom
 
гуру
24.07.16
22:13
(7) Подозревается что очередной лисапед ваяете, может лучше БП/УТ/УНФ/Розница/КА2 ?
10 Garykom
 
гуру
24.07.16
22:15
(8) Динамический список это запрос по данным в базе. Галочка то куда в базу будет писаться?

Если никуда то это временная ТЗ как реквизит формы к примеру.
11 Mauser
 
24.07.16
22:15
(8) Подставить обработчик клика, изменить данные в базе, перечитать динамический список с сохранением  текущей позиции, поматериться по поводу уехавшего списка...

Зачем это все?
12 Rassvetniy
 
24.07.16
22:32
именно лисапед )) так сказать освоение 1с на практике
13 Rassvetniy
 
24.07.16
23:39
если заменить динамический список на таблицу значений то нужный эффект достигается  - в форме таблица список товаров и колонка в которой птичка для пометки выбора нужных строк
вот код:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    
    
     Запрос = Новый Запрос;
     Запрос.Текст = "      ВЫБРАТЬ Остатки.Номенклатура как нм,    Остатки.Документ как дк,
    |Остатки.Цена как цена,    Остатки.Количество как клв,    Истина КАК Переоценить,
    |ЛОЖЬ КАК УстановитьЦену
|ИЗ
|    РегистрНакопления.Остатки КАК Остатки
|        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПриходнаяНакладная КАК ПриходнаяНакладная
|        ПО Остатки.Документ <> ПриходнаяНакладная.Ссылка
|            И Остатки.Цена <> ПриходнаяНакладная.ПереченьТовара.ЦенаРозничная
|            И Остатки.Номенклатура = ПриходнаяНакладная.ПереченьТовара.Номенклатура
|ГДЕ
|    Остатки.Количество > 0
|    И ПриходнаяНакладная.Ссылка = &ссылкаДок";

запрос.УстановитьПараметр("ссылкаДок", Параметры.ссылкаДок);
//Товары = Запрос.Выполнить().Выгрузить();
Выборка = Запрос.Выполнить().Выбрать();


Пока Выборка.Следующий() Цикл
сп = Товары.Добавить();
сп.номенклатура = Выборка.Нм;
сп.документ = Выборка.дк;
сп.цена = Выборка.цена;
сп.количество = выборка.клв;
сп.флаг = выборка.переоценить;
КонецЦикла;

КонецПроцедуры
14 Горогуля
 
25.07.16
04:10
//Товары = Запрос.Выполнить().Выгрузить();
не загрузилося?
15 Rassvetniy
 
31.07.16
02:10
Горогуля, не помню может и не загрузилось...
подскажите какой объект данных по науке используется для передачи некой таблицы между функциями, есть ли нюансы по быстродействию и прочему? например нужно програмно создать документ и передать в него входные данные таблицу строк на сто
16 Garykom
 
гуру
31.07.16
02:13
(15) Посмотри в СП тип результата "Запрос.Выполнить().Выгрузить()" из (14) где ответ на вопрос