|
УФ 8.3 БП3.0.44.177: из модуля обработки при созд.дока изменить реквизиты формы | ☑ | ||
---|---|---|---|---|
0
Kleo
15.12.16
✎
12:03
|
Здравствуйте!
Обработкой загрузки документов из розницы создаю программно документы "ПоступлениеТоваровУслуг", документ создается, но мне нужно программно из модуля объекта обработки обратиться к реквизитам формы документа и присвоить им значение: НТТ = Истина; и РассчитыватьСуммаВРознице = Истина; Пишу так: Форма = Обьект.ПолучитьФорму("ФормаДокументаТовары"); РассчитыватьСуммаВРознице = Истина; ПоступлениеТоваровУслугФормыКлиентСервер.УстановитьРеквизитФормы(Форма, "РассчитыватьСуммаВРознице", РассчитыватьСуммаВРознице); НТТ = Истина; ПоступлениеТоваровУслугФормыКлиентСервер.УстановитьРеквизитФормы(Форма, "НТТ", НТТ); ругается, что: "Интерактивные операции недоступны" Может я что-то не так делаю? Может есть другой вариант? Подскажите, пожалуйста, очень надо! |
|||
1
Cool_Profi
15.12.16
✎
12:05
|
Какая форма на сервере?
|
|||
2
Kleo
15.12.16
✎
12:08
|
(1) создаю программно документ Поступление товаров и услуг (в НТТ по продажной стоимости) и мне нужно, чтобы при создании ТЧ документа сворачивалась, для этого в форме документа "ФормаДокументаТовары" нужно реквизитам присвоить нужные значения.
Модуль объекта обработки выполняет все на сервере |
|||
3
Kleo
15.12.16
✎
12:09
|
если выношу эти строки в процедуру на клиенте:
Форма = Обьект.ПолучитьФорму("ФормаДокументаТовары"); РассчитыватьСуммаВРознице = Истина; ПоступлениеТоваровУслугФормыКлиентСервер.УстановитьРеквизитФормы(Форма, "РассчитыватьСуммаВРознице", РассчитыватьСуммаВРознице); НТТ = Истина; ПоступлениеТоваровУслугФормыКлиентСервер.УстановитьРеквизитФормы(Форма, "НТТ", НТТ); то, он не видит процедуру в процедуре на сервере при обращении к ней |
|||
4
Kleo
15.12.16
✎
12:10
|
нашла, что можно решить через РеквизитФормыВЗначение, но пишет, что такой метод не доступен. я же программно создаю документ из модуля объекта своей обработки
|
|||
5
Cyberhawk
15.12.16
✎
12:12
|
Не думаю, что при программнос создании документов нужно изменять какие-то реквизиты каких-то форм
|
|||
6
Numerus Mikhail
15.12.16
✎
12:14
|
Какой смысл изменять реквизиты формы в модуле объекта, если эту форму вы все-равно не откроете?
|
|||
7
Kleo
15.12.16
✎
12:20
|
мне открывать форму документа не надо. документ я загрузила в программу, но открываю этот документ, а он требует заполнение номенклатуры, количества и цены, хотя если склад НТТ, то это не нужно. ТЧ сама сворачивается при интерактивном выборе склада с типом НТТ. но если я повторно захожу, изменяю склад, то программа уже повторно не предлагает свернуть ТЧ. и вообще, мне нужно, чтобы все само вставало
|
|||
8
Kleo
15.12.16
✎
12:21
|
(5) вам не нужно, а мне нужно. раз так неудобно написали документ и создали реквизиты формы, а не реквизиты документа
|
|||
9
Cool_Profi
15.12.16
✎
12:23
|
(7) Значит, при выборе склада меняется какой-то реквизит документа (не формы!)
Найди это и сделай как надо |
|||
10
Kleo
15.12.16
✎
12:27
|
попробуйте в БП 3.0 изменить учетную политику в рознице учет вести по продажным ценам и на складе НТТ с типом розничных цен. и затем создайте документ Поступление товаров.программа предложит свернуть ТЧ Товары.
а у меня получилось, что не свернул программно, и получается что не видно ни СуммаВРознице, ни СтавкаНДСВРознице. |
|||
11
Kleo
15.12.16
✎
12:27
|
(9) откройте типовую БП 3.0 и убедитесь, что нет такого реквизита документа!
|
|||
12
Cool_Profi
15.12.16
✎
12:29
|
(11) Открой метод ПриИзменении для этого реквизита и глазами посмотри, что и куда он пишет.
У меня под рукой сейчас нет БП. |
|||
13
Kleo
15.12.16
✎
12:30
|
эти строки я взяла из типового решения из общего модуля ПоступлениеТоваровУслугФормы:
РассчитыватьСуммаВРознице = Истина; ПоступлениеТоваровУслугФормыКлиентСервер.УстановитьРеквизитФормы(Форма, "РассчитыватьСуммаВРознице", РассчитыватьСуммаВРознице); НТТ = Истина; ПоступлениеТоваровУслугФормыКлиентСервер.УстановитьРеквизитФормы(Форма, "НТТ", НТТ); так делается в типовом решении. РассчитыватьСуммаВРознице и НТТ - это реквизиты формы, а не реквизиты документа |
|||
14
Kleo
15.12.16
✎
12:30
|
(12) я и посмотрела, смотрите (13)
|
|||
15
Kleo
15.12.16
✎
12:31
|
у меня конкретный вопрос: как обратиться из модуля объекта обработки при программном создании документа к реквизитам его формы и записать новые значения. саму форму мне открывать не нужно
|
|||
16
Cool_Profi
15.12.16
✎
12:31
|
(15) У меня конкретный ответ на твой конкретный вопрос.
Никак. Пока форма не открыта, никакие реквизиты её не существуют. |
|||
17
Kleo
15.12.16
✎
12:38
|
(16) не верю! должно быть решение
|
|||
18
Cool_Profi
15.12.16
✎
12:40
|
(17) Оно есть. см (9)
|
|||
19
Kleo
15.12.16
✎
12:42
|
&НаСервере
Процедура СкладПриИзмененииНаСервере() ПоступлениеТоваровУслугФормы.СкладПриИзменении(ЭтаФорма); КонецПроцедуры все равно нужно ЭтаФорма! а дальше приведенный выше текст |
|||
20
Kleo
15.12.16
✎
12:43
|
(18) нет такого реквизита. идите смотрите типовое решение!
|
|||
21
Cool_Profi
15.12.16
✎
12:43
|
А может, того... Замуж и детей завести, штук 5? Чтобы на глупые вопросы времени не осталось?
|
|||
22
Kleo
15.12.16
✎
12:46
|
дальше в ПоступлениеТоваровУслугФормы:
Процедура СкладПриИзменении(Форма) Экспорт СкладОбработатьИзменение(Форма); Форма.УправлениеФормойНаСервере(); КонецПроцедуры Процедура СкладОбработатьИзменение(Форма) Объект = Форма.Объект; ОпределитьНеобходимостьРасчетаСуммыВРознице(Форма); Объект.ПодразделениеОрганизации = ОбщегоНазначенияБПВызовСервера.ПолучитьПодразделение(Объект.Организация, Объект.Склад); ЗаполнитьСчетаУчета(Форма, Новый Массив, "Склад"); КонецПроцедуры Процедура ОпределитьНеобходимостьРасчетаСуммыВРознице(Форма) Экспорт Объект = Форма.Объект; УчетВПродажныхЦенах = ПоступлениеТоваровУслугФормыКлиентСервер.ПолучитьРеквизитФормы(Форма, "УчетВПродажныхЦенах"); ТипСклада = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Склад, "ТипСклада"); Если ТипСклада <> Перечисления.ТипыСкладов.ОптовыйСклад И УчетВПродажныхЦенах И (Объект.ВидОперации = Перечисления.ВидыОперацийПоступлениеТоваровУслуг.ПокупкаКомиссия ИЛИ Объект.ВидОперации = Перечисления.ВидыОперацийПоступлениеТоваровУслуг.Товары ИЛИ Объект.ВидОперации = Перечисления.ВидыОперацийПоступлениеТоваровУслуг.Оборудование) И Форма.ВидДоговора <> Перечисления.ВидыДоговоровКонтрагентов.СКомитентом Тогда РассчитыватьСуммаВРознице = Истина; Иначе РассчитыватьСуммаВРознице = Ложь; КонецЕсли; ПоступлениеТоваровУслугФормыКлиентСервер.УстановитьРеквизитФормы(Форма, "РассчитыватьСуммаВРознице", РассчитыватьСуммаВРознице); НТТ = ТипСклада = Перечисления.ТипыСкладов.НеавтоматизированнаяТорговаяТочка; ПоступлениеТоваровУслугФормыКлиентСервер.УстановитьРеквизитФормы(Форма, "НТТ", НТТ); КонецПроцедуры наверное, уже понятно, что все делается через реквизит формы. |
|||
23
Kleo
15.12.16
✎
12:46
|
(21) моя личная жизнь вас не касается. это форум по 1С и вопрос далеко не глупый!
а если вас интересует, то я замужем и ребенок есть! |
|||
24
Kleo
15.12.16
✎
12:47
|
(21) идите лучше учите типовые конфигурации, а не пишите ненужные советы
|
|||
25
Cool_Profi
15.12.16
✎
12:47
|
" ТипСклада = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Склад, "ТипСклада");"
Дада. Абсолютно всё - с формы. Ну просто абсолютно. |
|||
26
Kleo
15.12.16
✎
12:48
|
как можно обратиться к форме не открывая ее?
|
|||
27
Kleo
15.12.16
✎
12:50
|
ТипСклада = это реквизит справочника Склады, а не реквизит документа. тип склада указан - НТТ
|
|||
28
Kleo
15.12.16
✎
12:52
|
если я интерактивно документ создаю, то все ОК. а если программно, то не сворачивает ТЧ Товары и требует заполнение тех реквизитов ТЧ, которые мне не нужны при продажных ценах в НТТ (Номенклатура, Цена, количество)
|
|||
29
Shrek_yar
15.12.16
✎
12:55
|
(13) не может быть. Основы программирования прочитайте. Реквизит формы не храниться в базе, а только интерактивнно
|
|||
30
Shrek_yar
15.12.16
✎
12:58
|
(26) форма = получитьформу как то так. СП нет под рукой. Но то что вам надо это реквизит документа, а не формы.
Сделайте проще запишите документ и посмотрите какие реквзиты документа изменены и сравните со своим. Сразу стант ясно |
|||
31
Kleo
15.12.16
✎
12:58
|
(29) как тогда создать программно такого рода документ? если бы вы выгружали бы из одной базы в другую?
|
|||
32
catena
15.12.16
✎
13:02
|
(31)Записываете свой документ програмно. Записываете интерактивно со своими реквизитами формы. Вытаскиваете в запросе все реквизиты обоих документов и сравниваете значения.
|
|||
33
Kleo
15.12.16
✎
14:47
|
(32) сравнила с помощью специальной групповой обработки и реквизиты документа и реквизиты ТЧ.все совпадает. единственное отличается Способ зачета аванса и Сумма. и все! как переносить такого рода документы???
|
|||
34
Kleo
15.12.16
✎
14:49
|
такой еще тогда вопрос:
как можно получить процедуру из модуля объекта обработки из модуля формы обработки? или могу я открыть процедуру в общем модуле из модуля объекта обработки? |
|||
35
Cyberhawk
15.12.16
✎
19:27
|
(8) Ошибочное мнение
|
|||
36
mehfk
15.12.16
✎
19:36
|
(0) Начать с http://v8.1c.ru/metod/books/book.jsp?id=441 и лет годик сами сможете на такие вопросы отвечать.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |