Сохранить заново все записи автоматически

Ирина

Модератор
Здравствуйте, уважаемые разработчики!
Хочу уточнить про поле (операцию, или инструмент) "Блок" в 7-ой версии.
Вы конечно уже говорили, что возможности этого инструмента будут весьма широки, а со временем обязательно расскажете в Telegram о разных нюансах этого поля.
Но задаю снова вопрос, потому что очень насущен!

Как уже ни раз обсуждали на форуме, такой инструмент позволит автоматически присвоить нужные значения для поля (полей) в уже имеющихся записях, если ввел в объект новое поле, например, переключатель. Это понятно.
А будет ли такой инструмент применим к любому полю?
Вопрос возник, из-за поля "Составное". В такое поле для шаблона собирается множество полей. Также внутри этого "собирающего" составного поля есть функция String применяющаяся многократно (через неё выбираются нужные значения для шаблона). Но в процессе работы появились нюансы, которые изначально невозможно было учесть.
Например, в шаблоне есть фраза:
Письмо ФНС России от 06.06.2022 № БС-4-21/6917@ с разъяснениями ФНС России от 19.04.2022 № СД-4-21/4762@, Минфина России от 30.12.2022 № 03-06-05-01/130110, Минприроды России от 23.12.2022 № 08-11-30/50397
Слова "с разъяснениями", а также запятые добавляются через функцию String. Всё отлично работает!
Но выяснилось, что если разъяснения, например, судебные, то слова "с разъяснениями" – неуместны, там просто нужен предлог "с" (где-то вообще ничего не нужно).
Письмо ФНС России от 28.07.2020 № БС-4-21/12123@ с Кассационным определением Судебной коллегии по административным делам Верховного Суда РФ от 05.06.2020 № 6-КА20-1
Поэтому создано новое составное поле (с копией его в поле "Строка"), которое выбирает, где нужно вставлять слова (или предлог), а где нет.
Теперь в так скажем главное составное поле для шаблона переносится нужное значение из этого составного поля (через поле "Строка"). Всё также отлично работает!
Но чтобы сформировать шаблон, теперь все записи нужно заново открыть и сохранить, чтобы изменилось значение в составном поле для шаблона, иначе шаблон не формируется. Что, кстати, очень удобно, потому что знаешь - нужно пересохранить записи, иначе, если бы открылся шаблон, то гадал бы долго, что не так, почему пусто)))
Получается принцип похож на присвоение вновь добавленному полю в объекте нужного значения, но тут в составном поле уже есть текст, просто он изменен. Поэтому хотелось бы, чтобы инструмент "Блок" выполнял функцию пересохранения всех существующих записей автоматически.
Спасибо
 

Vladimir

Администратор
Команда форума
Добрый день, Ирина!
Исключительно благодаря Вашим вопросам, поля "Блок" в конструкторе уже не будет... ?
Под этим названием в Руне будет реализован совершенно иной инструмент, который станет неотъемлемой частью новой структуры.
Мы не планировали об этом пока рассказывать, чтобы не вносить путаницу в представление о будущем программы, но раз уж возник вопрос, то приоткрою завесу над нашей работой.
Объектом в конструкторе будет теперь набор полей, который определяет его структуру (работать с ним будет нельзя, но можно будет увидеть все данные и даже станет доступным выполнение SQL запросов - для продвинутых пользователей).
Для визуальной работы со структурой - будет служить "Блок", в котором будут определяться виды представления:
- список записей объекта;
- макета полей объекта для просмотра/изменения данных;
- просмотр данных в HTML формате;
- фильтров;
- итоговых расчётов.
И, наконец, блоки будут размещаться на формах, которые и будут являться frontend-ом (то, с чем будет работать пользователь) программы.
Да, это будет уже не тот простой конструктор, где "накидал" полей и начал работу. Теперь надо будет выстроить структуру, определить визуальные компоненты и сформировать рабочую среду. Не всё ещё имеет у нас окончательный вид (мы прорабатываем идею уже месяц), но концептуально что-то поменяться, надеемся, не должно. ?

А теперь к Вашему вопросу.
Вам необходимо произвести пересчёт всех полей во всех записях в соответствии с обновлённой структурой.
Для этой задачи будет служить инструмент, который ранее уже был в программе, но работал ограниченно, и только с числовыми полям: кнопка "Перерасчёт" для объекта в конструкторе. Но теперь он будет включать в себя следующие операции, которые пользователь может выбрать по своему усмотрению (выполнить все, или только выборочные):
- обновление полей со свойством "Копировать";
- пересчёт полей периода;
- перерасчёт расчётных полей;
- обновление составных полей;
- обновление полей, получающих значение от выполнения операций.
Таким образом, для Вашей задачи достаточно будет выполнить перерасчёт в объекте с указанием обновления составных полей.
 

Ирина

Модератор
и даже станет доступным выполнение SQL запросов - для продвинутых пользователей
Я вроде уже уверенный пользователь конструктора, но пока к продвинутым пользователям себя не отношу. Поэтому большое пожелание в разделе "Справка" при выпуске версии 7 описать, что значит SQL запросы и как ими пользоваться. Думаю такая информация будет полезна многим пользователям ;)
Заранее спасибо!
 

Vladimir

Администратор
Команда форума
Очень редко возникают нетривиальные задачи по обработке данных в базе. Раньше это была необходимость задать значение для поля во всех, или отобранных по особому признаку, записях. Или сделать специфический поиск в таблице. Или пересчитать числовые значения с учётом процента.
Когда возникают подобные задачи, мы ищем их решение, которое может быть понятно любому человеку, далёкому от программирования.
Но подобные вопросы будут возникать всегда, и хотелось бы предлагать решение пользователю уже сейчас, не откладывая его на неопределённое будущее.
Чаще всего, подобное решение мы будем предлагать сами, не заставляя человека изучать сложности незнакомой ему области знаний. Например, разобрав вопрос, сообщать ему командную строку, которую необходимо ввести для получения результата. Механизм SQL запросов будет внутренний, и не потребует использования внешних программ для работы с SQLIte базой.
Этим механизмом ни в коем случае нельзя будет пользоваться людям, не знающим его досконально и глубоко - он будет открывать доступ к данным напрямую, и можно будет моментально разрушить данные одной лишь короткой строкой.
Поэтому мы категорично будем рекомендовать не прикасаться к этому инструменту, если только человек на 100% не понимает, что он делает, и какой будет результат.
Поэтому справочной информации на тему SQL мы размещать не будем. ?
 
Сверху Снизу