gifts2017

Проверка данных. Теперь за стартмани и с отслеживанием срабатывания

Опубликовал Иван Белокаменцев (1c-intelligence) в раздел Обработки - Обработка документов

Простой и удобный инструмент для проверки данных (справочников, документов) сразу в момент записи.
Позволяет значительно повысить качество информации, вводимой в любую систему на платформе 1С:Предприятие 8.2-8.3.
Прост в освоении и использовании, оптимизирован по быстродействию.

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

 

Отчасти эту задачу решает сама система. Например, Управление производственным предприятием не позволит вам купить услугу на склад - спасибо ему за это. Но легко позволит отнести товар, например, на бухгалтерский счет 69.06.3 "Взносы в ФОМС" - как и на любой другой балансовый счет. 

А дело тут вот в чем.

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

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

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

 

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

Например:

  • Если мы продаем со счета 10.01, то счет доходов должен быть 91.01, иначе - 90.01;
  • В требовании-накладной на основное производство, если номенклатура из папки "Металл", то статья затрат должна быть "Металлы основного производства";
  • В заказе покупателя обязательно должен быть указан грузополучатель и его адрес;
  • Если в плане ДДС указано подразделение "Отдел продаж", то расход денег может быть только наличный.
  • И т.д.

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

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

 

Но теперь есть повод для радости - появилось решение Проверка данных.

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


Основные возможности и особенности:

  1. Проверять можно любой справочник или документ, который есть в вашей программе на платформе 1С;
  2. Работает в любой конфигурации на платформе 1С, начиная с версии 8.2.16;
  3. Проверка выполняется при записи. Если проверка не прошла - записать не даст;
  4. Настраивать - не сложнее, чем делать отбор в отчетах;
  5. При желании и соответствующих навыках, для реализации проверки можно писать произвольный запрос через СКД;
  6. Можно на время отключить проверки для определенных пользователей. Например, для группового перепроведения документов;
  7. Можно массово проверить старые справочники и документы по новым проверкам (а не только при записи);
  8. Замер производительности - оценит, насколько увеличилось время записи/проведения при включении проверки;
  9. Разные варианты исполнения проверок с точки зрения производительности.

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

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


Производительность

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

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

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

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

4 проверки одним запросом

 

Второе, не менее важное - мы реализовали несколько вариантов исполнения проверки

Варианты проверки

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

Простой вариант

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

Но и в простом варианте нашлось место оптимизации - если установить флаг "Проверять объект непосредственно", то обращения к базе данных не будет происходить вообще.
Это самый оптимальный способ исполнения, для несложных проверок - но таких, по нашему опыту порядка 30 %.

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

Если флаг "Проверять объект непосредственно" снять, то получится второй способ исполнения - выполнение запроса. Это самый распространенный режим исполнения, в котором работают примерно 40 % проверок. Его производительность несколько ниже, чем у первого способа.

Сложный вариант

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

Сложный вариант имеет три способа исполнения.

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

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

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

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

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

Практика показала, что такой режим используется примерно в 20-25 % случаев.

Для контроля производительности, оценки и выбора подходящего режима мы разработали отдельное средство.

Замер производительности

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

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

1. Сколько всего ушло времени на запись;

2. Сколько ушло времени конкретно на проверки.

Результат замера - насколько увеличилось время записи из-за применения проверки:

Замер производительности

На скриншоте, например, видно, что проведение заказа поставщику увеличилось на 1.4 - 3.5 %.

 

 

19.11.2014 г. - вышла обновленная версия.

Что нового:

1. Исправлен ряд скрытых недочетов;

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

 

04.03.2016 г. - вышла обновленная версия.

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

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


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


В отчете два предопределенных варианта - "По проверкам" и "По объектам".


Отчет может использоваться для разных целей.

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

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

Скачать файлы

