1с 7 права проведение документа

Обновлено: 17.05.2024

Код - ничего особенного. Этот же код распроводит другие типы документов нормально, а вот с этими засада какая-то.

Док = СоздатьОбъект("Документ");
Док.НайтиДокумент(ОбъектДок);
Если Док.Выбран() = 1 Тогда
Док.СделатьНеПроведенным();
Док.СнятьПометкуУдаления();
КонецЕсли

На строку "Док.СделатьНеПроведенным();" попадает (смотрели по дебагеру), но ничего не происходит с доком.

ОбъектДок - откуда взяли?

Пример у вас в отдельной обработке?

Зачем эти 2 строки подряд:
Док.СделатьНеПроведенным();
Док.СнятьПометкуУдаления();
.

ОбъектДок - откуда взяли?

Пример у вас в отдельной обработке?

Зачем эти 2 строки подряд:
Док.СделатьНеПроведенным();
Док.СнятьПометкуУдаления();
.

И вобще - судя по вашему тексту глупый вопрос: А вы УВЕРЕНЫ что документ проведен?

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

Если Док.НайтиДокумент(ОбъектДок)= 1 Тогда // на случай, если ОбъектДок=""
Если Док.Проведен()=1 Тогда // на случай, если он действительно проведен и его надо распровести
Док.СделатьНеПроведенным();
КонецЕсли;
КонецЕсли;

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

Если Док.НайтиДокумент(ОбъектДок)= 1 Тогда // на случай, если ОбъектДок=""
Если Док.Проведен()=1 Тогда // на случай, если он действительно проведен и его надо распровести
Док.СделатьНеПроведенным();
КонецЕсли;
КонецЕсли;

Проблему решил? Ну, и забей.
Кстати, судя по
>> ОбъектДок - достается из реквизита справочника,
запросто может идти речь о свинтопрульном аппарате и причина сабжа быть именно в этом .

В чем конкретно мой код глупый?
Вы приводите свой код:
"Если Док.НайтиДокумент(ОбъектДок)= 1 Тогда // на случай, если ОбъектДок=""",
который делает тоже самое что и мой. Только в моем, на случай, если как вы пишете "ОбъектДок=""", стоит проверка "Если Док.Выбран() =1 Тогда".

Вот посмотрел специально в описании метода НайтиДокумент стоит пример:

Док = СоздатьОбъект("Документ.НаклПрих");
// позиционируем созданный объект на заданном документе
Док.НайтиДокумент(Докум);
Если Док.Выбран() > 0 Тогда
// если документ найден, то удалим его
Док.Удалить();
Иначе
Предупреждение ("Неверно задан документ!");
КонецЕсли;

В этом примере как и у меня использована конструкция:

Док.НайтиДокумент(Докум);
Если Док.Выбран() > 0 Тогда

Получается по вашей логике он тоже глупый?

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

Если Док.НайтиДокумент(ОбъектДок)= 1 Тогда // на случай, если ОбъектДок=""
Если Док.Проведен()=1 Тогда // на случай, если он действительно проведен и его надо распровести
Док.СделатьНеПроведенным();
КонецЕсли;
КонецЕсли;

Проблему решил? Ну, и забей.
Кстати, судя по
>> ОбъектДок - достается из реквизита справочника,
запросто может идти речь о свинтопрульном аппарате и причина сабжа быть именно в этом .

В чем конкретно мой код глупый?
Вы приводите свой код:
"Если Док.НайтиДокумент(ОбъектДок)= 1 Тогда // на случай, если ОбъектДок=""",
который делает тоже самое что и мой. Только в моем, на случай, если как вы пишете "ОбъектДок=""", стоит проверка "Если Док.Выбран() =1 Тогда".

Вот посмотрел специально в описании метода НайтиДокумент стоит пример:

Док = СоздатьОбъект("Документ.НаклПрих");
// позиционируем созданный объект на заданном документе
Док.НайтиДокумент(Докум);
Если Док.Выбран() > 0 Тогда
// если документ найден, то удалим его
Док.Удалить();
Иначе
Предупреждение ("Неверно задан документ!");
КонецЕсли;

