Имя: Пароль:
1C
1С v8
Как провести программно документ в закрытом периоде?
,
0 Saari
 
31.01.23
10:46
В конфигурации 1С:УТ 10.3 есть документ "Поступление товаров и услуг", в табличной части которого есть строки с заполненной колонкой "Заказ" (документы "Внутренний заказ").
Дата документа "Поступление товаров и услуг" - 20.01.2023, дата документа "Внутренний заказ" - 14.09.2022.
При проведении документа "Поступление товаров и услуг" выполняется процедура, которая вносит некоторые изменения в документ "Внутренний заказ" из таб. части документа поступления.
У пользователя установлена дата запрета изменения данных - 31.12.2022.
И программа ругается - не может внести изменения в закрытом периоде. Что логично.

В процедуре внесения изменения в документ "Внутренний заказ" я написал:
ТекВЗОбъект.ОбменДанными.Загрузка = Истина;
ТекВЗОбъект.Записать(?(ТекВЗОбъект.Проведен, РежимЗаписиДокумента.Проведение, РежимЗаписиДокумента.Запись), );

Получаю сообщение об ошибке: "Действие не может выполняться в режиме загрузки данных"

Как сделать так, чтобы пользователь мог программно вносить изменения в документ и проводить его, находящийся в закрытом периоде?
1 Волшебник
 
модератор
31.01.23
10:51
Нужно временно установить привилегированный режим или провести от имени администратора
2 Волшебник
 
модератор
31.01.23
10:53
Ещё можно разделить даты запрета редактирования - для бухгалтерских проводок одна, для заказов другая
3 Saari
 
31.01.23
10:54
(1) (2) подскажите, пожалуйста, как это сделать?
4 OldCondom
 
31.01.23
10:58
ОтключитьПроверкуДатЗапрета
В текущем сеансе отключает и включает проверку дат запрета изменения и загрузки данных.
Требуется для реализации специальной логики работы и ускорения пакетной обработки данных
при записи объекта или набора записей, когда признак ОбменДанными.Загрузка не установлен.
Для использования требуются полные права или привилегированный режим.
Рекомендуется:
- массовой загрузке данных из файла (если данные не попадают в запрещенный период);
- массовой загрузке данных при обмене данными (если данные не попадают в запрещенный период);
- в случае, когда требуется отключить проверку дат запрета не для одного объекта,
   путем вставки свойства ПропуститьПроверкуЗапретаИзменения в ДополнительныеСвойства объекта,
   а для всех объектов, которые будут записываться в рамках записи этого объекта.
5 Saari
 
31.01.23
13:52
(1) Установил Привилегированный режим: УстановитьПривилегированныйРежим(Истина);
А он не устанавливается. Почему? УТ 10.3 обычные формы. База - клиент-сервер.
6 OldCondom
 
31.01.23
13:54
безопасный режим
7 Saari
 
31.01.23
13:56
(6) как его отключить  на время проведения?
8 Saari
 
31.01.23
14:07
(4) еще пробовал так:
ТекВЗОбъект.ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения", Истина);
не помогает...
9 Сергиус
 
31.01.23
14:32
(0)А спросить разрешения у старших?)
10 PLUT
 
31.01.23
14:37
(0) на копии отключить все запреты, под полными правами админа перепровести, сравнить документы и движения копии с продуктивной базой. много думать...

так то можно по отдельности и документы и регистры накоплерния и бюстгалтерии редактировать в закрытых периодах. нужно только ч0тко понимать - что именно и где изменить. даже в Журнале регистрации следов не останется :)

и эта, спроси благословления у старших, чтобы потом не было мучительно больно :)))
11 Saari
 
31.01.23
14:49
(9) (10) старшие дали задание отключить проверку. Тренируюсь на копии.
И все же... как отключить проверку на даты запрета при проведении?
12 OldCondom
 
31.01.23
14:55
(7) для начала выясни, что это. Через обработку пытаешься все провернуть?
13 Saari
 
31.01.23
14:57
(12) нет.
В модуле документа Поступление товаров сделал процедуру, в которой провожу другие документы (из закрытого периода) (все это  описал в (0)).
14 Saari
 
31.01.23
15:51
Сделал!
15 Saari
 
31.01.23
15:55
В модуле объекта документа Поступление товаров:
ТекВЗОбъект.ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения", Истина);
ТекВЗОбъект.Записать( );

В общем модуле "НастройкаПравДоступа":
в начале процедуры "ПередЗаписьюРегистраДатаЗапретаРедактированияПередЗаписью(Источник, Отказ, Замещение)" написал:
Если Источник.ДополнительныеСвойства.Свойство("ПропуститьПроверкуЗапретаИзменения") Тогда
  Возврат;
КонецЕсли;
в начале процедуры "ПроверкаПериодаДокумента(ДокументОбъект, Отказ, РежимЗаписи = Неопределено)" написал:
Если ДокументОбъект.ДополнительныеСвойства.Свойство("ПропуститьПроверкуЗапретаИзменения") Тогда
  Возврат;
КонецЕсли;

Работает.
Всем спасибо!
16 OldCondom
 
31.01.23
16:01
В общем модуле "НастройкаПравДоступа"
Это же БСПшный модуль, да?
17 Saari
 
31.01.23
16:06
(16) Я не выяснял, является ли этот модуль БСПшным.
Предполагаю, что в этом модуле находятся процедуры из подписок на события.
Модуль находится в конфигурации 1С:УТ 10.3.
18 OldCondom
 
31.01.23
16:08
(17) а зря. Потому как если БСПшый, то есть интерфейс взаимодействия(пример в (4)), а лезть туда с изменениями плохая идея. Но, дело ваше.