Наименование Файл Версия Размер
Конфигурация Проверка данных, версия 1.0.2.1 41
.cf 109,61Kb
04.03.16
41
.cf 1.0.2.1 109,61Kb Скачать
Инструкция по установке 138
.pdf 432,67Kb
20.10.15
138
.pdf 432,67Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Макас (makas) 01.07.14 17:48
Вопрос: обработка в УТ 10.3 будет работать?
2. Иван Белокаменцев (1c-intelligence) 01.07.14 18:42
(1) makas, да, будет - вопрос только в платформе. Работает на любой платформе выше 8.2.16.
3. Александр Лыткин (TrinitronOTV) 02.07.14 05:22
"инструмент для онлайн-проверки данных" - это как понять? нужен выход в интернет и куда тогда инфа отсылается?
4. Иван Белокаменцев (1c-intelligence) 02.07.14 06:16
(3) TrinitronOTV, речь, конечно, идет не об интернете. Онлайн - значит проверка в реальном времени, т.е. при записи справочника/документа. Есть и офлайн, когда проверка идет не в момент записи, а к большому массиву документов.
Применено вот это значение слова "онлайн":
Онла́йн (англ. online, от англ. on line — «на линии», «на связи», «в сети») — «находящийся в состоянии подключения».
5. Александр Лыткин (TrinitronOTV) 02.07.14 07:42
(4) 1c-intelligence, спасибо за разъяснение
6. Тимофей Шантин (ShantinTD) 02.07.14 20:34
Ничуть не умаляя достоинств Вашей разработки, скажу, что в приложении, в котором проверки реализованы лишь для того, "чтобы не падало", и проверок на правильность (адекватность) вводимых данных не проводится - в нем не проработана (или не доработана) бизнес-логика. К сожалению, многие недалекие пользователи именно за это и любят недоработанные системы: система позволяет делать что угодно. Пример тому - пресловутая бухгалтерия от 1С. Все кричали "верните нам семёрку" потому что в восьмёрку их абы как забитые документы не переносятся, нужно заполнять нормально (по крайней мере - хоть какая-то проверка). Теперь кричат то же самое относительно бухгалтерии 3.0. По той же самой причине - то, что бухгалтерия 2.0 пропускала - тройка перестала пропускать.
Живой пример из недавнего: "у нас документы по кассе проводок не делают. Раньше (в 2.0) мы ставили галочку 'ручная корректировка' и все работало". Вместо того, чтобы выяснить (или хотя бы спросить) почему не работает три бухгалтера три года вносили документы ежедневно по десяти кассам, и в каждом делали проводки вручную!

Тем не менее, надеюсь, что не все пользователи такие, и Ваш продукт не останется без внимания.
7. Александр (МимохожийОднако) 02.07.14 21:00
ОФФ: Жалко, что не нахаляву. ))
8. Иван Белокаменцев (1c-intelligence) 03.07.14 06:38
(6) ShantinTD, вы правильно подметили - есть программы с прошитой бизнес-логикой, есть с широкой свободой выбора. "Проверка данных" ориентирована на вторые.
Не берусь судить, правильно ли прошивать все проверки в коробочном продукте. Наверное, тут нет универсального рецепта - все зависит от конкретного предприятия, от его внутренних требований к качеству учета. Кому-то проще и лучше, чтобы все решили за них разработчики 1С, кому-то нравится решать самому.
Отдельно отмечу, что "Проверка данных" перед публикацией работала в течение двух лет на УПП, и отлично себя зарекомендовала.
9. Иван Белокаменцев (1c-intelligence) 03.07.14 06:46
(7) МимохожийОднако, если вы - представитель партнера 1С, то можно обсудить предоставление NFR-версии. Несколько таких версий было предоставлено партнерам до публикации продукта, на время тестирования, и они сильно помогли сделать продукт лучше.
А для клиента, кажется, цена не слишком высока. К тому же, стоит гарантия возврата денег.
МимохожийОднако; +1 Ответить 1
10. Евгений Пономаренко (Evgen.Ponomarenko) 03.07.14 10:54
А в каком виде пользователь получает сообщение об ошибке при сохранении документа? Попадает ли курсор в ошибочное поле?
11. Антон Стеклов (asved.ru) 03.07.14 10:54
Идея хорошая.

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

И еще вопрос по производительности: чтение правил проверки для объекта производится в транзакции записи объекта или предварительно?
12. Евгений Пономаренко (Evgen.Ponomarenko) 03.07.14 10:55
Часто встречаешься с ситуацией, когда правила должны применяться с определенной даты или по более сложному условию. Есть такая функция?
13. Николай Шилкин (RayCon) 04.07.14 00:52
(9) 1c-intelligence, очень нужна такая софтина для постановки учета клиентам, т.е. меня интересует перепродажа. Давно сам думал на эту тему, но, как обычно, руки не доходили.

Есть вопрос: существует ли переносимость единожды выполненных настроек?

P.S. Могу помочь с доводкой продукта и с продвижением.
14. Иван Белокаменцев (1c-intelligence) 04.07.14 06:48
(10) Evgen.Ponomarenko, пользователь получает сообщение, как правило, в том виде, в котором его написал создатель проверки.
Исключение составляют проверки табличных частей - там автоматически выводится название ТЧ и номер строки.
15. Иван Белокаменцев (1c-intelligence) 04.07.14 06:52
(11) asved.ru, хорошо что вы спросили - появился повод обновить описание и раскрыть тему производительности. Прошу вас почитать, что я там написал (раздел Производительность).

Исходя из того, что при записи одного объекта выполняется, как правило, один запрос, количество проверок роли не играет.
Обычно речь идет о единицах, иногда - о десятых долях процента.
Разумеется, когда речь идет об объекте, который сам по себе очень быстро записывается, процент может вырасти. Например, справочник Валюты.
16. Иван Белокаменцев (1c-intelligence) 04.07.14 07:06
(12) Evgen.Ponomarenko, такое сделать, разумеется, можно - проверку любой сложности, с которой справится СКД.

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

