Запрет проведения документа "Корректировка записей регистров"

22.11.11

Администрирование - Информационная безопасность

В случае, когда административными мерами пресечь ненормальное использование документов, подобных "Корректировка записей регистров" нельзя, описанный финт позволит программисту/главбуху контролировать применение таких документов.

Как всем известно, во многих конфигурациях есть документы, позволяющие произвольным образом редактировать регистры. Например, в УПП - это "Корректировка записей регистров" и "ОперацияБух", в торговле тоже есть - но кажется, по другому называются.

Это мощный и нужный инструмент, и во многих ситуациях без него не обойтись. Однако же, доступ к ним почему-то даден всем, у кого есть роль "Пользователь" - тоесть всем!

И часто бывает, его применяют не по назначению, а по ситуации - и тогда перестают сходиться партии с оборотно-сальдовой, а у программиста добавляется головной боли.

Изложенное здесь решение - полумера для тех случаев, когда и документ применять надо, и совсем бесконтрольно оставить бухгалтерию нельзя.

Суть идеи такова: добавить к документу подписку на событие "Проведение" и в ней анализировать, кому можно ломать базу руками, а кому нельзя. Тогда бухгалтер создает документ, заполняет его и идет кланяться либо главбуху, либо программисту, либо другому ответственному человеку, который этот документ и проведет.

Однако - и это послужило причиной создания публикации - ситуация немного усложняется тем, что документ "Корректировка записей регистров" и "Операция" не проводятся в принципе! Они пишут регистры программно, не используя механизм проведения.

 

