Ошибка Автоинкремента в Форма вложенной сущности
-
- Сообщения: 140
- Зарегистрирован: 24 сен 2020, 14:57
- Имя: Владимир
- Откуда: Россия, Тюмень
Ошибка Автоинкремента в Форма вложенной сущности
Во вложенной сущности есть поле автоинкремент Уникальное для каждой родительской записи, Раздельная нумерация для каждой родительской записи.
При добавлении из Форма вложенной сущности(В новом окне/Таблица) не отрабатывает Раздельная нумерация для каждой родительской записи, в форме всподставляется последнее значение+1 всех вложенных сущностей.
Катастрофически не хватает подстановки лидирующих нулей.
При добавлении из Форма вложенной сущности(В новом окне/Таблица) не отрабатывает Раздельная нумерация для каждой родительской записи, в форме всподставляется последнее значение+1 всех вложенных сущностей.
Катастрофически не хватает подстановки лидирующих нулей.
- support
- Техническая поддержка
- Сообщения: 9348
- Зарегистрирован: 19 окт 2014, 18:22
- Имя: Харчишин Сергей
- Откуда: Крым, Евпатория
Re: Ошибка Автоинкремента в Форма вложенной сущности
К сожалению данное поле не поддерживается в форме вложенной сущности, так как по факту записи добавляются в базу только когда сохранятся основная форма.
- Fait
- Инвестор
- Сообщения: 974
- Зарегистрирован: 19 ноя 2020, 17:46
- Имя: Максим Балакшеев
- Откуда: Россия, Златоуст
- Организация: ИП Балакшеев Максим Георгиевич
Re: Ошибка Автоинкремента в Форма вложенной сущности
Это вовсе не ошибка.VladimirVa писал(а): ↑11 фев 2023, 02:05 Во вложенной сущности есть поле автоинкремент Уникальное для каждой родительской записи, Раздельная нумерация для каждой родительской записи.
При добавлении из Форма вложенной сущности(В новом окне/Таблица) не отрабатывает Раздельная нумерация для каждой родительской записи, в форме всподставляется последнее значение+1 всех вложенных сущностей.
Катастрофически не хватает подстановки лидирующих нулей.
Данную тему нужно в предложения занести
Вообще, подстановка нулей - вещь нужная.
Пока что есть два способа решить этот вопрос:
1) Вручную добавлять нули
2) Создать автоматизацию, срабатывающую при добавлении и изменении записи, которая будет сама расставлять нули.
В автоматизации вставь вот этот код:
Код: Выделить всё
$entity_id = 133; // ID сущности
$field_id = 3176; // ID поля Автоинкремент
$num_chars = 8; // Кол-во знаков, которое должно быть
$item_id = [id];
$val = [3176]; // ID поля Автоинкремент (значение)
$i = 0;
// Проверяем длину строки и, если она меньше заданной, то добавляем нули
if (strlen($val) < $num_chars) {
$kol = $num_chars - strlen($val);
while ($i < $kol) {
$out = $out.'0';
$i = $i + 1;
}
$out = $out.''.$val;
// Обновляем запись
$data = [
'field_'.$field_id => $out
];
items::update_by_id($entity_id,$item_id,$data);
}
$entity_id - ID сущности
$field_id - ID поля Автоинкремент
$num_chars - Кол-во знаков, которое должно быть в итоговой строке
$val - ID поля Автоинкремент, только в квадратных скобках (считывает значение поля)
-
- Сообщения: 2524
- Зарегистрирован: 14 окт 2020, 09:13
- Имя: Ruslan
- Откуда: Moscow
- Контактная информация:
Re: Ошибка Автоинкремента в Форма вложенной сущности
по автоинкременту давно уже есть вот такая штука
viewtopic.php?p=21709#p21709
viewtopic.php?p=21709#p21709
-
- Сообщения: 30
- Зарегистрирован: 01 апр 2022, 10:32
- Имя: Александр Родригес
- Откуда: Россия, Санкт-Петербург
Re: Ошибка Автоинкремента в Форма вложенной сущности
Не догоняю немного...
Поле "Автоинкремент" является заголовком в родительской сущности.
Проблема 1:
- Значение по умолчанию - 000001
- Шаг - 000001
Первая запись 000001.
Вторая - 2, Третья - 3,......и.т.д. без нулей
Проблема 2:
Почему-то при переходе в дочернюю запись - не отображается указанный префикс в заголовке
Вставил предложенный код.
Нумерация заработала.
Но осталась проблема 2 с префиксом в дочерней записи.
Мб как то допилить код и к черту эти дефолтные настройки поля.
Ну или создать 2 поля.
- Автоинкремент
- статический текст по шаблону (тут и указать и префикс и [id Автоинкремент])
Простая операция превращается в костыль(
Получается этот тип поля работает только если стандартная нумерация нужна....1,2,3,..
Поле "Автоинкремент" является заголовком в родительской сущности.
Проблема 1:
- Значение по умолчанию - 000001
- Шаг - 000001
Первая запись 000001.
Вторая - 2, Третья - 3,......и.т.д. без нулей
Проблема 2:
Почему-то при переходе в дочернюю запись - не отображается указанный префикс в заголовке
Вставил предложенный код.
Нумерация заработала.
Но осталась проблема 2 с префиксом в дочерней записи.
Мб как то допилить код и к черту эти дефолтные настройки поля.
Ну или создать 2 поля.
- Автоинкремент
- статический текст по шаблону (тут и указать и префикс и [id Автоинкремент])
Простая операция превращается в костыль(
Получается этот тип поля работает только если стандартная нумерация нужна....1,2,3,..
- support
- Техническая поддержка
- Сообщения: 9348
- Зарегистрирован: 19 окт 2014, 18:22
- Имя: Харчишин Сергей
- Откуда: Крым, Евпатория
Re: Ошибка Автоинкремента в Форма вложенной сущности
Автоинкремент - это числовое поле. 000001 не допустимо.
Сформировать значения типа 000001 можно с помощью PHP кода и функции sprintf
В результате будет
6 замените на нужно количество нулей. Вместо 1 поставьте значения поля автоинкремент.
Сформировать значения типа 000001 можно с помощью PHP кода и функции sprintf
Код: Выделить всё
sprintf("%'06d",'1');
Код: Выделить всё
000001
- Oleg
- Сообщения: 477
- Зарегистрирован: 26 окт 2018, 08:23
- Имя: Олег Родионов
- Откуда: Россия,Санкт-Петербург
Re: Ошибка Автоинкремента в Форма вложенной сущности
можно так же воспользоваться "Префикс" "Суффикс"
Установка и настройка IP ATC Asterisk
-
- Сообщения: 30
- Зарегистрирован: 01 апр 2022, 10:32
- Имя: Александр Родригес
- Откуда: Россия, Санкт-Петербург
Re: Ошибка Автоинкремента в Форма вложенной сущности
Понятно!support писал(а): ↑21 июн 2023, 11:11 Автоинкремент - это числовое поле. 000001 не допустимо.
Сформировать значения типа 000001 можно с помощью PHP кода и функции sprintfВ результате будетКод: Выделить всё
sprintf("%'06d",'1');
6 замените на нужно количество нулей. Вместо 1 поставьте значения поля автоинкремент.Код: Выделить всё
000001
Предположим мы решили вопрос с нулями...
Как быть с отсутствующим префиксом при переходе в подчиненную сущность?
В заголовке отсутствует префикс.
Актоикремент с префиксом у меня является "Заголовком" в этой структуре.
-
- Сообщения: 30
- Зарегистрирован: 01 апр 2022, 10:32
- Имя: Александр Родригес
- Откуда: Россия, Санкт-Петербург
Re: Ошибка Автоинкремента в Форма вложенной сущности
И как это поможет?)
Префикс и суффикс - это же не переменная.
По факту нужно, что б было ограничение для количества знаков в цифрах.
Предположим фиксированно есть 6 знаков.
Автоинкемент должен вписываться в эти 6 выделенных знаков с правой стороны.
т.е. не 1,2,3, а 000001,000002,000003,000004,...и.т.д.
Если в текущей нумерации отсутствует значение то 0!
Что будет когда запись дойдет хотя бы до 10,
если я буду использовать предложенный вами вариант и в суффикс и префикс вставлю нули? =)
Мб я чего то не знаю?
Расскажите.