Конечно, бывают варианты, когда надо ограничить не по дате документа, а по дате исполнения проверки - очень редко, правда. В этом случае в вашем распоряжении вся мощь СКД. Можно включить в нее параметр, вычисляемый выражением ТекущаяДата(), и опираться на него в отборах. Но, повторю, на практике это бывает очень редко.
Прикрепленные файлы:
17. Иван Белокаменцев (1c-intelligence) 04.07.14 07:25
(11) asved.ru, забыл ответить про чтение правил проверки. Да, правила читаются в транзакции записи, и проверка выполняется там же. Конкретно речь идет о событии ПриЗаписи.

Для ускорения этого процесса добавлен специальный регистр сведений, чтобы не обращаться к справочнику. В регистре хранится уже максимально подготовленная информация для обработки, чтобы не было дополнительных обращений к БД.
В итоге чтение правил занимает 1-2 мс. При проведении документа 1-2 мс - это десятые доли процента времени проведения.
18. Игорь Кахановский (IgorroPadavan) 04.07.14 11:31
1c-intelligence, действительно хорошая идея.
Протестировав продукт, хочу сказать следующее:
1)За период тестирования непредвиденных ошибок не было (важно квалиифицированно использовать СКД),
2)предлагаю разделить на лёгкий вариант (без измерений производительности)и чуть дешевле(для нетребовательных заказчиков) и полный, представленный в данном варианте,
3)Предусмотреть видео-инструкцию с примерами реализаций сложных проверок (опционально), т.к. нельзя исключать вариант примением функционала не разработчиками 1С, а Гл.бухами.
4)решение безусловно важное и оправдывает свою стоимость для желающих навести порядок в учете.
19. Иван Белокаменцев (1c-intelligence) 04.07.14 12:01
(18) IgorroPadavan, спасибо что заглянул.
Для коллег поясню - Игорь как раз с того предприятия, на примере которого инструмент разрабатывался и обкатывался в течение нескольких месяцев.

Насчет разделения подумаю.
20. Олег Филиппов (comol) 04.07.14 12:24
Коллеги, так делать НЕЛЬЗЯ!!!!

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

Проверки движений должны выполняться в транзакции проведения. С расстановкой необходимых управляемых и не управляемых блокировок, с контролем последовательности чтения и записи. Ну и уж конечно БЕЗ СХЕМ СКД В ТРАНЗАКЦИИ!

У нас была такая штука в своё время разработанная "умельцами" из какого-то франчайзи... Столько оно проблем несёт при многопользовательской работе...
alres; Sitex; nixel; Светлый ум; +4 Ответить 4
21. Иван Белокаменцев (1c-intelligence) 04.07.14 12:34
(20) comol, расскажите, пожалуйста, поподробнее, какие системные механизмы порушатся, если выполнить запрос при записи справочника или документа?
22. Андрей Трофимов (trand) 04.07.14 17:51
На предприятии, на котором тестировался продукт, кто настраивал права? Пользователь, руководитель, программист?
Если программист, то почему нельзя было сделать это в конфигураторе.
Если руководитель, то руководитель чего? Откуда ему известно, что нужно заполнять, а что нет для функциональности системы?
23. Антон Стеклов (asved.ru) 04.07.14 19:06
(20) comol, Вы не могли бы пояснить, чем Вам так не нравится использование функционала СКД по генерации запроса на основании пользовательских настроек в транзакции в режиме управляемых блокировок, или, тем паче, на read_committed_snapshot? А то сдается мне, звон Вы слышали, а где он - не знаете.
24. Антон Стеклов (asved.ru) 04.07.14 19:09
(20) comol, о, и как Вы поставите "необходимую неуправляемую блокировку", тоже расскажите. Очень интересно.
25. Иван Белокаменцев (1c-intelligence) 04.07.14 22:37
(22) trand, о правах речи не идет - их проверка данных не касается. Настройка проверок доступна только с полными правами.