Это поведение можно перехитрить таким образом:

  1. при записи документа выключать (устанавливать в "Ложь" активность записей - тогда они будут присутствовать, но в отчетах не отразятся;
  2. одновременно устанавливать документу признак "Пометка удаления" в "Истина" - чтобы бухгалтерия видела, что документ у неё не проведен.

Если все-же необходимость остается, то схема действий следующая:

    1. Создаем подписку на событие "ПередЗаписью" и включаем туда нужные документы.
    2. в код процедуры-обработчика пишем следующее:

 

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

   
ЭтоНовыйДокумент = Источник.ЭтоНовый();

    Если
ЭтоНовыйДокумент Тогда
       
РанееУстановленнаяПометкаУдаления = Ложь;
    Иначе
       
Запрос = Новый Запрос();
       
Запрос.Текст ="
        |ВЫБРАТЬ
        |   0
        |ИЗ
        |   Документ."
+Источник.метаданные().Имя+" КАК Операция
        |
        |ГДЕ
        |   (Операция.Ссылка = &СсылкаНаОперацию) И
        |   (Операция.ПометкаУдаления = Ложь)"
;

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


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

       
Источник.ПометкаУдаления=Истина;
        Для каждого
Движение Из Источник.движения Цикл
               
Движение.УстановитьАктивность(Ложь);
        КонецЦикла;
    КонецЕсли;
КонецПроцедуры

Таким образом, "провести" документ сможет только пользователь, которому доступна основная роль (указанная в свойствах конфигурации). Также, только при наличии этой роли можно будет снять либо установить пометку удаления, в прочих случаях - она всегда будет установлена, а движения документа - неактивны.

См. также

Исправление в 1С:ЗУП/ЗКГУ ошибок по НДФЛ и взаиморасчетам с сотрудниками на начало расчетного года.

Корректировка данных Зарплата Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры бюджетного учреждения 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет НДФЛ Платные (руб)

Обработка исправляет технические ошибки по НДФЛ, взаиморасчетам с сотрудниками в 1С:ЗУП (1С:ЗКГУ) на начало года. Фактически все ошибки, которые проявляются в ведомостях на выплату, расчетных листках, при заполнении ведомостей на выплату и отчетах 6-НДФЛ и т.д. нужно начинать исправлять с начала расчетного года. Это позволит быть уверенными, что после завершения расчетов предыдущего года, начали работать с «чистого листа» без ошибочных остатков.

4800 руб.

06.10.2023    2325    29    15    

33

Тестирование и исправление ключей аналитики ERP, УТ11, КА

Корректировка данных Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Незаменимая обработка для сопровождения конфигураций: ERP, УТ, КА. Позволяет вычистить многие ошибки в ключах аналитики, в ключевых справочниках конфигурации.

3600 руб.

10.02.2017    106809    633    173    

676

Ускоренное проведение документов (x4), устранение ошибок 60/62 счетов и зачет авансов (Бухгалтерия 3.0)

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    27383    79    146    

59

Исправление ошибки закрытия месяца "Обнаружены ненулевые остатки по суммам при нулевом остатке по количеству в регистре себестоимости по организации". УТ 11.4,УТ 11.5, КА 2.4,КА 2.5, ERP 2.4, ERP 2.5, КА 2 Казахстан, Управление торговлей 3 для Казахстана

Закрытие периода Корректировка данных Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 11 Управленческий учет Платные (руб)

Закрытие месяца - важный процесс в современных конфигурациях, таких как УТ 11.4, УТ 11.5, КА 2.4, КА 2.5 ERP 2.4,ERP 2.5, КА 2 Казахстан, УТ 3 Казахстан регламентные операции влияют на расчет себестоимости, и ошибки в данном расчете не дают картины деятельности организации.

2400 руб.

27.10.2021    22322    299    35    

71

SALE! 20%

Заполнение документа "Корректировка регистров" произвольными данными

Закрытие периода Корректировка данных Платформа 1С v8.3 Система компоновки данных 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Управленческий учет Платные (руб)

Внешняя обработка, позволяющая произвольным образом заполнять документ "Корректировка регистров" Предназначена для использования в конфигурациях "Управление торговлей 11", "Управление небольшой фирмой", "ERP Управление предприятием", а также в других конфигурациях, в состав которых входит библиотека стандартных подсистем (БСП) версии 2.2+ и указанный выше документ.

2400 1920 руб.

13.07.2015    50169    171    29    

121
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Urv 54 22.11.11 23:39 Сейчас в теме
"устанавливать в "Ложь" активность записей - тогда они будут присутствовать, но в отчетах не отразятся."
Вы мало знакомы с конфигурацией УПП. И в отчетах отразятся и вызовет много проблем при расчете себестоимости. В типовых механизмах УПП не анализируется активность записей.
valery_1999; +1 Ответить
2. chmod660 417 23.11.11 01:26 Сейчас в теме
(1)
ну даже сперва поверил, и все-таки попробовал, перед тем, как напрасно махать языком, тоесть клавиатурой.
насколько я помню, активность записи регистра есть системное свойство, от конфигурации не зависящее.
создал "корректировку", в нем проводку и движение по партиям.
мы помним, что в этом документе предусмотрен механизм включения-выключения записей. с его помощью и проверим.
выключаю активность записи по хозрасчетному - пропадает из оборотно-сальдовой.
выключаю активность записи по партиямБух - пропадает из отчета "ведомость по партиям товаров на складах".

скриншоты в студию:
раз -активность включена

два - выключена

учите матчасть, коллега.
5. sa1m0nn 28 23.11.11 06:11 Сейчас в теме
(2)
В РАУЗе вылезает эта дрянь, столкнулись. Пока не плюснешь все записи в корректировке, ничерта не рассчитает. Свойство Активность работает только на виртуальных таблицах, в реальных по-хорошему нужно писать "| ГДЕ Активность", но в типовых нигде нет такого, а запросы строятся на комбинации реальных и виртуальных таблиц.
6. den_valley 235 23.11.11 07:44 Сейчас в теме
(2)

Поддержу товарищей, метод Ваш увы, ни для КА, ни для УПП не годится.
Можете цитировать сколько угодно синтаксис помощник и формировать отчеты, у разработчиков 1С иное мнение (записи на активность они так проверять и не научились в запросах к физическим таблицам).
Хотя решение - спору нет, не лишено изящества.

"Видишь суслика? И я не вижу....А он есть!"
3. chmod660 417 23.11.11 01:27 Сейчас в теме
(1)
вдогонку выдержка из синтаксис-помомщника
(поскольку я недостаточно хорошо знаю УПП, то очень часто помощником пользуюсь)

РегистрНакопленияЗапись.<Имя регистра накопления> (AccumulationRegisterRecord.<Имя регистра накопления>)
Активность (Active)
Использование:

Чтение и запись.
Описание:

Тип: Булево. Содержит признак, определяющий влияние записи на итоги регистра накопления.
Если значение Ложь, то запись не учитывается в итогах регистра.
4. Urv 54 23.11.11 04:50 Сейчас в теме
Партии товаров на складах это прошлый век. Сейчас РАУЗ.
Проблемы возникнут при расчете себестоимости. Там используются физические таблицы регистров накопления.
Так же ряд отчетов из монитора эффективности "произвольные отчеты" написаны на физических таблицах регистров. При этом нигде не выполняется фильтрация по активности записей.
Из отчетов например "Валовая прибыль". Есть и другие которые в том числе предназначены для анализа по традиционной методике "Партионный учет".
7. chmod660 417 23.11.11 11:05 Сейчас в теме
(4, 5, 6)
спасибо за информацию, не учел, что из физических и впрямь выбирается.
Персонально извиняюсь перед Urvза сарказм предыдущих сообщений.

Непонятно тогда, почему в таком случае не изменено поведение самих документов "Корректировка" - ведь при пометке их на удаление записи в регистрах остаются, и, как вы утверждаете, влияют на состояние прочей информации.
Если это так - то это существенный баг в конфигурации (-циях).

и неясно, что делать с публикацией - снести или оставить.
склоняюсь к мысли поместить в описание почерпнутую в комментариях информацию.
9. s44.yuritch 23.11.11 12:08 Сейчас в теме
(7) Это не то чтобы баг. Просто в той же УПП свойство Активность у регистров вообще не может быть выставлено в Ложь иначе как документом Корректировка записей регистра (и Бухгалтерская либо Международная операция). А вот проверки на Активность, кстати, там встречаются (но не везде, и не только в РАУЗ их нет. Как-то получил глюки с учетом отпусков после таких вот "удаленных" корректировок).
Видимо, разработчики исходили из того, что эти документы создаются людьми, понимающими, что они делают, и в помеченном на удаление виде поэтому не оказываются. Или просто не учли такую возможность платформы.
Если уж приходится помечать Корректировки и Операции на удаление, то нужно или сразу же делать удаление помеченных, или предварительно удалять из документа все строки.
8. alenakrr 23.11.11 11:44 Сейчас в теме
Статью лучше оставить. Полезная тема получилась.))