В этом примере как и у меня использована конструкция:

Док.НайтиДокумент(Докум);
Если Док.Выбран() > 0 Тогда

Получается по вашей логике он тоже глупый?

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

Глупость имелось в виду, конечно, сочетание

Конечно можно и
Док.НайтиДокумент(Докум);
Если Док.Выбран() > 0 Тогда
Можно и проверку на пустое значение сделать, просто мой вариант делает это проще и за один шаг.
Примеры в книжке - это не набор полезных приемов, а просто пример кода. Конечно, рабочего кода.

В идеале - чтобы вся значимая часть алгоритма обработки находилась между

НачатьТранзакцию()
попытка
//
// выполняется вся обработка
//
ЗафиксироватьТранзакцию()
исключение
сообщить(описаниеОшибки());
отменитьТранзакцию();
конецПопытки;

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

. и разбираться надо с транзакциями, а не с отдельными "несрабатывающими" методами.
.

Вопрос о настройке прав доступа в программах 1С возникает в двух случаях:

  • руководству компании требуется ограничить пользователя в правах;
  • руководству необходимо расширить права для пользователя.

Права пользователя в 1С

Скажем несколько слов о правах пользователей. Что означает ограничение прав доступа? В разрезе программных продуктов 1С, это запрет на совершение действий с какими-либо файлами и объектами. Например, можно закрыть пользователю доступ для изменения документа, копирования и даже просмотра. Соответственно, расширить права доступа означает дать разрешение на просмотр, изменение документа, копирование, сохранение и т.д.



Пошаговая настройка прав доступа в 1С

Шаг №1. Настройка пользователей и прав


Если Вы делаете настройку прав своей 1С впервые, рекомендуем оставить бесплатную заявку в поддержку по 1С через сервис Бит.Личный кабинет. Вам перезвонит консультант по 1С и поможет.

Шаг № 2. Пользователи




Важно! Вы сможете управлять данными списками и вносить изменения только в том случае, если сами имеете права администратора.


Шаг № 3. Роли для группы

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


Что такое роль? Это метаданные. От конфигурации вашей 1С будет зависеть, сколько их и какие они. Обычно их довольно много, поэтому важно не запутаться. Ведь вы можете назначить только одну лишнюю роль, а пользователю уже откроется доступ ко многим действиям.


Роли могут быть базовыми, которые позволяют только просматривать документ. Могут быть специальными, когда открывается доступ для редактирования.

Шаг № 4. Профиль групп доступа



Шаг № 5. Ограничение на уровне записей


Для чего необходима эта функция? Это дополнительные условия, которые могут поставить ограничения на конкретный объект в базе данных. Очень удобно, если нужно закрыть доступ к файлу отдельного пользователя или группы. При этом программа предупредит, что данные настройки могут замедлить работу системы.

Почему? В этом случае система 1С каждый раз будет запрашивать информацию о том, разрешено ли пользователю просматривать какой-то файл.

Вы также можете перемещать пользователя по группам в 1С, чтобы изменить права доступа.


Шаг № 6. Новые роли

Чтобы не путаться в бесконечном разнообразии ролей, рекомендуем создать собственные роли. Для этого зайдите в дерево метаданных.


Разграничить права в новой роли можно путем выставления необходимых флажков напротив нужного вам права.


Задать ограничение можно в правом нижнем углу. Здесь работает механизм настройки прав доступа по отношению к конкретным данным.

К примеру, вы можете ограничить изменение документа только по одной организации.

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


Примечание: для создания новых ролей в режиме Конфигуратора необходимо включить возможность изменения конфигурации.

Другие настройки 1С

Итак, вы настроили все права доступа в 1С, какие требовалось. Что же еще предлагает система?

Обратите внимание на следующие разделы:


Их названия говорят сами за себя. Эти настройки относятся к внешнему виду отчетов программы.



Разработчики 1С позаботились о том, чтобы предоставить пользователям широкие возможности для администрирования прав доступа. Инструменты могут показаться непростыми. Но это только сначала. Используйте наши рекомендации и инструкцию, и тогда в вашей компании не возникнет трудностей с настройкой прав доступа пользователей к тем или иным объектам.