Технически настройка велась и ведется программистом/администратором системы - как единственным человеком с полными правами. Но придумывали проверки несколько человек, которых можно назвать самыми толковыми. Обычно это делается не разово, а при обнаружении какой-то систематической ошибки.
Например, при закрытии обнаруживается, что иногда передают вспомогательные материалы по статье ОПР на счет 25 - не по злому умыслу, а по невнимательности, "хотя и было говорено так не делать". Делаем проверку - и все, забываем навсегда об этой проблеме.
26. Тимофей Шантин (ShantinTD) 05.07.14 00:07
1c-intelligence, а никакого триального периода (3-5 дней) не предвидится? А то выглядит заманчиво, да может статься, что кто-то ну вообще не извлечет из этого для себя ничего полезного.
27. Иван Белокаменцев (1c-intelligence) 07.07.14 06:51
(26) ShantinTD, я подумаю насчет триального периода, спасибо.
28. ффф ыыы (zqzq) 07.07.14 08:39
(20) comol,
Согласен, рекомендуется проверки реквизитов делать в обработке проверки заполнения объекта - он вызывается при интерактивной записи (проведении) из формы вне транзакции. И заодно не будет проблем при групповом перепроведении документов (зато могут быть проблемы при групповой обработке, если не вызывается программно ПроверитьЗаполнение()).
29. Иван Белокаменцев (1c-intelligence) 07.07.14 09:17
(28) zqzq, обработку проверки заполнения я пытался использовать. Все прекрасно, кроме одного - проверка запросом не будет работать, т.к. на момент проверки заполнения изменения в базу не записаны.
Есть обходной вариант - передавать реквизиты в СКД через таблицу значений, и работать с ним. Но этот вариант значительно снижает быстродействие.
30. Иван Белокаменцев (1c-intelligence) 07.07.14 10:32
(28) zqzq, а для группового изменения/проведения добавлена возможность отключения проверок для конкретного пользователя.
Также, как есть возможность массового выполнения проверок для документов и справочников.
31. Иван Белокаменцев (1c-intelligence) 09.07.14 08:31
Продолжаем развитие инструмента. Тут обсуждали использование события ОбработкаПроверкиЗаполнения - решил дать возможность его опционального использования.
Как единственный вариант не подойдет, т.к. проверка заполнения не выполняется при неинтерактивном проведении документов и записи справочников.
Ну и в некоторых случаях может снижаться производительность, т.к. требуется передача объекта в запрос в виде таблицы значений.
Но опционально будет.
32. Иван Белокаменцев (1c-intelligence) 09.07.14 08:38
Один из партнеров, тестирующих NFR-версию, предложил несколько доработок, которые войдут в следующий релиз:

1. Когда выводятся сообщения об ошибках, надо бы в начале сделать заголовок, к какому документу относится сообщение, как в типовых конфигурациях.
Пример:
"Проведение документа: Передача оборудования в монтаж РР000032 от 03.06.2014 9:00:00
В строке номер "3" табличной части "Оборудование": Не заполнено значение реквизита "Документ оприходования"! "
2. Причесать оформление страницы с настройками, сделать его интуитивно понятным. Сейчас понятно только после чтения справки;
3. Дать возможность опционально выполнять проверку в привилегированном режиме. Сейчас в привилегированном режиме читаются только сами проверки, а выполнение идет под правами пользователя. Иногда бывает потребность в проверке использовать недоступные для пользователя данные, поэтому такая возможность нужна.
33. Иван Белокаменцев (1c-intelligence) 14.07.14 08:47
(26) ShantinTD и все коллеги - опубликована триальная версия, со сроком действия до 31.07.2014 г.
34. Иван Белокаменцев (1c-intelligence) 19.08.14 13:17
Обновлена триальная версия, теперь со сроком действия до 31.08.2014 г.
35. Иван Белокаменцев (1c-intelligence) 26.08.14 11:30
Добавлено видео по созданию "сложных" проверок с ручным редактированием запроса - см. в конце статьи.
36. Иван Белокаменцев (1c-intelligence) 29.08.14 10:03
По просьбе одного из покупателей добавлена отдельная версия без использования модальности.
Пока будет идти отдельно, т.к. конструкции языка, применяемые для немодальной работы, недоступны в более старых версиях платформы - в той же 8.2.
37. Иван Белокаменцев (1c-intelligence) 29.08.14 10:54
Обновил файл с триальной версией, ограничение по сроку теперь до 30.09.2014 г.

Также, в предыдущей триальной версии (которая до 31.08.2014 г.) была допущена ошибка - не обновил дату ограничения, в результате чего проверки не выполнялись. Приношу извинения тем, кто скачал триальную версию в августе и при необходимости готов выслать обновленный триал, чтобы не тратить sm - пишите мне в комментариях или в личку.
38. Иван Белокаменцев (1c-intelligence) 19.11.14 11:03
Выложил обновленную версию:
1. Исправлены некоторые скрытые недочеты;
2. Появилась возможность делать проверки, которые будут действовать только для новых объектов, которые записываются впервые.

