Регистр правил в системе прав доступа

Публикация № 115906

Разработка - Практика программирования

Рассмотрены вопросы реализации системы прав доступа с использованием регистров правил

 

 

Регистр правил в системе прав доступа

Введение

Система контроля прав доступа должна позволять:

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

Недостатки типовой системы правил 1С:

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

 

Предлагается контролировать доступ с помощью технологии регистров правил.

Формализация контекста операции

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

Например, в распределенной базе контекст может выглядеть, как объект со следующими свойствами:

Свойство

Описание

Пример значения

Роль

Роль пользователя

Администратор

Объект

Над каким объектом производится операция

Приходная накладная № 11

Право

Какая операция запрашивается

Провести

База

База, в которой производится операция

ЦБ

Пользователь

Имя пользователя

Иванов

В зависимости от контекста набор свойств может быть другим. Некоторые свойства могут быть у всех операций, некоторые – только у специфичных операций. Например, свойство «Клиент» появляется только у операций, связанных с обслуживанием клиентов.

 

Таким образом, любой запрос на разрешение операции можно записать в виде контекста операции – объекта с набором свойств.

Формализация правил кодом

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

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

 

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

Если (Конт.Фирма = «СтройВсе»)И Пользователь<>«Главбух» Тогда

Сообщить(«По фирме СтройВсе работать может только главбух»);

Возврат Ложь;

ИначеЕсли (Конт.Клиент = «ЧП Федоров»)И Пользователь =«Сидоров» Тогда

Возврат Истина;

….

При подобной реализации важно следить за порядком условий. Если в нашем примере мы переставим местам правила, то пользователь Сидоров сможет работать с документом по клиенту «ЧП Федоров», даже если документ выписан по фирме «СтройВсе».

При всей простоте такой реализации она обладает двумя недостатками:

  1. Любое изменение правил приходится изменять в коде программы.
  2. Нужно очень внимательно следить за порядком применения правил.

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

Поэтому нужен некоторый другой способ сопоставления шаблонов с контекстом.

Формализация правил шаблонами

Другой способ – описание шаблонов контекста.

В простейшем случае шаблон контекста – это набор значений свойств контекста и свойство Доступ, определяющее разрешен или запрещен доступ по данному шаблону.

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

 

Фирма

Клиент

Пользователь

Доступ

СтройВсе

 

ГлавБух

1

 

ЧП Федоров

Сидоров

0

В данном примере коллизий (ситуаций, когда применимо несколько шаблонов) нет. Сидоров никогда не сможет работать с фирмой «СтройВсе», а ГлавБух всегда получит доступ, независимо от клиента операции.

 

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

 

Осталось только решить два вопроса, которые мы и рассмотрим далее:

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

Обобщение ситуаций

Рассмотрим, как можно обобщить шаблоны контекстов. В принципе этих обобщений достаточно, чтобы достаточно обобщенно описывать права доступа. Для всех обобщений можно указать условие – НЕ, т.е. противоположное условие.

Указание диапазона

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

 

Дата документа

Дней назад от точки актуальности

Примечание

> «01.01.2004»

 

Действует для документов, выписанных после 1 января 2004 года

 

>5

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

Обобщение списком

Можно указать некоторый список значений.

Роль

ВидДокумента

Примечание

 

Расходная, Приходная

Действует для расходных и приходных накладных.

Ученик, Менеджер

 

Действует для учеников и менеджеров.

Обобщение группой

Можно указать некоторую группу значений вместо отдельного значения, например:

 

Роль

Товар

Примечание

Менеджер

 

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

 

Алкоголь

Действует для всех товаров, причисленных к алкоголю.

Обобщение синонимом

Если имеется информация, что значение Б является синонимом значения А, то все правила, относящиеся к А, действуют и по отношению к Б.

Пусть, например, определены синонимы Иванов=Петров, тогда:

Пользователь

Примечание

Иванов