Обратите внимание на то, чтобы у вас был действующий договор 1С:ИТС. Только в этом случае вы сможете пользоваться самыми актуальными данными и документами в системе 1С. Позвоните нашим специалистам и узнайте о сроке вашего договора 1С:ИТС.



Подсистема прав, позволяющая в реальном времени (без назначения ролей, перезапуска 1с, изменения конфигурации) менять права пользователя: Просмотр, Создание, Изменение, Проведение, Отмена проведения, Изменение проведенных, Неоперативное проведение. Существенно упрощает управление правами в базах с большим количеством пользователей. Версия платформы 8.3.12.1685.

Для предоставления доступов в 1с используется механизм ролей. Минус его - в сложности администрирования.

Есть два подхода работы с ролями:

1. Создаем роль под должность/функционал и указываем там права на все необходимые документы, справочники и т.п.

Минус данного подхода в том, что если требуется изменения какого нибудь права на один объект из данного функционала, то придется обновлять конфигурацию. Это долго. Порой только на следующий день, а права нужны вот прямо сейчас.

2. Создаем на каждый документ/справочник по несколько ролей типа: ЗаказСоздание, ЗаказПроведение, ЗаказПометкаУдаления, ЗаказЗапись и т.п.

Когда в базе сотни документов список будет просто огромный и администратору нужно много времени на настройку прав.

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

Для использования подсистемы должна быть одна роль для всех пользователей, которая разрешает все (кроме непосредственного удаления). Подсистема ставит запреты и не может дать разрешение если этого разрешения нет в роли.

По умолчанию, если права не назначены, для всех стоит запрет на все. Это поведение можно изменить в коде.

Документ установки прав на "пустого" пользователя применяет эти права всем пользователям по умолчанию.

Права назначаются с определенной даты, следовательно можно сделать так, что например три дня у пользователя будет право, а потом заберется.

Право определяется на основании "логического максимального" на текущий момент. Например на должность стоит запрет на создание заказа, а на пользователя разрешение. В итоге будет разрешение.

Специальные предложения

Electronic Software Distribution

Интеграция 1С с системой Меркурий

Алкогольная декларация

Готовые переносы данных

54-ФЗ

Управление проектом на Инфостарте

Траектория обучения 1С-разработчика

Я так понимаю у всех админские права, которые режутся этим документом?
Затем кодом в каждом объекте проверяются права, что плохо скажется на производительности.

Минус данного подхода в том, что если требуется изменения какого нибудь права на один объект из данного функционала, то придется обновлять конфигурацию. Это долго. Порой только на следующий день, а права нужны вот прямо сейчас.


А через Расширения можно до окончания рабочего дня добавить права пользователю,
а на следующий день их отключить т.к. необходимая Роль создана?

(4) Можно. Но нужно много ролей и их сложно администрировать.
Например одному пользователю можно проводить РТУ, другому нельзя, третьему нельзя их создавать но можно смотреть, четвертому можно отменять проведен.
Нужно 4 роли. Таких документов например 100. Получаем 400 ролей. Далее месяцами создаем 150 профилей в каждый подбирая из списка по 400 ролей.
Мы пробывали так, у админов глаза на лоб лезли от необходимости постоянно копаться в списке из 400 строчек.

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

(6) Не для этого. У нас есть общая роль, которая у всех и там автоматически встают права на новые объекты.

Используем похожий механизм: механизм "Администрирование прав объектов" в типовой конфигурации 1С:Университет (не могу точно сказать, является ли это механизмом БСП или разработчики сами его придумали). Там у них одна роль Пользователь, которой разрешено почти всё (но ниже, чем полные права). Создавать, а потом переделывать при каждом обновлении свои роли оказалось неудобно. Механизм "Администрирование прав объектов" также позволяет перенастраивать доступ "на лету" (можно сразу на группу пользователей).
Извращение, конечно, еще то, но конкретно в данной конфигурации оказалось удобно :)
Пример настройки прав:

мы когда-то экспериментировали: пробовали программно создавать роли на чтение и запись каждого объекта. И потом обработкой раздавать пользователям. Дело было в УПП

Кончилось тем, что УПП запуститься не смогла - платформа падала

(11) Для разных конфигураций свои особенности.
В обмен через сравнение объединение переносим все объекты (кроме справочников).
Для роли "все права" ставим разрешение на все объекты конфигурации и добавляем эту роль всем пользователям.

Находим процедуру, которая вызывается из всех форм и вставляем в нее вызов процедуры из подсистемы прав. Для УТ 11.4 можно например в УправлениеСвойствамиКлиент:

Если в конфигурации нет профилей или они используются по другому, то внести изменения ИТК_ДоступКОбъектамСервер.СтруктураДоступа. (например просто удалить часть кода где используется профиль пользователя )

при изменении существующей роли в конфигурации можно обновляться динамически.

представленные механизмы и скрины это технологии прав эдак до 2015.
современные методы ограничения прав вполне логичны и не глаза на лоб лучше выкатывать,
а грамотно работать с профилями.

сейчас не вижу причин навешивать на типовые профили и группы доступа своего троянского коня.
не удивлюсь, если если из этого коня полезут бокопоры.

(12) По моему, Вы совершенно не разобрались в сути вопроса и в причинах для чего это было сделано.
Пример - у вас есть документ, на который надо одному пользователю дать доступ только для просмотра, другому для создания только новых документов, но не без права изменения записанных, третьему право редактирования, но без права создания новых документов. четвертому - полный доступ, а пятому полный доступ до пятницы. При этом в типовой есть только роли "только чтение" и "полный доступ" на этот документ, которые, при этом еще предоставляют такой же доступ еще на пару видов документов из этой же подсистемы.
И вот давайте, теперь, расскажите, как Вы будете "грамотно" настраивать доступ на этот один только документ с помощью профилей не создавая 4-5 новых ролей?

(12) Считаю, что динамически обновляться можно только в экстренных случаях. При каждом динамическом обновлении есть ряд проблем:
- У пользователей на "клиентах" закешированна конфигурация. После динамического обновления нужно удалить кеш конфигурации у пользователя. Допустим имеем 7 терминальных серверов и 500 пользователей. Получаем 3500 потенциальных кешей у пользователей (на каждого по 7) которые нужно очистить. Это займет определенное время. Время - деньги.
- Большая вероятность, что после динамического обновления перестанет работать обмен РИБ (относительно часто бывает и на больших и на маленьких базах). А обмен например должен ходить каждые 10-15 минут иначе проблемы. И придется выкидывать всех из перефирийки, накатывать туда конфигурацию. Это время, притом простой работы пользователей. Потеря денег.
- Небольшая вероятность того, что база просто сломается и перестанет запускаться. И тогда нужно работать с таблицами config и configsave и т.п. Это время и простой работы пользователей. Потеря денег.

Далее. Правами занимаются не программисты, а "администраторы 1с" (тех поддержка). Хотя бы потому, что это экономически не выгодно привлекать для этой работы программиста. Стоимость часа работы программиста и часа работы рядового "администратора 1с" различается порой в разы. А "администраторы 1с" - это просто продвинутые пользователи, которые не лезут в конфигуратор (да им и не дадут).

Следовательно для уменьшения затрат на администрирование прав нужна простая система, позволяющая не программисту легко и быстро (за 1-2 минуты) дать/забрать необходимые права.

Замерьте сколько времени вы будете создавать 200 профилей с помощью штатной системы прав и сколько с помощью предложенной. Думаю разница будет в несколько десятков тысяч рублей не в пользу штатной.

Относительно самой системы прав.

Часто бывают следующие задачи: срочно дать право на проведение документа одному сотруднику (при этом у других сотрудников той же должности и отдела права быть не должно) на 2 дня, потом убрать право. По штатной системе нужно ставить напоминалку в календарь "забрать права" и даже с напоминалкой постараться не забыть. А еще потратить время (изменить профиль, роль и т.д.). В предложенной подсистеме можно или сразу создать документ на необходимую дату, который отключит права. Или использовать поле "действует до" в документе и потом регламентным заданием по этому полю пометить документ на удаление в нужный день.