Благодарю пользователей, купивших и внедривших у себя проверку данных за качественную обратную связь. Сейчас продано более 10 копий, по разным каналам.
Конфигурации, в которых работает проверка данных: УПП 1.3, БП 2.0, УНФ 1.4, есть самописанные конфигурации.
39. Иван Белокаменцев (1c-intelligence) 24.11.14 10:35
Посмотрел топ продаж - оказывается, "Проверка данных" на первом месте по продажам за полгода. За год входит в топ-10. За весь период продаж - пока на 31 месте. Что ж, есть пока куда стремиться.
40. Александр Топольский (AlexanderKai) 25.11.14 14:32
(6) ShantinTD,
Можно было запретить ручную корректировку на уровне прав.
41. Олег Демиденко (FFelix) 27.11.14 13:13
С доп.реквизитами эта штука работает? Реальную пользу вижу только если пользователь сам добавил доп.реквизит и сам же добавил контроль на его заполнение.
Уточню - полезно будет, если эта штука будет работать с доп.реквизитами на базе БСП. Тогда она будет неоценима для всех новых решений 1С.
42. Иван Белокаменцев (1c-intelligence) 27.11.14 13:27
(41) FFelix, доп.реквизиты - это нетиповые реквизиты, добавленные в объект через конфигуратор?
Или какой-то прикладной механизм, типа свойств?
43. Олег Демиденко (FFelix) 27.11.14 13:33
Уточню: полезно будет, если эта штука будет работать с доп.реквизитами на базе БСП. Тогда она будет неоценима для всех новых решений 1С, включая УТ11, ERP и т.д.
Я бы купил её, для своего прошлого проекта по УТ))
44. Иван Белокаменцев (1c-intelligence) 27.11.14 14:16
(43) FFelix, теперь понятно. Механизм доп. реквизитов аналогичен механизму свойств, который в УТ 10.3 и УПП 1.3.
Определенные проверки по этим механизмам "Проверка данных" позволяет делать уже сейчас, но есть одно ограничение, связанное со спецификой механизма: невозможно сделать проверку доп. свойств (или реквизитов), пока объект-носитель не записан. А когда объект записан, проверять уже поздно, т.к. пользователь просто закроет форму, и проверка не инициируется.

В УПП 1.3 еще как-то выкрутиться можно, т.к. там на прикладном уровне реализована "одновременная" (с т.зр. пользователя) запись и нового объекта, и его свойств.

Но, я думаю, решение будет найдено.

На своих внедрениях я для таких задач использую механизм "Автозадачи", коробочная версия которого сейчас проходит бета-тестирование. Там нет привязки к записи объекта. Правда, и запретов нет.
45. Олег Демиденко (FFelix) 27.11.14 16:57
(44) 1c-intelligence, не уверен, но в БСП (УТ, ERP) кажется запись доп.реквизитов тоже происходит одновременно с объектом.
Всё-таки, их подключение в ваш механизм сделает его на порядок полезнее, имхо
46. Иван Белокаменцев (1c-intelligence) 27.11.14 20:18
(45) FFelix, я специально проверил на УТ 11 - не дает редактировать доп.реквизиты до записи объекта. Проверял на демобазе, в справочнике номенклатуры.

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

В любом случае, спасибо за направление развития инструмента.
47. Yan Tsys (YanTsys) 09.12.14 10:40
Некорректное название "Онлайн", под этим обычно понимается необходимость подключения к Интернет, вы распугиваете потенциальных клиентов подразумевающих что им куда-то придется передавать свои данные, бухгалтер просто не имеет права разглашать информацию, есть более подходящие слова, "динамическая проверка", "проверка времени исполнения", "интерактивная проверка", и т.п.
ponaroshku; +1 Ответить 1
48. Иван Белокаменцев (1c-intelligence) 10.12.14 11:57
(47) YanTsys, спасибо за замечание. Внес изменения в описание.
49. Иван Белокаменцев (1c-intelligence) 16.12.14 21:46
Выложена обновленная версия, доработанная по запросу одного из клиентов.

Расширены возможности отключения проверок.

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

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

Теперь такая возможность есть.
50. Tany_SH (Atrika-96) 27.02.15 05:32
Весьма интересная разработка, спасибо.
Мы только что встроили в ЗУП 2.5 и сразу возник вопрос: а существует ли возможность установить проверку на регистры сведений (с независимым режимом записи), план счетов, план видов расчетов, план видов характеристик?
51. Иван Белокаменцев (1c-intelligence) 27.02.15 08:25
(50) Tany_SH, такой возможности сейчас нет - просто не было таких задач. Если вам нужно проверять такие объекты, я добавлю возможность.
52. Tany_SH (Atrika-96) 09.03.15 05:47
(51) 1c-intelligence, такая возможность очень нужна, буду весьма признательна за добавление!
Спасибо за разработку! Очень удобно "на лету" менять права доступа к объектам и проверять правильность заполнения.
Впервые применили эту настройку в базе данных, которая получилась в результате слияния 7 баз различных юридических лиц. С помощью проверки данных решили 2 основные проблемы, которые возникли при начале работы в программах: корректность заполнения полей в документах/справочниках и разрешение на изменение или добавление данных только ответственными лицами. Только благодаря проверке данных удалось остановить бесконтрольное разрастание дублей и привести к стандарту ввод первичных данных.
Простая настройка проверки очень простая и интуитивно понятна, поэтому главный бухгалтер или руководитель отдела легко справляются с ней самостоятельно - и очень довольны, что никого просить не нужно.
Сейчас проверка встроена во все наши базы, не представляю как мы без нее обходились раньше))
Спасибо огромное!
МирославаЯсная; sorb; 1c-intelligence; +3 Ответить
53. Александр Тарасюк (Aletar) 19.10.15 15:15
Скажите, а работает только проверка данных или есть возможность установки нужных реквизитов объетков?
54. Иван Белокаменцев (1c-intelligence) 20.10.15 06:47
(53) Aletar, конкретно в этом решении возможности установки реквизитов нет.
Оно есть в решении Автоопределитель, я о нем рассказывал на конференции IE 2015. Оно пока не опубликовано.
55. Александр Тарасюк (Aletar) 20.10.15 11:32
Скажите, а решение "Автоопределитель" можно как-то приобрести?
56. Иван Белокаменцев (1c-intelligence) 21.10.15 10:35
(55) Aletar, вы прям приобрести хотите? Или вам рассказать суть и вы сами воспроизведете?
Оно просто не готово к продаже, т.к. создавалось под внутренние требования.
57. Александр Тарасюк (Aletar) 22.10.15 12:06
(56) 1c-intelligence, расскажите суть, я думаю это не только мне будет интересно.
58. Иван Белокаменцев (1c-intelligence) 28.10.15 11:43
(57) Aletar, вот суть

Идея информатора развилась в новую тему - автоматическое заполнение реквизитов объектов. Рабочее название - автоопределитель.

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

Как настраивается автоопределитель:

1. Выбирается объект (например, табличная часть "Товары" документа "Реализация товаров и услуг");
2. Описываются условия для автозаполнения (например, Номенклатура в папке Продукция);
3. Указываются реквизиты, которые надо заполнить, и их значения (например, счет учета БУ = 43 и счет учета НУ = 43).

Главная фишка в том, что п.2 и п.3 описываются в виде таблицы, что позволяет делать последовательный перебор условий. Значения реквизитов при этом ставятся в соответствии с тем условием, которое выполнилось. Отбор, разумеется, СКДшный, что позволяет сравнивать реквизиты объекта как с абсолютными значениями, так и друг с другом (или, например, с реквизитами документа-основания).

Больше всего это похоже на настройку условного оформления отчетов. Там тоже можно сделать несколько оформлений одного элемента, в зависимости от разных условий. Например, если сумма <100, то цвет красный, если от 100 до 1000, то желтый, если больше 1000, то зеленый.

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

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

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

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

1. Перед записью объекта - это железобетонные автоопределители, которые должны обязательно выполняться;
2. Интерактивно в форме объекта, по кнопке. На форму выводится подменю со всеми доступными автоопределителями, у которых настроен доступ через интерфейс. Это примерно как подключаемые обработки табличных частей.
59. Иван Белокаменцев (1c-intelligence) 28.10.15 11:44
Если наберется достаточно желающих - выделю автоопределитель в отдельную конфигурацию и сделаю публикацию.
gubanoff; МирославаЯсная; xsnort; South; +4 Ответить 1
60. Мирослава Мирослава (МирославаЯсная) 10.11.15 14:11
Подскажите, пожалуйста, в Вашем примере - проверка на заполнение ответственного (ответственный не заполнено), какое надо ввести условие, чтобы эта проверка действовала только по некоторым организациям? Организация в списке? И все это одной строкой? Спасибо!
61. Иван Белокаменцев (1c-intelligence) 10.11.15 20:50
(60) МирославаЯсная, вы все правильно пишете - надо делать одну строку в таблице Проверки, и в отборе указать "Ответственный не заполнено И Организация В Списке <список организаций>". На всякий случай прикладываю скриншот.
Прикрепленные файлы:
62. Мирослава Мирослава (МирославаЯсная) 12.11.15 08:30
(61) 1c-intelligence, спасибо! За продукт и за ответ :-)
63. Мирослава Мирослава (МирославаЯсная) 12.11.15 08:37
(30) 1c-intelligence, искала где отключать проверки. Нашла :-) Спасибо еще раз!
Прикрепленные файлы:
64. BSV Бушев (BSV) 12.11.15 09:12
Доброго времени суток, есть вопрос. Мне надо проверить заполнение контактных данных элемента справочника "Контрагенты", к примеру "Юр.адрес контрагента", добавил в набор данных это поле из регистра сведений "Контактная информация" через СКД,, прописал проверку на заполнение, но проверка осуществляется не правильно, я так понимаю, из-за того, что на момент проверки, данные еще не записаны в регистр сведений из табличного поля на форме элемента. В этом случае, что-то можно сделать? или я что-то неправильно делаю в настройках проверки?
65. Иван Белокаменцев (1c-intelligence) 12.11.15 09:27
(63) МирославаЯсная, на всякий случай добавлю, что там есть справка, я постарался сделать ее максимально понятной.
МирославаЯсная; +1 Ответить
66. Иван Белокаменцев (1c-intelligence) 12.11.15 09:31
(64) BSV, увы, такую проверку в общем случае не сделать, т.к. контактная информация хранится в отдельном регистре сведений и при первой записи контрагента ее там просто не может быть. Если запись не первая, то уже зависит от логики конкретно справочника контрагенты. Если, например, при записи контрагента идет полная перезапись набора регистра сведений, то проверка тоже не поможет.
Та же проблема, например, со свойствами и категориями.
67. BSV Бушев (BSV) 12.11.15 10:39
1c-intelligence, спасибо за ответ, я в общем так и думал - но втайне надеялся, что не прав :)
68. Иван Белокаменцев (1c-intelligence) 04.03.16 10:47
Вышла обновленная версия.
Добавлен учет срабатывания проверок. Когда срабатывает какая-либо проверка, то информация об этом записывается в регистр сведений.
Сохраняется дата срабатывания, имя пользователя и текст сообщения.

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

В отчете два предопределенных варианта - "По проверкам" и "По объектам".

Отчет может использоваться для разных целей.

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

Или проанализировать, на каких объектах (документах, справочниках) проверки срабатывают чаще всего и понять, почему так происходит - возможно, объект проверки слишком сложен для пользователей, и ошибки при его заполнении неизбежны.
69. Сергей Галюк (dj_serega) 04.03.16 14:43
Вопросы по
Можно на время отключить проверки для определенных пользователей. Например, для группового перепроведения документов;

1. А можно ли настроить проверки для списка пользователей?
Пользователь1 - 4 проверки
Пользователь2 - 2 проверки
Пользователь5 - нет проверок.

2. А можно ли настроить проверки по ролям?

Если такого нет, то доработать самому получится? (не сильно ломая механизм).
70. Иван Белокаменцев (1c-intelligence) 04.03.16 18:38
(69) dj_serega, сейчас настроить проверки по ролям можно только косвенными методами - сделать проверку сложной, и в схеме компоновки вычислять текущего пользователя. Это делается несложно, через параметры и использование функции глЗначениеПеременной("глТекущийПользователь"). Но этот метод косвенный, не очень удобный.

Мне нравится идея задавать конкретный список пользователей или ролей, я добавлю это в конфигурацию. Спасибо.
71. Мирослава Мирослава (МирославаЯсная) 16.03.16 09:27
(35) 1c-intelligence, не нашла, видео. "Ткните носом", пожалуйста) Спасибо!
72. Иван Белокаменцев (1c-intelligence) 16.03.16 11:40
(71) МирославаЯсная, ага, куда-то пропало видео.
Вот ссылка: http://www.youtube.com/watch?v=_RFhQDnsDBw
МирославаЯсная; +1 Ответить 2
73. Сергей Лесовой (Synoecium) 16.03.16 12:39
Используем эту разработку в рабочей базе уже пару месяцев, очень удобно настраивать, просто внедрять. Автору плюс.
74. Мирослава Мирослава (МирославаЯсная) 17.03.16 08:41
75. Александр Усов (TapeFiver) 22.03.16 06:19
А в данной проверке реально сделать при каком-то условии запрет на изменение реквизита не нового элемента справочника?
76. Иван Белокаменцев (1c-intelligence) 22.03.16 06:46
(75) TapeFiver, запрет действует на весь объект целиком при определенных условиях, которые задаются отбором.

Кажется, вы имеете в виду, можно ли сравнивать старое и новое значение реквизита?
77. Александр Усов (TapeFiver) 22.03.16 07:09
(76) 1c-intelligence, да именно это имею в виду. Посмотрел видео из (72) и почему-то подумал что "ОбъектПроверки" и элемент справочника в запросе будут как "ЭтотОбъект" и "Ссылка" в процедуре ПередЗаписью.
78. Иван Белокаменцев (1c-intelligence) 22.03.16 07:40
(77) TapeFiver, сейчас такой возможности нет. У меня есть адаптированная под одно предприятие версия, там такое есть - можно использовать реквизиты объекта до записи.
Добавлю в текущую версию и выложу, спасибо за предложение.
МирославаЯсная; TapeFiver; +2 Ответить 1
79. Александр Усов (TapeFiver) 24.03.16 11:39
(78) А есть пример проверки на заполненность свойства номенклатуры или контрагента? Пробовал и так и эдак, не смог победить. Прочитав (44) понял что вы пишете что как-то выкрутиться можно, но я реально в тупике.
УТ 10.3
80. Мирослава Мирослава (МирославаЯсная) 30.03.16 15:08
(59) 1c-intelligence, очень бы хотелось посмотреть "автоопределитель". Заранее благодарна.
81. Иван Белокаменцев (1c-intelligence) 01.04.16 14:46
(79) TapeFiver, выкрутиться лучше всего доработкой конфигурации, т.к. заполненность свойств, например, номенклатуры, выполняется через вывод табличной части подчиненной обработки на форму номенклатуры. Запись свойств выполняется при записи номенклатуры в форме.
Соответственно, перед вами и таблица свойств и их значений (ТЧ обработки), и контекст записи номенклатуры, а значит - и возможность в этом контексте остановить запись при незаполненных свойствах.
Могу помочь, если надо.
82. Иван Белокаменцев (1c-intelligence) 01.04.16 14:47
(80) МирославаЯсная, он в очереди стоит. Сейчас я дорабатываю проверку данных.
83. Мирослава Мирослава (МирославаЯсная) 04.04.16 11:23
(82) 1c-intelligence, спасибо! будем ждать)
84. Мирослава Мирослава (МирославаЯсная) 05.04.16 09:59
(82) 1c-intelligence, подскажите, пожалуйста, настроена проверка, затем вносятся изменения в структуру справочника (например, удаляется реквизит) и при попытке открытия проверки из справочника "Проверяемые объекты" 1с вылетает с ошибкой - "Ошибка получения информации набора данных по причине: Ошибка в запросе набора данных по причине: Поле не найдено". Возможны ли какие-то варианты решения? Спасибо!
85. Иван Белокаменцев (1c-intelligence) 05.04.16 10:02
(84) МирославаЯсная, такое бывает, увы. Посмотрю, что можно сделать.
МирославаЯсная; +1 Ответить 2
86. Мирослава Мирослава (МирославаЯсная) 05.04.16 11:18
87. Мирослава Мирослава (МирославаЯсная) 06.04.16 21:40
(85) 1c-intelligence, у меня еще вопрос :-) как в сложной проверке по ВТ срез последних установить период равным дате проверяемого документа? Спасибо!
88. Карина -- (ponaroshku) 03.06.16 12:31
Добрый день!

Можно ли вашей обработкой делать сравнение не на конкретное значение, а на реквизит этого же документа?

Ну например Организация = ПодразделениеОрганизации.Владелец?


Или это лучше сделать через СКД?

С чем связана рекомендация
Запрос, написанный в схеме компоновки, должен возвращать данные для проверки, а не результат проверки. Проверки в любом варианте настраиваются на закладке "Проверки", с указанием текста сообщений.
90. Иван Белокаменцев (1c-intelligence) 03.06.16 20:06
(88) ponaroshku,
Можно ли вашей обработкой делать сравнение не на конкретное значение, а на реквизит этого же документа?


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

С чем связана рекомендация


Это рекомендация о том, как избежать стандартной ошибки - писать проверку в запросе таким образом, что он возвращает только правильный объект. В этом случае любая новая проверка, добавленная снаружи - через табличку в форме - не будет работать. Банальный пример - если вы в запросе проверяете пометку удаления и возвращаете только помеченные на удаление, а в таблице сделаете проверку вроде "Проведен = Истина И ОтражатьВБУ = Ложь", то вторая проверка никогда не сработает, а неправильные документы (проведенные без галки БУ) у вас в системе появятся.

Запрос должен всегда возвращать объект, на этом строится "многоздачность", или "многопоточность" проверки - запрос один, выполняется один раз, а проверок делается несколько.

Но, в принципе, никто не мешает делать по-своему, просто надо учитывать описанную выше особенность.
91. Карина -- (ponaroshku) 06.06.16 04:13
(90)

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



я думала, что это работает так, как вы описали - про отбор
но крестика нет
https://yadi.sk/i/TPBRr77WsGs6y

А при не заполненном левом значении в списке выбора отсутствует тип "Поле компановки данных", только примитивные типа строка, число и т д


Поставила "Использовать в качестве значения поле" и конечно все заработало)

Про рекомендацию я вас поняла, спасибо


P.S. при пометке на удаление элемента справочника "Проверяемые объекты" проверка по условию все равно выполняется



Внимательно смотрю вашу разработку
сейчас при проверке документа нет возможности задать текст с использованием реквизитов проверяемого объекта, т.е. написать "Неверно указана организация" можно, а "Неверно указана организация ИП Иванов" нельзя
Планируется ли расширить текст ошибок?
92. Иван Белокаменцев (1c-intelligence) 06.06.16 06:36
(91) ponaroshku,
Планируется ли расширить текст ошибок?

такую возможность сделать несложно, но я сознательно не стал ее закладывать, чтобы не усложнять создание проверок.
Вообще, сделать можно, внесу в список доработок.
ponaroshku; +1 Ответить 1
93. Карина -- (ponaroshku) 06.06.16 09:22
(92) спасибо, буду ждать нового "релиза"

Очень полезная разработка

94. Карина -- (ponaroshku) 17.06.16 12:36
Добрый день!

Подскажите, возможно ли сравнить текущий объект с ранее сохраненными данными?

Например, справочник организация - смотрим, если изменили наименование (сравнив его с ссылка.наименование?) выдать отказ?

Если да, то как это сделать, подскажите пожалуйста
95. Иван Белокаменцев (1c-intelligence) 21.06.16 21:47
(94) ponaroshku, сейчас такой возможности нет. Планируется в новой версии.
ponaroshku; +1 Ответить
96. virtmon virtmon (virtmon) 25.08.16 07:37
Скачал вашу обработку, вставил по инструкции и на вкладке "настройки" поля недоступны.
97. Иван Белокаменцев (1c-intelligence) 31.08.16 19:26
(96) virtmon, давайте версию конфигурации и версию платформы.
Если не затруднит, то скриншот метаданных справочника итПроверяемыеОбъекты из конфигуратора - в развернутом виде, чтобы было видно реквизиты, табличные части и реквизиты табличных частей.
98. Игорь Герман (German_Tagil) 27.09.16 06:58