Действует для пользователя Иванова и для пользователя Петрова.

Разрешение конфликтов

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

Конфликты разной детализации

Такие конфликты разрешаются очень просто.

Ясно, что если Иванову запрещен доступ, а Иванову при работе с фирмой «СтройВсе» доступ разрешен, то в случае если фирма «СтройВсе» и клиент Иванов, срабатывает более детальное правило, подходящее к ситуации.

Конфликты разной общности

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

Например, всем менеджерам запрещено вводить новые товары, а Иванову, который тоже является менеджером, разрешено.

В таблице приведены частные и общие ситуации для различных способов обобщения.

Вид обобщения

Частное правило

Общее правило

Диапазон

Значение в контексте равно значению правила.

Значение в контексте входит в диапазон, указанный в правиле.

Группа

Значение в контексте равно значению правила.

Значение в контексте входит в группу, указанную в правиле.

Синоним

Значение в контексте равно значению правила.

Значение в контексте является синонимом значения, указанного в правиле.

Конфликты одинаковой общности

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

Например, пользователю разрешен доступ по фирме «СтройВсе», но запрещен доступ по клиенту «Иванов». Как поступить, когда пользователь работает с документом выписанным по фирме «СтройВсе» и клиентом «Иванов»?

Можно, в принципе ввести приоритеты и обрабатывать правила в порядке приоритетов (в принципе такую возможность нужно обеспечить в системе контроля прав, добавив в правила поле Приоритет – максимальный приоритет 0, затем 1 и т.д.).

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

Таким образом, если есть хоть один запрет в правилах с одинаковым приоритетом, то доступ запрещен.

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

Сложные конфликты

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

Пусть например есть правило, которое запрещает всем гостям печатать документы, но разрешает печатать документы менеджерам. Если пользователь входит в группу гостей и менеджеров – то разрешить ему доступ или нет? Следуя пессимистичной политике, указанной в предыдущем пункте, доступ надо запретить.

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

Решение конфликтов с помощью приоритетов

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

Некоторые полезные методы реализации

Роли

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

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

Действия

В коде, где требуется контроль действий удобно вызывать проверку допустимости действия, указав нужное действие в свойстве «Действие», например «Проведение», «Запись», «Открытие», «Удаление», «ПометкаНаУдаление», «ОтменаПроведения» и т.п.

Можно указать группы действий, например «ДействияМенеджера» и назначать правила сразу на всю группу действий.

Объекты операции

Конечно, можно в справочнике доступа завести свойство «Объект» и указывать права доступа непосредственно для каждого объекта. Но чаще всего нас интересует вид объекта. Поэтому имеет смысл описывать контекст свойством ВидОбъекта.

Также некоторые виды документов лучше сгруппировать, например, создав пересекающиеся или непересекающиеся группы документов «Производственные», «Торговые», «Денежные», «Взаиморасчеты» и т.п.

Предопределенные значения

Для разрешения/запрещения доступа по конкретным фирмам можно в справочнике указывать непосредственное значение фирмы, сделав возможность указания как отдельной фирмы, так и логической (а не 1Сной) группы фирм.

То же самое касается складов и других справочников.

Прочее

Не обязательно вычислять все свойства контекста, достаточно вычислять их по запросу – если для правила требуется свойство, оно вычисляется, иначе нет. Ведь правило подходит, только если подходят все параметры правила, а если какое-то не подходит, остальные свойства правила можно не проверять.

Заключение

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

 

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

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

Буду благодарен за любую критику.

Пример реализации

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

Есть следующие роли Кладовщик, Менеджер, Бухгалтер, Директор, Администратор, Бэкап, Стажер.

Менеджер выписывает расходные накладные, Кладовщик отпускает по ним товар (проводит расходные накладные), Бухгалтер смотрит торговые документы и делает проводки, Директор просматривает все документы, но ничего ввести не может, Бэкап делает выгрузки-загрузки данных, работая только в конфигураторе, Администратор может все.

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

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

Стажер входит в группу ролей Менеджер

 

Пользователь

Роль

Действие

ВидОбъекта

Скидка

Товары

Дней от ТА

Доступ

 

Стажер

Правка

Расходная

 

Алкоголь

 

0

 

Стажер

Правка

Расходная

>1000

 

 

0

 

Стажер

Правка

Расходная

 

 

>0

0

 

Менеджер, Стажер

Правка

Расходная

 

 

 

1

 

Менеджер, Стажер

Правка

Расходная

 

 

<7

1

 

Менеджер

Проведение

Расходная

 

 

 

0

 

Кладовщик

Проведение

Расходная

 

 

 

0

 

Кладовщик, Менеджер, Стажер

Просмотр

Торговые документы

 

 

 

1

 

Все пользователи

Выбор значения, просмотр

Номенклатура, Контрагенты

 

 

 

1

 

Бэкап

Работа в предприятии

 

 

 

 

0

Иванов

 

Работа в предприятии

 

 

 

 

0

 

Бухгалтер

Просмотр

Торговые документы

 

 

 

1

 

Менеджер, Бухгалтер

Любая правка

Номенклатура, Контрагенты

 

 

 

1

 

Бухгалтер

Любая правка и проведение

Бух документы

 

 

 

1

 

Администратор

 

 

 

 

 

1

 

Директор

Просмотр

 

 

 

 

1

 

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

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

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

Понятно, что редактировать этот справочник (регистр сведений) можно как вручную, так и приказами (распоряжениями).

Например, первый начальный приказ описывает основные правила доступа. Следующий приказ ограничивает какие-либо права и т.д.

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

В 7-ке доступ можно сделать периодическим реквизитом, назначаемым документом, в 8-ке лучше сделать регистр сведений.

Когда в системе более 10 пользователей, то все преимущества такой системы перед морально устаревшей системой прав доступа в 7-ке и не очень удобной системой ролей.

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. noprogrammer 205 07.02.12 00:35 Сейчас в теме
Если уж выкладывать описание\концепцию регистров правил - то выкладывать авторские статьи а не плагиат или в крайнем случае дать ссылки на оригинальные статьи и автора регистров правил.
3. fixin 4038 07.02.12 08:25 Сейчас в теме
(1) может быть еще и на регистры накопления ссылки давать копирайтные? ЧТо за копирастия? Регистр правил - устоявшийся термин. Кому надо, ссылки найдут. И это не плагиат, а приложение регистра правил к правам доступа. Насколько я помню, в начальной статье их использовали для склонения...
6. noprogrammer 205 07.02.12 08:39 Сейчас в теме
(3) Это именно плагиат, в начальной статье было и склонение и доступ.
7. fixin 4038 07.02.12 10:42 Сейчас в теме
(6) да ты че, ну ка процитируй куски текста, которые я оттуда сплагиатировал. Еще раз - алгоритмы не защищаются патентами и это благо!
(5) у тебя своя технология, у меня своя. Я взял название "Регистры правил", чтобы придерживаться принятой в отрасли технологии. Если почитаешь статью, увидишь, что подход и реализация разные. Вот именно что "реализовано", забыто и похоронено. Для популяризации этой интересной темы я и написал эту статью, хотя она тоже старая. ;-) Но у нас тут не закрытый клуб, если есть что сказать про регистры правил - пиши на инфостарте. Или я буду первым (надеюсь не последним) автором на эту тему
(6) а склонение тут каким боком? Я в склонении регистр правил не использую, дядя...
2. rsu5 07.02.12 04:50 Сейчас в теме
честно говоря это не ново.. по крайней мере уже года как 4 данная концепция реализована в 7.7
8. Necytij 12.02.12 15:46 Сейчас в теме
Согласен что не ново, однако в типовых ничего такого в любом случае нет.
Существуют новички, которым это может быть интересно; Хватит хаять так статьи, если вас таких даже 500 на инфостарте, кто это уже давно реализовал, то тут еще сидит 1000 которая об этом еще только задумывается...
9. ander_ 13.02.12 08:37 Сейчас в теме
Давно хочу таку штуку. Спасибо автору, что лишний раз все разжевал. Может у кого уже есть наработки, в виде классов для 77 или подсистем для 8.Х?
10. fixin 4038 13.02.12 10:32 Сейчас в теме
11. noprogrammer 205 13.02.12 21:13 Сейчас в теме
(9) вводим в поисковике (гугл,яндекс и т.д.) "регистры правил" и получаем ссылки на реализацию и в 7ке и в 8ке.
12. fixin 4038 13.02.12 21:21 Сейчас в теме
(11) не забываем приготовить баблос для подсистемы "Регистры правил", она коммерческая.
Оставьте свое сообщение

