|
|
|
План обмена и Установка даты запрета изменения данных | ☑ | ||
|---|---|---|---|---|
|
0
sinjevla
09.06.10
✎
10:28
|
В УТ 8.1 при обмене данных с филиалом, часто выскакивает Ошибка:
"Редактирование данных этого периода запрещено. Изменения не могут быть записаны ... " Приходится заходить в Настройки учета - Установка даты запрета изменения данных и менять дату или вообще ее убрать, после этого обмен проходит. Установка даты запрета изменения данных нужна, но и при обмене каждый раз ее менять надоедает. Как сделать чтобы при обмене он не ругался на дату редактирования ? |
|||
|
1
IronDemon
09.06.10
✎
10:30
|
Выполнять под "полными" правами или в привилегированном модуле.
|
|||
|
2
Defender aka LINN
09.06.10
✎
10:33
|
(1) Эта проверка кодом сделана, чихать она хотела на привилегированные модули :)
|
|||
|
3
IronDemon
09.06.10
✎
10:36
|
(2) Не правильная проверка. Старая, с RLS, обходится ;)
|
|||
|
4
Живой Ископаемый
09.06.10
✎
10:40
|
2(0) ответ очевиден. Попытка, в случае неуспеха - програмная установка даты запрета, вторая попытка, возврат даты запрета.
|
|||
|
5
sinjevla
09.06.10
✎
10:40
|
какое решение ?
|
|||
|
6
Mirid
09.06.10
✎
10:54
|
Может проще в коде проверить на наличие полных прав и, в случае успеха не выполнять проверку вообще. Или проверить на Источник.ОбменДанными
|
|||
|
7
Живой Ископаемый
09.06.10
✎
10:58
|
2(6) Там прикол такой, что в константах можно выставить чтобы ДатаЗапрета действовала даже на полные права. А вот источник.ОбменДанными - да, наверное будет правильно
|
|||
|
8
sinjevla
09.06.10
✎
11:05
|
(7) Дата запрета действует и для полных прав.
(6)(7) Значит проверю Источник.ОбменДанными должно получится |
|||
|
9
sinjevla
07.07.10
✎
12:41
|
не могу понять как отключить проверку ПроверкаПериодаДокумента.
В общем модуле ПроцедурыОбменаДанными. Процедура ПередЗаписьюДокументаПроверкаНаличияВОтложенныхДвиженияхПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт Если Источник.ЭтоНовый() ИЛИ РежимЗаписи <> РежимЗаписиДокумента.Запись Тогда Возврат; КонецЕсли; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 1 | |ИЗ | РегистрСведений.ОтложенныеДвиженияДокументов КАК ОтложенныеДвиженияДокументов |ГДЕ | ОтложенныеДвиженияДокументов.Документ = &Ссылка"; Запрос.УстановитьПараметр("Ссылка", Источник.Ссылка); РезультатЗапроса = Запрос.Выполнить(); Если РезультатЗапроса.Пустой() Тогда Возврат; КонецЕсли; #Если Клиент Тогда Сообщить(Строка(Источник) + Символы.ПС + " |Записывается документ, присутствующий в списке отложенных к проведению. |Запись может повлечь за собой отмену проведения документа в других информационных базах! |Рекомендуется провести документ!"); #КонецЕсли КонецПроцедуры затем проверяется период документа // Обработчик подписка на событие ПередЗаписьюДокументаДатаЗапретаРедактирования // Процедура ПередЗаписьюДокументаДатаЗапретаРедактированияПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт ПроверкаПериодаДокумента(Источник, Отказ, РежимЗаписи); Если Отказ Тогда #Если Клиент Тогда Сообщить("Редактирование данных этого периода запрещено. Изменения не могут быть записаны...", СтатусСообщения.Важное); #КонецЕсли КонецЕсли; КонецПроцедуры // ПередЗаписьюДокументаДатаЗапретаРедактированияПередЗаписью() Как обойти проверку периода документа при обмене данными ! |
|||
|
10
VladimirSK
07.07.10
✎
12:56
|
(9) поставь в самом начале процедуры
Если Источник.ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; Но если в результате обмена приходят измененные данные закрытых периодов, значит в перифирии запрета нет. |
|||
|
11
Живой Ископаемый
07.07.10
✎
12:56
|
я вставил в саму процедуру ПроверкаПериодаДокумента:
Процедура ПроверкаПериодаДокумента(ДокументОбъект, Отказ, РежимЗаписи = Неопределено) СоответствиеГраницЗапрета = ПараметрыСеанса.ГраницыЗапретаИзмененияДанных.Получить(); // Для пользователя с полными правами проверок выполнять не нужно Если СоответствиеГраницЗапрета = Неопределено Тогда Возврат; КонецЕсли; ПараметрыПроверкиДокумента = ПолучитьПараметрыПроверкиДокумента(ДокументОбъект); //если документ пришел по обмену - загрузим несмотря на дату... у себя-то он провелся поди //НЕ (ДокументОбъект.ОбменДанными.Загрузка) Если Не ДокументОбъект.ЭтоНовый() Тогда Если НЕ (ДокументОбъект.ОбменДанными.Загрузка) Тогда СтараяВерсияДокумента = ПолучитьВерсиюДокументаПередИзменением(ДокументОбъект, ПараметрыПроверкиДокумента); ПроверитьВерсиюДокумента(СтараяВерсияДокумента, ПараметрыПроверкиДокумента, СоответствиеГраницЗапрета, Отказ); КонецЕсли; КонецЕсли; Если Не Отказ Тогда // если документ пришел по обмену - загрузим несмотря на дату... у себя-то он провелся поди //НЕ (ДокументОбъект.ОбменДанными.Загрузка) Если НЕ (ДокументОбъект.ОбменДанными.Загрузка) Тогда ПроверитьВерсиюДокумента(ДокументОбъект, ПараметрыПроверкиДокумента, СоответствиеГраницЗапрета, Отказ, РежимЗаписи); КонецЕсли; КонецЕсли; |
|||
|
12
sinjevla
07.07.10
✎
14:52
|
(11) Да получилось большое спасибо
а как для ПроверкаПериодаЗаписейРегистров ? Будь добр :) |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |