Август, 2018 | Personal experimental site

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

31.08.2018 опубликовал Администратор в рубрике

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

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

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

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

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

Давно мечтал их перевести на списки Sharepoint.

В связи с недостатком знаний в прошлом, не умел сотворить проверку столбцов, да и ресурсы были весьма ограничены на SP2010 + необходимость в надстройке Access — это геморой тот еще на 1500 машин.

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

И так, что было сделано:.

  1. Создан список площадок с районами (последние могут повторяться)
  2. Список услуг с исполнителем и номером услуги
  3. Рабочий список, где и вносят сотрудники информацию.

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

Самая главная в моем случае формула выглядит вот так:

=ИЛИ((И(((ЦЕЛОЕ(ЕСЛИ(Создано=»»;»Без даты»;ТЕКСТ(Создано;»MM»))))=(ЦЕЛОЕ(ЕСЛИ(date_otkaz=»»;»Без даты»;ТЕКСТ(date_otkaz;»MM»)))));(И((date_otkaz>=date_event);(date_otkaz<=Создано)))));(И(((ЦЕЛОЕ(ЕСЛИ(Создано=»»;»Без даты»;ТЕКСТ(Создано;»MM»)))-1)=(ЦЕЛОЕ(ЕСЛИ(date_otkaz=»»;»Без даты»;ТЕКСТ(date_otkaz;»MM»)))));(И((ДЕНЬ(Создано)>1);(ДЕНЬ(Создано)<10))))))

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

UPD:

Решил реализовать подобный список на боевом разделе. Накидал поля практически один в один. Исключение один столбец, вместо выбора сделал подстановку. Но по нему проверка не производится (не касается). Но что я увидел? При добавлении элемента формула проверки работает и работает корректно, а при попытке изменить элемент выводит «Формула проверки вернула ошибку». Отмечу, что в тестовом разделе изменения происходят как и полагается, что соответствует поставленной задаче. Кто-нибудь знает в чем проблема?

UPD2:

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

Читать далее