|
как провести документ в привилегированом режиме? | ☑ | ||
---|---|---|---|---|
0
vde69
14.10.14
✎
12:13
|
обычные формы, нужно по кнопке на форме провести документ в привелегированом режиме, наверняка кто-то уже реализовывал?
подскажите куда копать... |
|||
1
IШаман
14.10.14
✎
12:14
|
(0) Все процедуры проведения в привелегерованный модуль:) ну или только их часть.
|
|||
2
Maxus43
14.10.14
✎
12:15
|
по кнопке вызывай процедуру в привелигированном модуле, в которой будет перепроведение документа
|
|||
3
Ненавижу 1С
гуру
14.10.14
✎
12:16
|
а если...
на клиенте тупо записать, а потом вызвать привелигированный модуль и передать туда ссылку и там провести, а? |
|||
4
Maxus43
14.10.14
✎
12:16
|
это в клиент сервере с модулем, в других вариантах проще, установитьпривелигированныйрежим...
|
|||
5
vde69
14.10.14
✎
12:16
|
форма - форма объекта...
на сервер нельзя передать обьект, мутабельность однако... |
|||
6
IШаман
14.10.14
✎
12:17
|
(3) А что значит сначала записать, а потом провести?
|
|||
7
Ненавижу 1С
гуру
14.10.14
✎
12:17
|
(5) я же попросил передать ссылку в (3)
|
|||
8
Maxus43
14.10.14
✎
12:17
|
(6) объект на сервер не передать, он мутабелен, надо тока ссылку. А чтоб не потерялись изменения - надо записать
|
|||
9
Ненавижу 1С
гуру
14.10.14
✎
12:18
|
(6) сначала на клиенте запись (без режима проведения)
потом в привелигированном режиме на сервере получаем по ссылке объект и проводим |
|||
10
IШаман
14.10.14
✎
12:18
|
(5) Передавай параметры.
|
|||
11
vde69
14.10.14
✎
12:19
|
(6) создать движения...
тут вопрос как запретить записывать движения при интерактивном проведении и перехватить это для передачи на сервер, да и вопрос транзакции будет |
|||
12
IШаман
14.10.14
✎
12:19
|
(9) Ну если проблема не в записи, то вполне норм решение - самое то для ленивых:)
|
|||
13
Ненавижу 1С
гуру
14.10.14
✎
12:20
|
(11) так запретить или привелигированный?
|
|||
14
Maxus43
14.10.14
✎
12:21
|
и это, Объект - сериализуется, можно во временное хранилище запихать, передать на сервер
|
|||
15
IШаман
14.10.14
✎
12:22
|
(14) Тоже неплохо. Вообще пока ТС не скажет в чем проблема варианты решения можно давать один круче другого.
|
|||
16
Maxus43
14.10.14
✎
12:26
|
с транзакцие проблем не вижу вроде, будет в рамках идти, в обработке проведения надо толклько Возрат ставить, если это интерактивное, чтоб Отказа не было
|
|||
17
DrZombi
гуру
14.10.14
✎
12:28
|
(0) Привилегированный режим возможен только на сервере :)
|
|||
18
DrZombi
гуру
14.10.14
✎
12:29
|
+ В тонком клиенте это команды &НаСервере и через ПолучитьОбъект() проводишь в обход диалога :)
|
|||
19
DrZombi
гуру
14.10.14
✎
12:29
|
+ В толстом лучше всего для этого организовать Общий модуль :)
|
|||
20
vde69
14.10.14
✎
13:33
|
давайте по порядку...
задача: есть документ который должен делать движения по регистру на который у пользователя стоит рельса "гда ложь" что есть сейчас: 1. стоит запрет на интерактивное проведение, переопределена кнопка "ОК", по ней происходит или перепроведение или запись + старт БП, после окончания БП документ может проводится. 2. проведение реализовано в отдельных модулях менеджерах, что позволяет формировать движения по ссылке 3. у НЕ проведенного документа могут быть движения (например регистр СтатусыДокументов) |
|||
21
vde69
14.10.14
✎
13:35
|
модуль документа:
//------------------------------- Процедура СформироватьПолныеДвиженияДокумента (Заголовок, Отказ) Экспорт // определяем по каким регистрам движения у нас будут ТаблицаПроведения = ПроведениеДокументов.СоздатьТаблицуПроведения(); Документы.РеализацияТоваровУслуг.ЗаполнитьТаблицуПроведения(ТаблицаПроведения, ПометкаУдаления, Проведен, Отказ); // подготовим пакет запроса в соответствие с тем какие регистры мы определили, // после подготовки пакета его можно чуть допилить Запрос = ПроведениеДокументов.ПодготовитьЗапросДляПроведения(ЭтотОбъект, ТаблицаПроведения, Заголовок, Отказ); // выполнение пакета и заполнения таблиц проведения // после можно что-то подкоректировать руками Параметры = Новый Структура("УдалитьВсеДвижения"); ПроведениеДокументов.ПодготовитьТаблицуПроведения (ЭтотОбъект, Запрос, ТаблицаПроведения, Параметры, Заголовок, Отказ); // выполняем движения по регистрам ПроведениеДокументов.ПроведениеПоРегистрам(ЭтотОбъект, ТаблицаПроведения, Заголовок, Отказ, Истина); Если не Проведен и не ПометкаУдаления Тогда // немного криво, но сделано на случай отмены проведения, что бы при этом движения сохранялись Движения.Записать(); КонецЕсли; КонецПроцедуры Процедура ОбработкаПроведения(Отказ, РежимПроведения) Перем Заголовок, СтруктураШапкиДокумента, ТаблицыДвижений; СтруктураШапкиДокумента = ПроведениеДокументов.СформироватьСтруктуруШапкиДокумента(Заголовок, ЭтотОбъект, Отказ); // Проверим правильность заполнения шапки документа ПроверитьЗаполнениеШапки(СтруктураШапкиДокумента, Отказ, Заголовок); СформироватьПолныеДвиженияДокумента (Заголовок, Отказ); КонецПроцедуры // ОбработкаПроведения() Процедура ПриЗаписи(Отказ) Если ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; Если не Проведен Тогда Заголовок = "Движение документа """ + СокрЛП(Ссылка) + """: "; СформироватьПолныеДвиженияДокумента (Заголовок, Отказ); КонецЕсли; КонецПроцедуры Процедура ПередУдалением(Отказ) ОбщегоНазначения.УдалитьДвиженияРегистратора(ЭтотОбъект, Отказ, Ложь, Ложь); КонецПроцедуры |
|||
22
vde69
14.10.14
✎
13:39
|
что мне не например не нравится в предложеных ранее схемах;
ну например после первой записи придется оставлять старые движения и в модуле формирования новых движений придется их исключать отдельно |
|||
23
GROOVY
14.10.14
✎
13:56
|
Вообще-то у документов есть свойство "Проведение в привилегированном режиме" Равно как и отмена проведения. Это галки в свойствах документа.
|
|||
24
vde69
14.10.14
✎
14:00
|
(23) эти галки на интерактивные действия не действуют, они инициирую режим только в том случае если проведение документа програмное и было вызвано на сервере.
При програмном вызове проведения из клиента - режим игнорируется |
|||
25
GROOVY
14.10.14
✎
14:04
|
(24) Ну вызывай сервер и там проведение. Или ВключитьПривилегированный , но это тоже только на сервере, так что без разницы.
|
|||
26
zmaximka
14.10.14
✎
14:07
|
В серверной процедуре установить привелигерованый режим = истина. После проведения выключить привелигированый режим
|
|||
27
vde69
14.10.14
✎
14:07
|
(25) формы ПРОСТЫЕ, передать обьект на сервер - мутабельность...
|
|||
28
GROOVY
14.10.14
✎
14:20
|
(27) Вот ведь... Сделай управляемую и открывай ее в обычном приложении.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |