Имя: Пароль:
1C
1С v8
Проведение документа
, ,
0 Zalatuy
 
17.10.13
15:26
Есть задача
1. Документы должны проводиться только программно.
2. Я сделал обработку, которая проводит документы.
3. Проведение документов вызывается на сервере.
4. В модуле объекта документа написал код,
который запрещает проведение интерактивно.
5. Тем не менее, при серверном вызове процедуры проведения
программный код на клиенте вызывается.
Вопрос Почему?

и почему в документах дата проведения стоит будущая?
1 mikecool
 
17.10.13
15:29
потому что в модуле есть функции, отрабатывающие на клиенте
что такое дата проведения?
2 Zalatuy
 
17.10.13
15:44
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
    #Если Клиент Тогда
        //Этот код должен срабатывать только на клиенте
        Если РежимПроведения = РежимПроведенияДокумента.Неоперативный Тогда
        Предупреждение("Вы проводите данный документ интерактивно");
        Отказ = Истина;
        Возврат;
        КонецЕсли;
    #КонецЕсли
КонецПроцедуры

Текст ошибки

{Обработка.ПрограммноеПроведениеРеализацийНаСервере.МодульОбъекта(8)}: Ошибка при вызове метода контекста (Записать): Дата документа не соответствует текущей дате или дате последнего оперативно проведенного документа!
Документ не может быть проведен оперативно.
    ОбъектДокумента.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Оперативный);;
по причине:
Дата документа не соответствует текущей дате или дате последнего оперативно проведенного документа!
Документ не может быть проведен оперативно.
3 Поросенок Петр
 
17.10.13
15:50
Решается двумя галками в ролях.
4 Maxus43
 
17.10.13
15:50
(2) и? код на клиенте не срабатывает.
по дате - посомтри хоть дату у документа, оперативно проводить можно только с текущей датой, у тебя анверняка дата прошлая
5 Zalatuy
 
17.10.13
15:53
Дело в том что дата там стоит вообще будущая....число сегодняшнее а время будущее. Ролей в конфиге нету.
6 Maxus43
 
17.10.13
16:05
проводи неоперативно, и смотри где время меняется в коде, должно быть что-то
7 Zalatuy
 
17.10.13
16:13
Какая то магия. Перезагрузил конфиг. Дата сегодняшняя время прошлое. При попытке провести документ пишет неудалось. Никаких ошибок,и т.д
8 hhhh
 
17.10.13
16:13
какая конфа? УФ?
9 Zalatuy
 
17.10.13
16:15
{Обработка.ПрограммноеПроведениеРеализацийНаСервере.МодульОбъекта(8)}: Ошибка при вызове метода контекста (Записать): Не удалось провести "Реализация товаров и услуг 000000001 от 17.10.2013 22:15:12"!
        ОбъектДокумента.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Оперативный);;
по причине:
Не удалось провести "Реализация товаров и услуг 000000001 от 17.10.2013 22:15:12"!
10 Zalatuy
 
17.10.13
16:17
1С:Предприятие 8.2
11 hhhh
 
17.10.13
16:20
(10) понятно. Но хоть SQL?
12 Zalatuy
 
17.10.13
16:22
Честно хз) где смотреть?
13 Zalatuy
 
17.10.13
16:23
&НаСервере
Процедура ПровестиРеализацииНаСервере() Экспорт
    
    //Этот код вызывается только на сервере
    Выборка = Документы.РеализацияТоваровУслуг.Выбрать();
    Пока Выборка.Следующий() Цикл
        ОбъектДокумента = Выборка.ПолучитьОбъект();
        ОбъектДокумента.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);;
    КонецЦикла;
    
КонецПроцедуры
14 Infsams654
 
17.10.13
16:27
Оперативно <> Интерактивно, о чем тема (0)?
15 hhhh
 
17.10.13
16:36
(13) если у вас файловая база обычное приложение, то весь код выполняется на клиенте.

То что в комментарии вы написали, что выполняется на сервере - это конечно прекрасно, но надписями здесь ничего не поменяешь.
16 Zalatuy
 
18.10.13
01:58
Файловая база - основной режим запуска?
17 Zalatuy
 
21.10.13
11:41
Ребят вопрос открыт...(((( База файловая
18 hhhh
 
21.10.13
11:46
(17) файловая база игнорирует строчки типа   #Если Клиент Тогда

выполняется всё.
19 Zalatuy
 
21.10.13
11:57
Хорошо,а как тогда нужно было сделать?
20 Zalatuy
 
21.10.13
13:59
Сказали копать в сторону ролей,кто то тут говорил про две галочки..подскажите какие именно?
21 Zalatuy
 
21.10.13
16:26
Разобрался..удалил код запрета,поставил запрет ролями. И обработка заработала.