См. также

Звуковое управление в 1С 8.3 Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

В данной статье описано создание библиотеки для звукового управления (выполнение команд голосом) для платформы 1С 8.3. Задача была поставлена так, чтобы модуль функционировал непосредственно на клиенте 1С, осуществляя управление формами, и взаимодействовал с интерфейсом.

16.03.2021    2656    velemir    28    

Полезные примеры СКД, ч.1

Практика программирования v8::СКД Бесплатно (free)

Подборка видео по решению различных задач в отчетах на СКД.

30.03.2021    4747    Neti    18    

Обзор полезных методов БСП 3.1.4

Практика программирования БСП (Библиотека стандартных подсистем) v8 1cv8.cf Бесплатно (free)

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

25.03.2021    10901    rayastar    45    

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

Практика программирования Методология управления разработкой Бесплатно (free)

Учебный курс по теории и практике программирования. Бесплатно. В виде структурированного текста. Статья 4. Эта статья посвящена причинам возникновения проблем с качеством кода и методикам их преодоления.

22.03.2021    844    Артано    5    

Serverless (Faas) в 1С. Создание и вызов Yandex Cloud Functions Промо

Универсальные функции Практика программирования v8 Бесплатно (free)

"Я не могу просто взять и скопировать код с гитхаба", "у нас 1С микросервисами окружена", "возможностей мало" - частые фразы 1С разработчиков. которым не хватает возможностей платформы в современном мире. Faas, конечно, история не новая, но нас сдерживало 152ФЗ и задержки по пингам. Для того, чтобы действительно использовать в 1С код, к примеру, на Python, надо было приложить усилия. Теперь всё намного проще - берём и используем.

28.12.2020    5107    comol    27    

Telegram бот на PHP

Практика программирования Бесплатно (free)

Сделаем простого Telegram бота на PHP.

01.03.2021    2463    John_d    8    

«Варп-двигатель» для «среза последних»

Практика программирования Бесплатно (free)

Решение, позволяющее получить данные, аналогичные "срезу последних" на два порядка быстрее.

10.08.2020    3366    hobi    47    

Не спеша, эффективно и правильно – путь разработки. Часть 3. Практика

Практика программирования Бесплатно (free)

Черновой вариант книги Никиты Зайцева, a.k.a.WildHare. Разработкой на платформе 1С автор занимается с 1996-го года, специализация — большие и по-хорошему страшные системы. Квалификация “Эксперт”, несколько успешных проектов класса “сверхтяжелая”. Успешные проекты ЦКТП. Четыре года работал в самой “1С”, из них два с половиной архитектором и ведущим разработчиком облачной Технологии 1cFresh. Ну — и так далее. Не хвастовства ради, а понимания для. Текст написан не фантазером-теоретиком, а экспертом, у которого за плечами почти двадцать три года инженерной практики на больших проектах.

29.06.2020    11303    WildHare    33    

Использование программных перечислений, ч.1: строковые константы Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

Часто ли у вас возникает необходимость в коде выполнять сравнение на строку?

10.12.2016    38853    unichkin    74    

Не спеша, эффективно и правильно – путь разработки. Часть 2. Теория

Практика программирования Бесплатно (free)

Черновой вариант книги Никиты Зайцева, a.k.a.WildHare. Разработкой на платформе 1С автор занимается с 1996-го года, специализация — большие и по-хорошему страшные системы. Квалификация “Эксперт”, несколько успешных проектов класса “сверхтяжелая”. Успешные проекты ЦКТП. Четыре года работал в самой “1С”, из них два с половиной архитектором и ведущим разработчиком облачной Технологии 1cFresh. Ну — и так далее. Не хвастовства ради, а понимания для. Текст написан не фантазером-теоретиком, а экспертом, у которого за плечами почти двадцать три года инженерной практики на больших проектах.

22.06.2020    11637    WildHare    23    

Не спеша, эффективно и правильно – путь разработки. Часть 1. Парадигма

Практика программирования Бесплатно (free)

Черновой вариант книги Никиты Зайцева, a.k.a.WildHare. Разработкой на платформе 1С автор занимается с 1996-го года, специализация — большие и по-хорошему страшные системы. Квалификация “Эксперт”, несколько успешных проектов класса “сверхтяжелая”. Успешные проекты ЦКТП. Четыре года работал в самой “1С”, из них два с половиной архитектором и ведущим разработчиком облачной Технологии 1cFresh. Ну — и так далее. Не хвастовства ради, а понимания для. Текст написан не фантазером-теоретиком, а экспертом, у которого за плечами почти двадцать три года инженерной практики на больших проектах.

15.06.2020    17583    WildHare    34    

JSON в запросах DaJet QL

Практика программирования Бесплатно (free)

Практические примеры работы с JSON непосредственно в языке запросов. Перенос курсов валют между УТ и БП. Требуется SQL Server 2016 и выше.

24.04.2020    4177    zhichkin    6    

Вспомогательные инструкции в коде 1С Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

Помогаем редактору кода 1С помогать нам писать и анализировать код.

15.10.2018    32599    tormozit    105    

Визионное программирование

Практика программирования Бесплатно (free)

Новый способ программирования и его практическая демонстрация.

22.04.2020    4861    mkalimulin    111    

Использование машинного обучения для решения инцидентов. Практическое применение

Практика программирования Бесплатно (free)

Продолжаю (и заканчиваю) тему с автоматическим решением инцидентов. Перейдем от теории к практике.

25.02.2020    4596    Repich    9    

Использование машинного обучения для решения инцидентов

Практика программирования Бесплатно (free)

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

18.02.2020    7378    Repich    17    

Оформление и рефакторинг сложных логических выражений Промо

Практика программирования v8 Россия Бесплатно (free)

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

20.09.2012    79718    tormozit    131    

Программная работа с настройками СКД

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

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

27.01.2020    43022    ids79    26    

[СКД] Программное создание схемы компоновки данных

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Сделаем отчет на СКД полностью программно, без использования макета "схема компоновки данных".

15.01.2020    32462    John_d    22    

Часовой на страже логов

Практика программирования Инструментарий разработчика Бесплатно (free)

При поддержке решений, которые установлены у большого количества пользователей на различных системах, очень важно вовремя получать подробную информацию о возникших проблемах. О том, как собирать логи и анализировать полученные данные в трекере ошибок Sentry на конференции Infostart Event 2019 Inception рассказал Андрей Крапивин.

13.01.2020    8121    Scorpion4eg    8    

Запись значения в поле ввода/формы со срабатыванием события ПриИзменении Промо

Практика программирования v8 1cv8.cf Россия Бесплатно (free)

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

11.07.2007    50614    tormozit    48    

Последовательности событий при проведении документа 1С. Шпаргалка + про формы + про расширения

Практика программирования v8 Россия Бесплатно (free)

Собрал информацию о событиях/подписках/расширениях в одном месте.

30.12.2019    24971    kuzyara    38    

Полезные процедуры и функции для программиста

Практика программирования Универсальные функции v8 1cv8.cf Россия Бесплатно (free)

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

07.10.2019    34228    HostHost    41    

Таблица значений. Нюансы

Практика программирования v8 Бесплатно (free)

Обзор некоторых аспектов использования общеизвестного инструмента 1С.

01.10.2019    42527    Yashazz    50    

Как сделать из &НаКлиентеНаСервереБезКонтекста почти &НаКлиентеНаСервере Промо

Практика программирования v8 1cv8.cf Россия Бесплатно (free)

Как сделать метод формы, доступный на клиенте и на сервере одновременно, и сохранить при этом удобство разработки

10.09.2017    47468    tormozit    74    

СКД. Отчеты с картинками

Практика программирования Работа с интерфейсом v8::СКД 1cv8.cf Бесплатно (free)

Решение популярных кейсов с картинками в отчетах на СКД.

25.09.2019    26155    YPermitin    41    

СКД не только для отчетов

Практика программирования v8::СКД 1cv8.cf Бесплатно (free)

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

18.09.2019    20553    YPermitin    36    

Оповещения боту из 1С за 31 минуту

Практика программирования Интеграция v8::УФ 1cv8.cf Бесплатно (free)

Поделюсь опытом, как быстро сделать бота с оповещениями в Телеграмм из 1С без лишних затрат.

18.09.2019    18524    feva    42    

Развитие 1С программиста Промо

Практика программирования Личная эффективность Бесплатно (free)

Делюсь своим опытом и видением развития 1С программиста.

17.10.2018    23074    pashamak    64    

[Шпаргалка] Программное создание элементов формы

Практика программирования Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

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

06.09.2019    72547    rpgshnik    70    

Агрегатные функции СКД, о которых мало кто знает

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.

05.09.2019    61044    ids79    55    

Регистры бухгалтерии. Общая информация

Практика программирования Математика и алгоритмы v8 v8::БУ БУ Бесплатно (free)

Общая информация о внутреннем устройстве регистров бухгалтерии.

05.09.2019    34765    YPermitin    25    

Выгрузка документа по условию Промо

Практика программирования Разработка v8 Бесплатно (free)

Что делать, если документы нужно выгружать не все подряд, а по какому-то фильтру: статусу, дате, набору условий... А что если он соответствовал этим условиям, а потом перестал? А если потом опять начал? Такие ситуации заставили попотеть не одного программиста.

25.04.2019    16609    m-rv    2    

Три костыля. Сказ про фокусы в коде

Практика программирования v8 Бесплатно (free)

Три интересных (или странных) костыля в коде, которые могут помочь в повседневных и не очень задачах.

03.09.2019    27548    YPermitin    81    

Приватный блокчейн и 1С популярно

Практика программирования Блокчейн Бесплатно (free)

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

02.09.2019    6518    mkalimulin    140    

Кодогенерация и метагенерация в 1С

Практика программирования Инструментарий разработчика Бесплатно (free)

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

26.08.2019    9324    kirovsbis    28    

Как прикрутить ГУИД к регистру сведений Промо

Практика программирования Перенос данных из 1C8 в 1C8 Разработка v8 Бесплатно (free)

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

16.04.2019    21209    m-rv    17    

Отслеживание выполнения фонового задания

Практика программирования Универсальные функции Разработка v8 1cv8.cf Бесплатно (free)

Запуск фонового задания из модуля внешней обработки. Отслеживание выполнения задания в виде прогресса, расположенного на форме.

17.08.2019    37814    ids79    16    

Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.

08.08.2019    114296    ids79    67    

Фоновое выполнение кода в 1С - это просто

Практика программирования v8 1cv8.cf Бесплатно (free)

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

02.08.2019    46675    avalakh    26    

Как сделать запрос на изменение данных Промо

Практика программирования v8 v8::Запросы 1cv8.cf Бесплатно (free)

В статье приведены особенности внутренней архитектуры и примеры работы с расширением языка запросов 1С.

01.06.2018    32937    m-rv    22    

СКД - наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Набор данных объект. Использование в схеме компоновки нескольких наборов данных. Различные варианты связи наборов: объединение, соединение. Использование иерархии в отчетах на СКД. Создание собственной иерархии, иерархия детальных записей. Использование вложенных схем в отчетах на СКД.

26.07.2019    81112    ids79    14    

Как проводятся документы в типовых конфигурациях от 1С

Математика и алгоритмы Практика программирования Разработка v8::ОУ ERP2 УТ11 Россия УУ Бесплатно (free)

В свое время, когда только начинал шаги в 1С и изучал, как проводятся документы в конфигурациях на платформе 1С по книге "Разработка управляемого интерфейса" (Хрусталева Е.Ю.), и там были представлены примеры совсем далекие от того, как сейчас проводятся документы в современных конфигурациях от 1С.

24.07.2019    31330    skv_79    35    

СКД - использование расширений языка запросов, секция ХАРАКТЕРИСТИКИ

Инструментарий разработчика Практика программирования v8 v8::СКД Бесплатно (free)

Автоматическое и не автоматическое заполнение полей компоновки данных. Использование расширений языка запросов для СКД «{…}», секция ВЫБРАТЬ, секция ГДЕ, параметры виртуальных таблиц. Автоматизированное использование дополнительных данных в запросе: секция ХАРАКТЕРИСТИКИ.

17.07.2019    41248    ids79    27    

Метод формирования движений в типовых регистрах нетиповыми регистраторами Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

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

05.12.2017    29002    itriot11    34    

Интеграция сценарного тестирования в процесс разработки

Практика программирования Инструментарий разработчика Бесплатно (free)

Разработчик системы «Тестер» Дмитрий Решитко в своем докладе на конференции INFOSTART EVENT 2018 EDUCATION показывает, что процесс тестирования можно очень плотно интегрировать в процесс разработки, что внедрение тестирования – это возможность развития программиста как такового, позволяющая ему упорядочивать ход мыслей и оставаться «в фокусе». Навыки построения процесса кодирования на стыке с тестированием сокращают время на концентрацию, освобождают от страха перед изменениями и улучшают память разработчика.

08.07.2019    9704    grumagargler    7    

"Меньше копипаста!", или как Вася универсальную процедуру писал

Практика программирования Разработка v8 v8::СКД 1cv8.cf Бесплатно (free)

Программист Вася разбирает подход создания универсальных методов на примере программного вывода СКД.

04.07.2019    20628    SeiOkami    50    

Создание отчетов с помощью СКД - основные понятия и элементы

Практика программирования Математика и алгоритмы v8 v8::СКД Бесплатно (free)

Основные принципы работы СКД. Понятия схемы компоновки и макета компоновки. Описание основных элементов схемы компоновки: наборы данных, поля, вычисляемые поля, ресурсы, параметры.

25.06.2019    62790    ids79    26    

Использование классов .Net в 1С для новичков Промо

Практика программирования Разработка внешних компонент Универсальные функции v7.7 v8 Бесплатно (free)

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016    79059    Serginio    113    

Многопоточное ускорение однопользовательских нагрузок в 1С + Microsoft SQL Server 2017

Практика программирования Производительность и оптимизация (HighLoad) v8 v8::Запросы Бесплатно (free)

Взаимодействие с Microsoft SQL Server нередко вызывает трудности у 1С-ников, а потому интересны любые моменты, связанные с его использованием. О своем опыте работы с новым SQL Server 2017 участникам конференции Infostart-2018 рассказал директор ООО «Аналитика софт» Дмитрий Дудин.

11.06.2019    27729    dmurk    146    

Регистры накопления. Структура хранения в базе данных

Практика программирования Разработка v8 1cv8.cf Бесплатно (free)

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

16.05.2019    51744    YPermitin    30