А блокировать "Операции" и "Корректировки записей" надо сразу - до создания, тем более, если вводится роль доступа. Можете расширить статью вариантами блокировки без корректировки основной программы, если найдутся такие.

А пользователи пусть идут и кланяются тем, кто знает как исправлять их ошибки - ситуация создания корректировок почти на 90% связана с неумением правильно пользоваться стандартным функционалом.
10. chmod660 417 23.11.11 12:09 Сейчас в теме
(8)
Можете расширить статью вариантами блокировки без корректировки основной программы, если найдутся такие.

так я будто бы так и сделал - объекты что на поддержке, не изменяются. Добавляем свои подписку и модуль.
совсем без правки кода запретить не представляется возможным - доступ дан в рамках роли "Пользователь", которая должна быть у всех (вроде в статье это писал)
13. Urv 54 24.11.11 17:31 Сейчас в теме
(10)

Открою вам еще один секрет :).
"Тогда бухгалтер создает документ, заполняет его и идет кланяться либо главбуху.." который видимо снимает пометку на удаление.

Понаблюдайте что происходит с полем "Период" регистра бухгалтерии или накопления, когда бухгалтер у своего созданного помеченного на удаление КЗР поменяет дату. А затем главбух снимет пометку на удаление. В УПП.
14. chmod660 417 24.11.11 18:48 Сейчас в теме
(13)
спасибо.
подтверждаю :(
если только снять пометку удаления - период остается старый (как был на момент создания документа)
если записать в форме - период меняется на дату документа корректировки.

я, конечно, знал что этот и подобные документы - опасная бритва, но чтобы она настолько без ручки не ожидал :(
11. Виктор1905 103 24.11.11 08:43 Сейчас в теме
Urv пишет:
Партии товаров на складах это прошлый век. Сейчас РАУЗ.

РАУЗ рассчитан на работу с людьми, не понимающими "заднее число" и отрицательные остатки в течение месяца. РАУЗ - есть попытка защиты программиста от дурака за счет лишения этого же дурака оперативной информации по управлению предприятием.
А вот ведение по партионке прописано во многих ГОСТах.
Пример из жизни. Выпускаем ежедневно одну-две партии каждого наименования пищевой продукции. Продукция передается со склада производства на склад готовой продукции. Неопытный рабочий в производстве при составлении перепутал ингридиент, предназначенный для другой продукции. Перед праздником запарка всегда. Хватились на следующий день. Часть той выпущенной партии оказалась отгруженной в магазины. Благодаря партионке, прозвонили в нужные магазины, схватили накладные и замену, разъехались по магазинам и изъяли почти всю партию. Честно сказать, мы знали что там такое, но технологи и директор заставили пробовать понемногу всех работников организации, что бы быть уверенными о изъятии именно каждой единицы продукции... Вначале не чувствуется, а через минут пять начинается...Так что сам и не поймешь, от чего сдох.
Раз год такие чудеса происходят у всех пищевиков - я езжу часто по командировкам, знаю о чем говорю.
Преже чем хвалить РАУЗ - подумай сначала (или опроси пользователей)!
12. Urv 54 24.11.11 17:05 Сейчас в теме
(11) Виктор1905,

формулировка "Партии товаров на складах" получилась из контекста "пропадает из отчета "ведомость по партиям товаров на складах"". В КА партионного учета уже нет. В УПП 2.0 полагаю его тоже не будет. Имеются ввиду суммовые показатели. В вашем случае речь о количественном учете. Учет по сериям при РАУЗ так же позволит проконтролировать движение конктретной партии выпущенного товара.
Полагаю мы не станем сейчас обсуждать преимущества и недостатки "традиционного учета" и "РА".
"Преже чем хвалить РАУЗ..." - Фраза "Партии товаров на складах это прошлый век" - констатация факта, не вижу похвалы.
Проблема помеченных на удаление КЗР проявляется именно при РАУЗ.
Виктор1905; +1 Ответить
15. Виктор1905 103 25.11.11 03:50 Сейчас в теме
Urv пишет:
В КА партионного учета уже нет. В УПП 2.0 полагаю его тоже не будет.

Я отстал от жизни (это про КА). Прийдется оценить возможность перехода к учету по сериям. Боюсь-будут огромные проблемы... Спасибо.Плюсанул.
16. tim_taler 69 10.01.12 07:43 Сейчас в теме
Да уж, к тем же воротам пришел и лбом уперся. В случае, если в модуле документа
в процедуре ПриЗаписи снимать активность записей регистров, то запись регистров вообще не происходит.
В итоге женщины(!) нашли практичный выход - учет в карантинную дату, т.е. документ корректировки забрасывается
в будущее, из которого в текущий учетный период перемещается только уполномоченным лицом.
Обычному пользователю документ доступен только в карантинной дате.
chmod660; +1 Ответить
17. chmod660 417 10.01.12 11:20 Сейчас в теме
(16) спасибо, надо подумать. пока ваш способ - насчет будущего - выглядит очень привлекательно.
Оставьте свое сообщение