Или например вопрос: сотрудник пол года назад провел документ, компания понесла из-за этого убытки. Обнаружили только сейчас. Смотрят утвержденную матрицу прав на этого сотрудника - по ней не должно быть прав. Косяк 1сников, возмещайте ). Но у вас же делаются ежедневные бэкапы со сроком хранения пара лет? (у нас делаются) Мы можем поднять базу на нужный день и увидеть что именно в этот день у сотрудника были права. Поднимаем письма и видим, что права давались по указанию начальника и т.п. Т.е. в 1с проблем нет.
В предложенной подсистеме права фиксируются на дату документом. И поэтому всегда известно какие права были у сотрудника в конкретный момент времени (учитываем еще, что ведется версионирование документов).

Ну и хотелось бы увидеть от вас технологии и скрины 2019 года, которые решает вышеперечисленные проблемы )


Редко, когда в организации все пользователи должны иметь одинаковый доступ к документам. В первую очередь, это, конечно, вопрос информационной безопасности, но и не последнюю роль играет этический момент. Программа 1С Документооборот позволяет гибко настроить права доступа к документам, чтобы избежать утечки информации и уберечь информацию от любопытных сотрудников. Сегодня мы подробно пошагово расскажем про настройку прав и все имеющиеся нюансы, которые стоит учесть.

Инструкция по настройке прав в 1С Документооборот

Как настроить права доступа в 1С Документооборот?

Как настроить права доступа в 1С Документооборот?

Как настроить права доступа в 1С Документооборот?

Как настроить права доступа в 1С Документооборот?

Как настроить права доступа в 1С Документооборот?

В данном окне мы видим выбранные разрезы доступа. Открыв нужный разрез, можно установить права пользователей на чтение, редактирование или регистрацию документов.

Как настроить права доступа в 1С Документооборот?

Специальные разрешения удобно использовать в тех случаях, когда пользователь относится к некоторой рабочей группе, для которой уже установлены уровни доступа, но конкретно ему надо либо добавить прав, либо наоборот доступ закрыть (или разделить один и тот же доступ по организациям и тд). Например, речь может идти об отделе и его руководителе или специалистом, которому необходим более полный доступ к документам. При добавлении специального разрешения, общие разрешения по выбранному предмету для пользователя не будут действовать.

Как настроить права доступа в 1С Документооборот?

Как настроить права доступа в 1С Документооборот?

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

Как настроить права доступа в 1С Документооборот?

Как настроить права доступа в 1С Документооборот?

Как настроить права доступа в 1С Документооборот?

Как настроить права доступа в 1С Документооборот?

Как настроить права доступа в 1С Документооборот?

Рабочие группы предназначены для объединения пользователей в группы с одинаковыми правами. Каждому из участников рабочей группы будет проставляться та политика доступа и те полномочия, которые выбраны для данной группы (для этого нажимаем «Полномочия и разрешения, и выбираем из ранее настроенных).

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

Как настроить права доступа в 1С Документооборот?

Как настроить права доступа в 1С Документооборот?

Как настроить права доступа в 1С Документооборот?

Дважды щелкнув на нужную папку, открываем форму изменения папки.

Как настроить права доступа в 1С Документооборот?

Как настроить права доступа в 1С Документооборот?

Как настроить права доступа в 1С Документооборот?

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

Как настроить права доступа в 1С Документооборот?

Распределяйте права с умом

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

Если вы не можете себе позволить отрываться от остальных бизнес-задач и не хотите брать отдельного специалиста в штат (что, с учетом зарплаты, организации рабочего места и выплаты больничных/отпускных может быть нецелесообразным) имеет смысл обратиться за услугами по удаленному обслуживанию 1С.

С одной стороны, вам не придется переплачивать, оформляя человека в штат, а с другой вы получите не только оперативные консультации по любому вопросу, но и настройку, доработку, а также многие другие услуги, которые позволят сделать документооборот более эффективным и безопасным.

Читайте также: